Код |
---|
function CntTradesSellPosition(zCLASSCODE,zSECCODE) cnt=0 local TableName='trades' local rows_total = getNumberOf(TableName) for r=rows_total-1, 0, -1 do local table_row=getItem(TableName,r) --message(tostring(table_row.flags));stop() if table_row.class_code==zCLASSCODE and table_row.sec_code==zSECCODE and table_row.flags==36 then -- сделка продажа cnt=cnt+1 end end return cnt end |
Пишу как самоучка, но мне как-то сложно (невозможно) вытаскивать из битовых флагов эти нужные значения, которые там закодированы в двоичной системе.
В частности мне нужно определить только тип заявки ордера Buy или Sell.
Я так и не нашёл нигде пример алгоритма получения этих битовых значений, поэтому беру 10-тичные числа, но это кривовато, ибо по причине изменения других свойств и числа будут другие.
Вот я методом научного тыка определил коды для продаж и второй флаг (бит) принимает разные значения:
64 = 1000000
36 = 100100
28 = 11100
1048604 = 100000000000000011100 - Продажа от стоплосса
Прошу, измените мой код, чтобы он нормально обрабатывал эти битовые флаги.