Скачиваю графики после завершения торговой сессии через LUA для дальнейших нужд.
В окне, где отмечаются классы и бумаги для скачивания отмечены все классы и все бумаги. Также отмечено скачивание исторических данных.
У графиков историческая часть, я так понимаю, храниться в папке QUIK/archive, а та часть, что относится к текущей торговой сессии, храниться в файле info.log
Если графики в квике открыты в явном виде, то файл info.log наполняется и после торговой сессии весь график доступен для сохранения. Если в квике графики не открыты, то даже при всех поставленных галочках в окне «заказ данных» данные за текущую торговую сессию потом в txt скрипт не сохраняет.
Вопрос – как скачать данные за текущую торговую сессию скриптом без открытых графиков?
Через него самого и скачиваю. Ваш скрипт уже видет и пробовал демострационную версию. Именно она меня сподвигла изучить LUA и самому написать скрипт, только уже для скачки всех классов и всех инструементов. Ваш скрипт тоже, кстати, у меня не скачивал если не были открыты графики в явном виде и не проставлены все галочки в списках заказа данных.
Petr_PG написал: Через него самого и скачиваю. Ваш скрипт уже видет и пробовал демострационную версию. Именно она меня сподвигла изучить LUA и самому написать скрипт, только уже для скачки всех классов и всех инструементов. Ваш скрипт тоже, кстати, у меня не скачивал если не были открыты графики в явном виде и не проставлены все галочки в списках заказа данных.
Очень хорошо, что скрипт принес вам пользу )
Если терминалом в явном виде запрещено получать котировки или историю параметров какого-либо интрумента, получить их программно из терминала невозможно. Так устроено рабочее место quik.
Если у требуемого вам инструмента есть разрешение на получение котировок или установлен флаг "по открытым таблицам", то получить данные истории инструмента из скрипта можно. Мой скрипт это делает и ваш, если вы его напишете, тоже будет.
Из терминала QUIK удалил все вкладки, кроме одной и все графики. На единственной вкладке таблица обезличенных сделок и открыто окно выбора доступных скриптов.
Если скачиваю утром, во время торговой сессии, то всё нормально. Если скачиваю через 1 мин после закрытия торгов ночью, то выдаёт вот так:
Т.е. историю PRICE скачивает всю, в том числе и за прошедшую торговую сессии. А вот свечки за прошедшую торговую сессию для BIDDEPTHT и пр. скачивать не хочет.
Спустя пол часа после закрытия торгов повторяю процедуру. Выдаёт следующее:
Т.е. PRICE опять скачивает полностью все пятиминутные свечи, а BIDDEPTHT и пр. только до обеда, а потом честно пишет, что в 23:00 OHLC = 0
Так повторяется всегда, если в квике не открыты графики. На след день для валютной секции эти данные просто стираются.
То, что данные на бирже присутствуют в конце сессии – это факт. Я без скачки скриптом открывал квик с двумя стами окон с графиками BIDDEPTHT и пр. после закрытия торгов в 23:51 и оставлял квик на час, пока сервер брокера не рвёт соединение. Данные прогружались и при дальнейшем открытии квика графики видны в полном объёме.
Попыхтел с кодом. Всё равно остался вопрос. Попробую его переформулировать.
Скачиваю через CreateDataSource + SetEmptyCallback исторические данные графиков (PRICE, BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS) после торговой сессии. Ни один график не открыт в явном виде, quik очищен от истории. Скачиваем например SBER.
Результат.
PRICE скачивается весь (включая текущую отторговавшуюся дату), 3106 свечек.
BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS – 3001 свеча в каждом. Без текущей отторговавшейся даты. Вот, приведу последние строки файла для BIDDEPTHT.
Используя CreateDataSource + SetEmptyCallback в конце скрипта ставиться ds:Close().
Если ds:Close() не ставить в конце скрипта, скрипт запустить и оставить quik на 10 мин (аналог открытого графика), то через десять мин всё, что надо скачивается и за текущую сессию.
Затык наступает, если подписаться на 2840 графиков. Quik ложится.
Вопрос создателям квика – как вы можете предложить людям скачивать большое количество графиков?