Где то с флагом сделки напутал, не могу понять в чем ошибка, беру две произвольные заявки одну лимитированную, другую рыночную, на обе заявки прошли сделки, но рыночную флаг определяет правильно как рыночную, а лимитную тоже помечает как рыночная, где ошибка , подскажете? вот код , в конце кода, то что выводится в отладчике, а далее картинка с лимитированной заявкой и сделкой на нее.
Код |
---|
function main() bum="BRG9" ord="105270510" PrintDbgStr("Сделка по рыночной заявке "..ord) trade_ord(ord) PrintDbgStr("---------------") ord="106574907" PrintDbgStr("Сделка по лимитированной заявке "..ord) trade_ord(ord) PrintDbgStr("---------------") end function trade_ord(ord) --Перебирает ТАБЛИЦУ СДЕЛОК cena=0 for i=0,getNumberOf('trades')-1 do --количество записей в таблице local trade = getItem('trades', i); -- получает строку с номером i if trade.sec_code=="BRG9" then -- PrintDbgStr("trade.order_num==ord "..bum.." "..trade.order_num.." == "..ord) if tostring(trade.order_num)==ord then data2=tostring(trade.datetime.day).."-"..tostring(trade.datetime.hour)..":"..tostring(trade.datetime.min)..":"..tostring(trade.datetime.sec) PrintDbgStr("СДЕЛКА "..bum.." дата= "..data2.." цена= "..trade.price.." кол= "..trade.qty.." сумма= "..trade.value.." "..buysell(trade.flags).." "..lm(trade.flags).." №заяв= "..trade.order_num.." №сдел= "..trade.trade_num) end end end --return cena end function buysell(text) if bit.test(text,2) then sost="Продажа" else sost="Покупка" end return sost end function lm(text) --лимитированная или рыночная if bit.test(text,3) then sost="Лимитированная" else sost="Рыночная" end return sost end [2528] Сделка по рыночной заявке 105270510 [2528] СДЕЛКА BRG9 дата= 17-17:13:20 цена= 60.56 кол= 1 сумма= 40295.47 Продажа Рыночная №заяв= 105270510 №сдел= 11860082 [2528] --------------- [2528] Сделка по лимитированной заявке 106574907 [2528] СДЕЛКА BRG9 дата= 18-13:50:0 цена= 62.02 кол= 1 сумма= 41229.59 Продажа Рыночная №заяв= 106574907 №сдел= 11954452 [2528] --------------- |
человек (не робот)