Подскажите по onParam. Вчера при просмотре файла ордеров по опционам заметил нечто странное. Скрипт по onParam проверяет класс и если класс - опционы, то запрашивает данные по цене и виду опциона, затем записывает строку в файл. В настройках самого квика подписан только на оционы- сбер си и золото. Так вот сама суть наблюдения: в периоды активного изменения данных файл строится по хронологии, по столбцу времени все выглядит правильно, но потом появляются целые блоки, в которых видно что onParam, проходится в алфавитном порядке по опционам и записывает старые данные- это я понял по времени изменения котировки. Потом опять появляются данные с текущим временем, затем снова блок старых данных...могу прислать скрипт, настройки квика и файл с данными.
скрипт:
вот что только что записал:
code;strike;time;q_bid;bid;offer;q_offer;theor_price;go_sell;go_buy;exp_date
...
RI147500BT9;147500;192814;3;11880;12200;3;12020;20867.82;15788.69;20190815
RI150000BT9;150000;192857;3;14320;14640;3;14470;20929.07;17960.38;20190815
RI152500BT9;152500;185157;10;200;149990;3;16950;20952.51;19481.91;20190815
RI155000BT9;155000;190009;20;18490;20650;20;19440;20964.48;20365.78;20190815
RI157500BT9;157500;185157;10;60;0;0;21930;20978.17;20811.5;20190815
RI160000BT9;160000;190009;15;23220;25910;15;24430;20979.02;21035.9;20190815
RI162500BT9;162500;185131;1;30;0;0;26930;20980.91;21146.42;20190815
RI165000BT9;165000;185131;1;30;0;0;29430;20983.77;21203;20190815
RI167500BT9;167500;185131;1;30;0;0;31920;21001.68;21219.32;20190815
RI170000BT9;170000;185131;1;30;0;0;34420;21006.41;21236.55;20190815
RI172500BT9;172500;185131;1;30;0;0;36920;21012.09;21246.78;20190815
RI175000BT9;175000;185131;1;30;0;0;39420;21018.71;21253.16;20190815
RI177500BT9;177500;185131;1;30;0;0;41920;21026.28;21257.29;20190815
RI180000BT9;180000;185131;1;30;0;0;44420;21034.75;21260.09;20190815
RI182500BT9;182500;185131;1;30;0;0;46920;21044.09;21262.05;20190815
...
скрипт:
Код |
---|
function main() op = io.open("D:\\market_orders\\orders_op.csv","w") io.output(op) op:write("code;strike;time;q_bid;bid;offer;q_offer;theor_price;go_sell;go_buy;exp_date\n") message("SCRIPT IS RUNNING!") while IsRun do end end function OnParam( class, sec ) if class =="SPBOPT" then ttime = getParamEx(class, sec, "CHANGETIME") tq_bid = getParamEx(class, sec, "BIDDEPTH") tbid = getParamEx(class, sec, "BID") toffer_l = getParamEx(class, sec, "OFFER") tq_offer = getParamEx(class, sec, "OFFERDEPTH") strike = getParamEx(class, sec, "STRIKE") theor = getParamEx(class, sec, "THEORPRICE") exp = getParamEx(class, sec, "EXPDATE") gobuy = getParamEx(class, sec, "BUYDEPO") gosell = getParamEx(class, sec, "BGONP") op:write(sec,";",tonumber(strike.param_value),";",tonumber(ttime.param_value), ";",tonumber(tq_bid.param_value),";",tonumber(tbid.param_value), ";",tonumber(toffer_l.param_value),";",tonumber(tq_offer.param_value), ";",tonumber(theor.param_value), ";",tonumber(gosell.param_value),";",tonumber(gobuy.param_value), ";",tonumber(exp.param_value),"\n") end end |
code;strike;time;q_bid;bid;offer;q_offer;theor_price;go_sell;go_buy;exp_date
...
RI147500BT9;147500;192814;3;11880;12200;3;12020;20867.82;15788.69;20190815
RI150000BT9;150000;192857;3;14320;14640;3;14470;20929.07;17960.38;20190815
RI152500BT9;152500;185157;10;200;149990;3;16950;20952.51;19481.91;20190815
RI155000BT9;155000;190009;20;18490;20650;20;19440;20964.48;20365.78;20190815
RI157500BT9;157500;185157;10;60;0;0;21930;20978.17;20811.5;20190815
RI160000BT9;160000;190009;15;23220;25910;15;24430;20979.02;21035.9;20190815
RI162500BT9;162500;185131;1;30;0;0;26930;20980.91;21146.42;20190815
RI165000BT9;165000;185131;1;30;0;0;29430;20983.77;21203;20190815
RI167500BT9;167500;185131;1;30;0;0;31920;21001.68;21219.32;20190815
RI170000BT9;170000;185131;1;30;0;0;34420;21006.41;21236.55;20190815
RI172500BT9;172500;185131;1;30;0;0;36920;21012.09;21246.78;20190815
RI175000BT9;175000;185131;1;30;0;0;39420;21018.71;21253.16;20190815
RI177500BT9;177500;185131;1;30;0;0;41920;21026.28;21257.29;20190815
RI180000BT9;180000;185131;1;30;0;0;44420;21034.75;21260.09;20190815
RI182500BT9;182500;185131;1;30;0;0;46920;21044.09;21262.05;20190815
...