onParam

Страницы: 1
RSS
onParam, как работает?
 
Подскажите по onParam. Вчера при просмотре файла ордеров по опционам заметил нечто странное. Скрипт по onParam проверяет класс и если класс - опционы, то запрашивает данные по цене и виду опциона, затем записывает строку в файл. В настройках самого квика подписан только на оционы- сбер си и золото. Так вот сама суть наблюдения: в периоды активного изменения данных файл строится по хронологии, по столбцу времени все выглядит правильно, но потом появляются целые блоки, в которых видно что onParam, проходится в алфавитном порядке по опционам и записывает старые данные- это я понял по времени изменения котировки. Потом опять появляются данные с текущим временем, затем снова блок старых данных...могу прислать скрипт, настройки квика и файл с данными.

скрипт:
Код
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
...
 
Версия 7.25.1.3
 
Женя Логинов,
Здравствуйте,
Проверьте настройки терминала "Программа" - "Получение данных", нет ли там случайно галки "Запрашивать данные раз в ...", если есть то снимите.
 
Здравствуйте.
В настройках галка не установлена, период стоит - 0 сек
[img]file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%82%D0%BE%D1%87%D0%B5%D1%87%D0%BD%D1%8B%D0%B9%20%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA.bmp[/img]
 
Женя Логинов,
Проверьте еще включена ли настройка "Исходя из настроек открытых пользователем таблиц"
 
Добрый день. Если включить, то вообще ничего не появляется (наверно потому что у меня не включена ни одна таблица).
Я установил только опционы, по мануалу (
  • Вручную, выбрав пункт меню Рабочего места QUIK Система / Заказ данных /
    Поток котировок...и указав необходимые параметры и инструменты на
    классе;
)
Вопрос по теме настроек - есть ли возможность через скрипт сохранять настройки и загружать их?
 
Цитата
Женя Логинов написал:
Добрый день. Если включить, то вообще ничего не появляется (наверно потому что у меня не включена ни одна таблица).

нужно либо открыть таблицу, либо заказать данные через скрипт, это можно сделать функцией CreateDataSource

Цитата
Женя Логинов написал:
Вопрос по теме настроек - есть ли возможность через скрипт сохранять настройки и загружать их?

нет
 
Не очень понимаю...мне не нужны таблицы по опционам в квике. Я убрал из заказа данных все что мне не нужно. Я получаю при текущих настройках данные которые мне интересны. Я просто не понимаю почему работа onParam не соответствует описанию в мануале, что приводит к появлению старых данных...получается onParam работает в цикле и если её не вызывает терминал какое-то время - берет инициативу на себя и проходит по всем заказанным инструментам. у меня такая схема сложилась..
 
Женя Логинов,
Проблема изучается. Постараемся в ближайшее время дать ответ.
 
Спасибо
 
Женя Логинов,
Причина проблемы в обновляющихся параметрах Волатильность и Теоретическая цена.
Они обновляются по таймауту раз в минуту, даже если инструмент не ликвидный и торгов по нему не было.
При их обновлении срабатывает колбек OnParam
Чтобы избежать этого, удалите эти параметры из меню "Заказ данных"
 
Спасибо!!
Страницы: 1
Читают тему
Наверх