Женя Логинов (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Доска опцинов из QLUA
 
result = getParamEx("SPBOPT","GD1550BL9",BID).param_type  - attempt to index a nil value
Доска опцинов из QLUA
 
почему так происходит?
Доска опцинов из QLUA
 
опять по "дней до погашения" получаю нули!!! в понедельник все отлично работало, сегодня опять не пойми что.. от чего это зависит? как только дата экспирации по опционам, так запросы перестают нормально работать. не только дни до погашения, но и тип опциона не получается
Код
dtm = getParamEx("SPBOPT", option_code, "DAYS_TO_MAT_DATE").param_value
         if tonumber(dtm) < 36 and tonumber(dtm) > 0 then
            date_mate = getSecurityInfo("SPBOPT", option_code).mat_date
            option_type = getParamEx("SPBOPT", option_code, "optiontype").param_image
            date_mate = getSecurityInfo("SPBOPT", option_code).mat_date
            strike = getSecurityInfo("SPBOPT", option_code).option_strike
            table.insert(ba_table[ba_code], {strike, option_code, date_mate, option_type})
            op:write(ba_code.. "," ..strike .. "," .. option_code .. "," .. date_mate .. "," ..option_type, "\n")            
         end
Доска опцинов из QLUA
 
Спасибо. только получилось так:getParamEx("SPBOPT", option_code, "optiontype").param_image
Доска опцинов из QLUA
 
Снова здорово! как получить вид опциона (Call/put)? есть ли методы? спасибо.
Доска опцинов из QLUA
 
Не знаю в чем причина, но почему-то получилось. Спасибо.
Доска опцинов из QLUA
 
У меня в терминале не выбран ни один инструмент для заказа котировок и обезличенных сделок.
вот мой скрипт - получаю одни нули.
Код
function main() 
   op = io.open("D:\\market_orders\\codes.csv","w+")
   io.output(op)
   opt = getClassSecurities("SPBOPT")
   for i in string.gmatch(opt, "%w+") do
      op:write(i, "\n")
      op:write(getParamEx("SPBPOT", i, "DAYS_TO_MAT_DATE").param_value, "\n")
   end
   io.close()
end;
Запрос списка инструментов Lua
 
нашел как реализовать такой поиск, но не могу получить параметр "дней до погашения" https://forum.quik.ru/messages/forum10/message39732/topic1069/#message39732
Доска опцинов из QLUA
 
почему в версии 7.27.2.1 на запрос DAYS_TO_MAT_DATE выдает nil? этот параметр уже нельзя запросить? в руководстве пользователя 7.27 этого параметра нет. хотя если строить таблиц текущих торгов, то столбец с количеством дней до погашения есть...
Запрос списка инструментов Lua
 
как мне понять какой код у текущего фьюча(без поиска по сайту биржи) - придется сначала запросить все, а потом отфильтровать- и получить одну единственную запись.
Потом по для каждого опциона запросить его БА, снова фильтр. потом выбрать только нужную дату.
Так получается?
Оптимизация производительности клиентского места QUIK, Настройки QUIK, вопросы по фак-теме
 
меню "Система"->"Настройки"->"Основные настройки"->"Программа"->"Файлы настроек". Я там поставил все галочки. В окне "Использовать файл настроек" - указываю отдельную папку, а сам квик их скидывает в свою папку Quik.
Запрос списка инструментов Lua
 
TABLE getSecurityInfo (STRING class_code, STRING sec_code) - перед тем как её вызывать надо знать sec_code. как узнать его для 200 опционов?
Запрос списка инструментов Lua
 
Есть одно неудобство, связанное с постоянным обновлением списка опционов руками ( я знаю что есть возможность обновлять их по сообщению системы). Но мне бы хотелось получать список всех опционов, допустим, на фьючерс РТС - к примеру, и потом уже подписываться на интересные даты и страйки. Посмотрел мануал по Луа, там есть STRING getClassesList (), но он вернет - OPTEXP,USDRUB,PSOPT,PSFUT,SPBFUT. из него я допустим беру SPBFUT и передаю его в sec_list = getClassSecurities("SPBFUT"). в итоге получу кучу всего: RSH3,VBZ2,O4Z2,O2Z2,SiM3,SiH3......из всего разнообразия надо вспомнить какой код у ближайщего фьюча, и потом как-то запросить опционы с подходящими датами и страйками...
Существуют ли реализованные способы?
Или проще сначала спарсить сайт биржи, а потом уже подписываться на опционы?
Спасибо
onParam, как работает?
 
Спасибо!!
onParam, как работает?
 
Спасибо
Разрастается info.wnd от подписок в lua скрипте
 
Я не специально. Сори
onParam, как работает?
 
Не очень понимаю...мне не нужны таблицы по опционам в квике. Я убрал из заказа данных все что мне не нужно. Я получаю при текущих настройках данные которые мне интересны. Я просто не понимаю почему работа onParam не соответствует описанию в мануале, что приводит к появлению старых данных...получается onParam работает в цикле и если её не вызывает терминал какое-то время - берет инициативу на себя и проходит по всем заказанным инструментам. у меня такая схема сложилась..
onParam, как работает?
 
Добрый день. Если включить, то вообще ничего не появляется (наверно потому что у меня не включена ни одна таблица).
Я установил только опционы, по мануалу (
  • Вручную, выбрав пункт меню Рабочего места QUIK Система / Заказ данных /
    Поток котировок...и указав необходимые параметры и инструменты на
    классе;
)
Вопрос по теме настроек - есть ли возможность через скрипт сохранять настройки и загружать их?
Разрастается info.wnd от подписок в lua скрипте
 
https://forum.quik.ru/messages/forum10/message38995/topic4649/#message38995
onParam, как работает?
 
Здравствуйте.
В настройках галка не установлена, период стоит - 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]
onParam, как работает?
 
