примеры колбеков

Страницы: 1
RSS
примеры колбеков
 
Написал  изучающим Lua примеры вариантов колбеков сделок, заявок и стоп-заявок.
----------------------
Примеры написаны специально для форума и не тестировались, а лишь проверены на синтаксис.
---------------------------
Поэтому, если есть желающие тестить и найдете ошибки, то пишите, исправим вместе.
--------------
В этих колбеках сделки, активные заявки и активные стоп заявки размещаются в соответствующие инструментам рабочие таблицы.
--------------------------------
Код
--таблицы
TRADE={}; -- индексы сделок по инструментам
ORDER={}; -- индексы активных заявок по инструментам
STOP={}; -- индексы активных стоп-заявок по инструментам

function OnTrade(tr)
  local n,m;local sec=tr.sec_code;
  local t=TRADE[sec]; --таблица номеров строк сделок в таблице QUIK инструмента sec
  if t then
   m=TRADE[0]; n=t[0];
 else                --создание таблицы инструмента
   m=getNumberOf("trades"); n=0;
   t=SearchItems("trades",n,m-1, function(p1) if p1==sec then return true;end return false; end,"sec_code")
   TRADE[sec]=t;
end
 if m>t[n] then n=n+1; t[n]=m;  t[0]=n; TRADE[0]=m+1; end
end

local function fOrder(tr,T,s)  --функция обработки для колбеков orders и stop_orders
  local n,m,x;local sec=tr.sec_code; local t=T[sec];  --таблица номеров строк в таблице QUIK активных ордеров или стоп_ордеров инструмента sec
  local flag=tr.flags&1; local num=tr.order_num;
  if t then
    m=T[0]; n=t[0];
   for i=1,n do x=getItem(s,i-1);
      if x.num_order==num then
         if flag==0 then n=n-1;if n>0 then t[i]=t[n]; end break; else return; end
      end
   end
 else                --создание таблицы инструмента
   m=getNumberOf(s); n=0;
   t=SearchItems(s,n,m-1, function(p1,p2) if p1==sec and p2&1==1 then return true;end return false; end,"sec_code,flags")
   T[sec]=t;
end
   if flags==1 then n=n+1; t[0]=n; t[n]=m; T[0]=m+1; end
end

function OnOrder(t)   fOrder(t,ORDER,"orders");  end
function OnStopOrder(t) fOrder(t,ORDER,"stop_orders"); end
 
 
пояснение:
-----------------
во всех примерах колбеков есть блок с вызовом функции  SearchItems
он исполняется для каждого инструмента лишь один раз.
---------------------
Это блок нужен, чтобы обработать те сделки и заявки , которые были исполнены или выставлены до запуска скрипта.
Так как эти блоки исполняются один раз, то их время исполнение практически не влияет скорость исполнения колбеков.
 
nikolz, Лапуль, ну хватит корчить из себя программиста. Уши вянут смотреть на эту бредятину. Вас ХОТЬ КТО-НИБУДЬ принимает за учителя?
 
Цитата
Владимир написал:
nikolz, Лапуль, ну хватит корчить из себя программиста. Уши вянут смотреть на эту бредятину. Вас ХОТЬ КТО-НИБУДЬ принимает за учителя?
Не смотри. И хватит корчить из себя мудака .Давно все понятно.
 
Владимир,
Кто о чем а вшивый о бане.
Судя по твоим постоянным попыткам узнать кто меня считает учителем, тебе очень хочется быть им.
Но тебя учить поздно. .
 
nikolz, Лапуль, опять визги поросячьи? Мне НАСРАТЬ, кто Вас считает учителем - это может быть ТОЛЬКО дебил, да и то редкостный. Борька, который вообще в программировании ни уха ни рыла, рассказывал мне немного о своих контактах с Вами. А с ним мы многократно созванивались и даже лично пересекались, он жил у меня некоторое время. Так вот: Борька не программист, но далеко не дурак - я даже считаю его своим соавтором. А Вы, лапуль, тоже не программист, но дурак в девственно чистом незамутнённом виде.

На днях мы тут спорили с TGB (а это, в отличие от Вас, программист, и весьма квалифицированный). Спорили о том, нужен ли в скрипте ОДИН коллбек или вообще НИ ОДНОГО. И где-то в это же время один распальцованный придурок написал: "Так как не только использую все колбеки QLua, но и пишу свои дополнительные колбеки для скриптов Lua, то попробую объяснить что это за зверь". Не подскажете, лапуль, как звали этого дебила?
Страницы: 1
Читают тему
Наверх