result = getParamEx("SPBOPT","GD1550BL9",BID).param_type - attempt to index a nil value
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
25.09.2019 21:50:02
почему так происходит?
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
25.09.2019 21:47:42
опять по "дней до погашения" получаю нули!!! в понедельник все отлично работало, сегодня опять не пойми что.. от чего это зависит? как только дата экспирации по опционам, так запросы перестают нормально работать. не только дни до погашения, но и тип опциона не получается
Спасибо. только получилось так:getParamEx("SPBOPT", option_code, "optiontype").param_image
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
22.09.2019 22:00:24
Снова здорово! как получить вид опциона (Call/put)? есть ли методы? спасибо.
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
19.09.2019 21:08:47
Не знаю в чем причина, но почему-то получилось. Спасибо.
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
19.09.2019 21:00:05
У меня в терминале не выбран ни один инструмент для заказа котировок и обезличенных сделок. вот мой скрипт - получаю одни нули.
Код
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
Пользователь
Сообщений: Регистрация: 07.11.2015
18.09.2019 22:08:57
нашел как реализовать такой поиск, но не могу получить параметр "дней до погашения"
Доска опцинов из QLUA
Пользователь
Сообщений: Регистрация: 07.11.2015
18.09.2019 22:07:14
почему в версии 7.27.2.1 на запрос DAYS_TO_MAT_DATE выдает nil? этот параметр уже нельзя запросить? в руководстве пользователя 7.27 этого параметра нет. хотя если строить таблиц текущих торгов, то столбец с количеством дней до погашения есть...
Запрос списка инструментов Lua
Пользователь
Сообщений: Регистрация: 07.11.2015
11.09.2019 22:06:33
как мне понять какой код у текущего фьюча(без поиска по сайту биржи) - придется сначала запросить все, а потом отфильтровать- и получить одну единственную запись. Потом по для каждого опциона запросить его БА, снова фильтр. потом выбрать только нужную дату. Так получается?
Оптимизация производительности клиентского места QUIK, Настройки QUIK, вопросы по фак-теме
Пользователь
Сообщений: Регистрация: 07.11.2015
11.09.2019 22:00:18
меню "Система"->"Настройки"->"Основные настройки"->"Программа"->"Файлы настроек". Я там поставил все галочки. В окне "Использовать файл настроек" - указываю отдельную папку, а сам квик их скидывает в свою папку Quik.
Запрос списка инструментов Lua
Пользователь
Сообщений: Регистрация: 07.11.2015
11.09.2019 21:51:23
TABLE getSecurityInfo (STRING class_code, STRING sec_code) - перед тем как её вызывать надо знать sec_code. как узнать его для 200 опционов?
Запрос списка инструментов Lua
Пользователь
Сообщений: Регистрация: 07.11.2015
11.09.2019 21:16:44
Есть одно неудобство, связанное с постоянным обновлением списка опционов руками ( я знаю что есть возможность обновлять их по сообщению системы). Но мне бы хотелось получать список всех опционов, допустим, на фьючерс РТС - к примеру, и потом уже подписываться на интересные даты и страйки. Посмотрел мануал по Луа, там есть STRING getClassesList (), но он вернет - OPTEXP,USDRUB,PSOPT,PSFUT,SPBFUT. из него я допустим беру SPBFUT и передаю его в sec_list = getClassSecurities("SPBFUT"). в итоге получу кучу всего: RSH3,VBZ2,O4Z2,O2Z2,SiM3,SiH3......из всего разнообразия надо вспомнить какой код у ближайщего фьюча, и потом как-то запросить опционы с подходящими датами и страйками... Существуют ли реализованные способы? Или проще сначала спарсить сайт биржи, а потом уже подписываться на опционы? Спасибо
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
24.07.2019 12:25:00
Спасибо!!
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
23.07.2019 11:57:00
Спасибо
Разрастается info.wnd от подписок в lua скрипте
Пользователь
Сообщений: Регистрация: 07.11.2015
23.07.2019 10:22:23
Я не специально. Сори
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
23.07.2019 07:56:04
Не очень понимаю...мне не нужны таблицы по опционам в квике. Я убрал из заказа данных все что мне не нужно. Я получаю при текущих настройках данные которые мне интересны. Я просто не понимаю почему работа onParam не соответствует описанию в мануале, что приводит к появлению старых данных...получается onParam работает в цикле и если её не вызывает терминал какое-то время - берет инициативу на себя и проходит по всем заказанным инструментам. у меня такая схема сложилась..
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
22.07.2019 20:26:26
Добрый день. Если включить, то вообще ничего не появляется (наверно потому что у меня не включена ни одна таблица). Я установил только опционы, по мануалу (
Вручную, выбрав пункт меню Рабочего места QUIK Система / Заказ данных / Поток котировок...и указав необходимые параметры и инструменты на классе;
) Вопрос по теме настроек - есть ли возможность через скрипт сохранять настройки и загружать их?
Разрастается info.wnd от подписок в lua скрипте
Пользователь
Сообщений: Регистрация: 07.11.2015
22.07.2019 20:15:08
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
22.07.2019 07:45:29
Здравствуйте. В настройках галка не установлена, период стоит - 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, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
19.07.2019 19:45:34
Версия 7.25.1.3
onParam, как работает?
Пользователь
Сообщений: Регистрация: 07.11.2015
19.07.2019 19:41:46
Подскажите по 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 скрипте
Пользователь
Сообщений: Регистрация: 07.11.2015
19.07.2019 09:27:11
Подскажите по onParam. Вчера припромотре файла ордеров по опционам заметил нечто странное. Скрипт по onParam проверяет класс и если класс - опционы, то запрашивает данные по цене и виду опциона, затем записывает строку в файл. В настройках самого квика подписан только на оционы- сбер си и золото. Так вот сама суть наблюдения: в периоды активного изменения данных файл строится по хролнологии, по столбцу времени все выглядит правильно, но потом появляются целые блоки, в которых видно что onParam, проходится в алфавитном порядке по опционам и записывает старые данные- это я понял по времени изменения котировки. Потом опять появляются данные с текущим временем, затем снова блок старых данных...могу прислать скрипт, настройки квика и файл с данными
стал ли Квик быстрее?
Пользователь
Сообщений: Регистрация: 07.11.2015
28.02.2019 13:53:18
В ваших мануалах указывается, что для снижения нагрузок и проч, квик не передаёт отдельно каждое обновление по котировкам, а накапливает данные с одинаковыми параметрами цены, и выдаёт разом все... я так понял. В общем ключевой момент 300мс и он был в вашем мануале. Не помню с точностью до страницы, но я его не выдумал.
стал ли Квик быстрее?
Пользователь
Сообщений: Регистрация: 07.11.2015
28.02.2019 10:08:31
Спасибо. А вы со оей стороны уберете 300мс накопление? Где-то в ваших мануалах видел это значение?
стал ли Квик быстрее?
Пользователь
Сообщений: Регистрация: 07.11.2015
27.02.2019 18:53:16
С 18 февраля биржа отменила 3мс батчинг(вроде они так его называют)котировок. И соответственно сервера теперь отправляют изменения по заявкам онлай так сказать.(Об этом написала сама биржа на своём сайте). Я ожидал увидеть увеличение количества изменений по ордерам, но все также получаю 4-8 строчек за секунду. К ого просить ускориться? Брокера или арку?
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
14.12.2018 10:29:56
Я просто хочу получить однозначный ответ- самый быстрый способ получать по возможности полные данные по котировкам инструмента это...
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
14.12.2018 10:26:12
И вообще получается, что если сделка прошла до того как котировка попала в стакан- тогда она НЕРЫНОЧНАЯ! И могут быть правовые последствия..
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
14.12.2018 08:40:57
Это поднимает вопрос о том, как получать максимально быстро изменения в котировках, если данные отправляются срезами? Здесь уже было обсуждение кто быстрее-получилось что ОнКвоут быстрее. А теперь получается что из-за срезов разницы может и не быть...
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
13.12.2018 23:20:01
Вопрос в том, будут ли данные в ленте истории стакана, если я не видел её в стакане)
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
13.12.2018 18:21:55
Такой ещё вопрос. Есть ситуация, когда я кидаю в стакан заявку по оционам, по цене хуже рынка-она сразу в таблице заявок принимает статус исполнена. Но в стакане она не отразилась-или глаз не успел увидеть)такого рода ситуации лучше отлавливать ОнКваут? Или же ОнПарам?
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
11.12.2018 09:44:16
А таблица текущих параметров имёт ограничения по количеству бумаг? Можно ли в одном скрипте сочитать работу со стаканами нескольких бумаг и обращение getParamEx?
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
11.12.2018 09:32:50
То есть даже для 10 бумаг нужно прописать все 10 проверок- выглядит не очень удобно. Или же есть другой способ?Спасибо
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
11.12.2018 08:31:45
Описание лабораторной установки:квик версии см. выше. Через настройки получения данных отключены все рынки кроме ФОРТС, в рынке выбран только один инструмент - фьюч сбера; выбраны параметры лучшие цены спроса и предложения, и размеры спроса и предожения. Обезличенные сделки-отключены все рынки. Таким образом, думаю я исключил получение левых данных. В терминале открыт стакан по выбранному фьючерсу. В коде я задал переменные для класса и кода бумаги. И если удалось подписаться на заданный стакан, то ду вайл... И такой ещё вопрос. Если я хочу подписаться на полные доски опционов по двум фьючерсам, на десяток стаканов по акциям и три десятка по облигациям- в сумме может превысить порог в 200 стаканов, про который написано в мануале по квику, или это количество установлено для рабочего места,- то как мне оптимально записать подписку на все эти стаканы, проверку их в ОнКвоут- очередью?
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
10.12.2018 22:04:54
[img]file:///F:/lua2018/offer.png[/img]
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
10.12.2018 21:57:02
Котировка на момент тестирования - 19 200!
Данные из стакана котировок
Пользователь
Сообщений: Регистрация: 07.11.2015
10.12.2018 21:55:24
Прежде чем писать, я погуглил и почитал форумы. Но ответ на глаза не попался . Вот код:
Код
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
заполнение созданной таблицы
Пользователь
Сообщений: Регистрация: 07.11.2015
08.11.2015 12:27:39
Ваш сайт я уже посмотрел. в поисках решения своих идей. только картинки мало чем помогут-вот пример кода, или наводка как сделать правильней- больше помогут. такой огород получается потому что в Квик нет возможности обращаться к любой таблице, скажем доске опционов.
заполнение созданной таблицы
Пользователь
Сообщений: Регистрация: 07.11.2015
07.11.2015 21:10:48
потаюсь реализовать свое видение тестирования системы. пришел к выводу, что неплохо было бы сигналы от ТС выносить на график инструмента. Я представляю себе это так. эксель обсчитывает данные, записывает параметр сигнала - время, цена, кол-во- в файл, а Квик забирает записанную строчку в созданную таблицу, и по данным этой таблицы строиться уже индикатор в реальном времени. в общем так работает нанесение на график меток исполненных сделок (треугольник вниз-вверх). вот мне интересно, если квик забирает строчку из файла .tri и она записывается в таблицу заявок, то как из произвольного файла записать строку (состоит из данных время, цена, объем) в созданную таблицу в Квик. такое "кривое" исполнение потому, что не силен в программировании, и все реализовано на Квик-ДДЕ-Эксель-.tri