Где то с флагом сделки напутал, не могу понять в чем ошибка, беру две произвольные заявки одну лимитированную, другую рыночную, на обе заявки прошли сделки, но рыночную флаг определяет правильно как рыночную, а лимитную тоже помечает как рыночная, где ошибка , подскажете? вот код , в конце кода, то что выводится в отладчике, а далее картинка с лимитированной заявкой и сделкой на нее.
| Код |
|---|
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] ---------------
|
человек (не робот)