OnTrade для сделок по FUTSPREAD

Страницы: 1
RSS
OnTrade для сделок по FUTSPREAD
 
День добрый всем!
В обозначенном колбеке обрабатываются сделки по указанному класскоду. При этом есть фильтр для отсеивания  повторных вызовов с одинаковыми номерами.
Но в результате " ни когда такого не было и вот опять" - прошла одна сделка по FUTSPREAD и получил два срабатывания колбека.

function OnTrade (trade)
if tr_num~=trade.trade_num then tr_num=trade.trade_num; new_trade=1

if (trade.sec_code==spreadPara) and (string.match(trade.brokerref,"limit")) then
local lot=math.abs(trade.qty)
--============================================================­=====
if bit.band(trade["flags"],4)>0 then

SendOrder("S",lot,bid-500,"M", "market", nF,M_SellNF,"SPBFUT")
SendOrder("B",lot,offer+500,"M", "market", fF,M_BuyFF,"SPBFUT")
else

SendOrder("S",lot,bid-500,"M", "market", fF,M_SellFF,"SPBFUT")
SendOrder("B",lot,bid+500,"M", "market", nF,M_BuyNF,"SPBFUT")
end
end
end
end
Это что какие то особенности FUTSPREAD.Возможно появление сделок по фьючам которые следуют за спредом несут признаки сделки по спреду?
 
В коде вы полагаетесь, что повторные вызовы придут до новых, а это не обязательно так, ситуация "A, B, еще раз A, еще раз B" тоже возможна.  Попробуйте
Код
local trades = {}

function OnTrade(trade)
   local tradenum = trade.tradenum
   if trades[tradenum] then
      return
   end
   trades[tradenum] = true
   ...
 
Не совсем Вас понял.
Вы хотите сказать что по одной сделке будут колбеки с разными номерами?
 
Я хочу сказать, что ваш "фильтр для отсеивания  повторных вызовов с одинаковыми номерами" не работает в общем случае.  Возможно проблема в этом, возможно я не понял ваш вопрос.
 
Кажется дошло.
За сделками по спреду автоматически следуют сделки по фьючам и видимо повторные вызовы по спреду приходят уже после колбека по фьючу. А поскольку я сохранял один номер только последний то он забивался фьючем перед приходом повторного по спреду   Нужно запоминать несколько номеров а не один.
 
Проблему можно было бы решить легко, например в операторе сравнения номеров использовать "<=" для случая когда не делаем ни чего, это было бы справедливо если бы номера инициированных сделок по фьючу были больше номера сделок по спреду, что казалось мне логичным пока не увидел в таблице сделок что номер сделки по спреду больше. Поэтому вопрос - это случайность или закономерность?
 
Цитата
lergen написал:
Поэтому вопрос - это случайность или закономерность?
Ответ мне не известен, но при любом раскладе придется быть готовым к аномалиям.  Вообще, совет во многих ветках один: чем меньше предположений вы сделаете, тем дольше проживет ваш депозит ;).

Недавно был упомянут очень хороший пост (вот этот), буквально ему следовать может и не стоит, но можно взять его за основу, и упрощать те моменты, в детерминированной работе которых вы уверены (например, вы используете market orders, значит сложности отслеживания жизненного цикла лимитированных заявок отпадают).
Страницы: 1
Читают тему
Наверх