Версия 7.25.1.3
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
...
Разрастается info.wnd от подписок в lua скрипте
 
Подскажите по onParam. Вчера припромотре файла ордеров по опционам заметил нечто странное. Скрипт по onParam проверяет класс и если класс - опционы, то запрашивает данные по цене и виду опциона, затем записывает строку в файл. В настройках самого квика подписан только на оционы- сбер си и золото. Так вот сама суть наблюдения: в периоды активного изменения данных файл строится по хролнологии, по столбцу времени все выглядит правильно, но потом появляются целые блоки, в которых видно что onParam, проходится в алфавитном порядке по опционам и записывает старые данные- это я понял по времени изменения котировки. Потом опять появляются данные с текущим временем, затем снова блок старых данных...могу прислать скрипт, настройки квика и файл с данными
стал ли Квик быстрее?
 
В ваших мануалах указывается, что для снижения нагрузок и проч, квик не передаёт отдельно каждое обновление по котировкам, а накапливает данные с одинаковыми параметрами цены, и выдаёт разом все... я так понял.
В общем ключевой момент 300мс и он был в вашем мануале. Не помню с точностью до страницы, но я его не выдумал.  
стал ли Квик быстрее?
 
Спасибо. А вы со оей стороны уберете 300мс накопление? Где-то в ваших мануалах видел это значение?
стал ли Квик быстрее?
 
С 18 февраля биржа отменила 3мс батчинг(вроде они так его называют)котировок. И соответственно сервера теперь отправляют изменения по заявкам онлай так сказать.(Об этом написала сама биржа на своём сайте). Я ожидал увидеть увеличение количества изменений по ордерам, но все также получаю 4-8 строчек за секунду. К ого просить ускориться? Брокера или арку?
Данные из стакана котировок
 
Я просто хочу получить однозначный ответ- самый быстрый способ получать по возможности полные данные по котировкам инструмента это...
Данные из стакана котировок
 
И вообще получается, что если сделка прошла до того как котировка попала в стакан- тогда она НЕРЫНОЧНАЯ! И могут быть правовые последствия..
Данные из стакана котировок
 
Это поднимает вопрос о том, как получать максимально быстро изменения в котировках, если данные отправляются срезами? Здесь уже было обсуждение кто быстрее-получилось что ОнКвоут быстрее. А теперь получается что из-за срезов разницы может и не быть...
Данные из стакана котировок
 
Вопрос в том, будут ли данные в ленте истории стакана, если я не видел её в стакане)
Данные из стакана котировок
 
Такой ещё вопрос. Есть ситуация, когда я кидаю в стакан заявку по оционам, по цене хуже рынка-она сразу в таблице заявок принимает статус исполнена. Но в стакане она не отразилась-или глаз не успел увидеть)такого рода ситуации лучше отлавливать ОнКваут? Или же ОнПарам?
Данные из стакана котировок
 
А таблица текущих параметров имёт ограничения по количеству бумаг? Можно ли в одном скрипте сочитать работу со стаканами нескольких бумаг и обращение getParamEx?
Данные из стакана котировок
 
То есть даже для 10 бумаг нужно прописать все 10 проверок- выглядит не очень удобно. Или же есть другой способ?Спасибо
Данные из стакана котировок
 
Описание лабораторной установки:квик версии см. выше. Через настройки получения данных отключены все рынки кроме ФОРТС, в рынке выбран только один инструмент - фьюч сбера; выбраны параметры лучшие цены спроса и предложения, и размеры спроса и предожения. Обезличенные сделки-отключены все рынки.
Таким образом, думаю я исключил получение левых данных. В терминале открыт стакан по выбранному фьючерсу.
В коде я задал переменные для класса и кода бумаги. И если удалось подписаться на заданный стакан, то ду вайл...
И такой ещё вопрос. Если я хочу подписаться на полные доски опционов по двум фьючерсам, на десяток стаканов по акциям и три десятка по облигациям- в сумме может превысить порог в 200 стаканов, про который написано в мануале по квику, или это количество установлено для рабочего места,- то как мне оптимально записать подписку на все эти стаканы, проверку их в ОнКвоут- очередью?  
Данные из стакана котировок
 
[img]file:///F:/lua2018/offer.png[/img]
Данные из стакана котировок
 
Котировка на момент тестирования - 19 200!
Данные из стакана котировок
 
Прежде чем писать, я погуглил и почитал форумы. Но ответ на глаза не попался :sad: . Вот код:
Код
local class_code = "SPBFUT"
local sec_code = "SRZ8"

function main()
    if Subscribe_Level_II_Quotes(class_code, sec_code) then
        while IsRun do
        end
    end
end

function OnQuote(class_code, sec_code)
    ql2 = getQuoteLevel2(class_code, sec_code)
    --bidCount = ql2.bid_count
    --message(ql2.bid[0+bidCount].price ..'-' .. ql2.bid[0+bidCount].quantity)
    message(ql2.offer[1].price ..'-'.. ql2.offer[1].quantity)
end

решил сравнить со стаканом котировок, вроде совпадает, НО если начать просматривать сообщения по очереди, то проскакивает котировка типа 19588 или 19533 - видать из дна стакана.
Как такое может быть, если выводится только первая строка?
тоже самое происходит и при просмотре БИДа

По поводу манула по QLua - в примере можно было бы указать как обратиться к строке таблицы через индекс строки (да до меня не дошло) - пришлось искать по форумам.
Помогите разобраться почему проскакивает левая цена?
Спасибо.
версия 7.19.0.51
заполнение созданной таблицы
 
Ваш сайт я уже посмотрел. в поисках решения своих идей. только картинки мало чем помогут-вот пример кода, или наводка как сделать правильней- больше помогут.
такой огород получается потому что в Квик нет возможности обращаться к любой таблице, скажем доске опционов.
заполнение созданной таблицы
 
потаюсь реализовать свое видение тестирования системы. пришел к выводу, что неплохо было бы сигналы от ТС выносить на график инструмента. Я представляю себе это так. эксель обсчитывает данные, записывает параметр сигнала - время, цена, кол-во- в файл, а Квик забирает записанную строчку в созданную таблицу, и по данным этой таблицы строиться уже индикатор в реальном времени. в общем так работает нанесение на график меток исполненных сделок (треугольник вниз-вверх).
вот мне интересно, если квик забирает строчку из файла .tri и она записывается в таблицу заявок, то как из произвольного файла записать строку (состоит из данных время, цена, объем) в созданную таблицу в Квик.
такое "кривое" исполнение потому, что не силен в программировании, и все реализовано на Квик-ДДЕ-Эксель-.tri
Страницы: 1
Наверх