Используя CreateDataSource + SetEmptyCallback в конце скрипта ставиться ds:Close().
Если ds:Close() не ставить в конце скрипта, скрипт запустить и оставить quik на 10 мин (аналог открытого графика), то через десять мин всё, что надо скачивается и за текущую сессию.
Затык наступает, если подписаться на 2840 графиков. Quik ложится.
Вопрос создателям квика – как вы можете предложить людям скачивать большое количество графиков?
Попыхтел с кодом. Всё равно остался вопрос. Попробую его переформулировать.
Скачиваю через CreateDataSource + SetEmptyCallback исторические данные графиков (PRICE, BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS) после торговой сессии. Ни один график не открыт в явном виде, quik очищен от истории. Скачиваем например SBER.
Результат.
PRICE скачивается весь (включая текущую отторговавшуюся дату), 3106 свечек.
BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS – 3001 свеча в каждом. Без текущей отторговавшейся даты. Вот, приведу последние строки файла для BIDDEPTHT.
Спасибо за ответ. У меня также есть вопросы к брокеру, просто сначала решил всё выяснить со своей стороны (со стороны терминала).
Подробности по поводу зависания.
В QUIKе присутствует много графиков для валют. Открыты BIDDEPTHT, OFFERDEPTHT и пр. Я в курсе, что вы не советуете людям держать одновременно очень много окон, но если их не держать открытыми, то в случае для валют, после закрытия торгов не всегда удаётся стабильно скачать графики (по этому вопросу я создал отдельную тему https://forum.quik.ru/forum10/topic4409/). Мосбиржа стирает BIDDEPTHT и пр. для валют за прошедшие сессии. Для акций - не стирает.
По поводу зависания. Зависает весь терминал и не реагирует на отклик мыши, окно становится серым. Вместо курсора крутятся часики, ядро, на котором работает QIUK загружено на полную. Спустя некоторое время QUIK отвисает. С утра это происходит на несколько секунд, в течение дня время зависания возрастает. После закрытия торгов, время зависания может доходит до 10 мин. После этого QUIK отвисает, в строке состояния records: и current: возрастает кол-во записей на пару сотен тысяч и QUIK дальше работает. Соответственно в какой момент вам нужен архив квика? До зависания? В момент зависания? После отвисания?
Для меня это критично после окончания торгов ночью, когда я открываю QUIK (с очищенной папкой archive и удалёнными alltrade.dat и info.log) и скриптами LUA в три потока скачиваю графики для CETS, TQBR и SPBFUT пока сервера не отрубились. В этот момент QUIK итак использует весь доступный для него ресурс процессора, а тут ещё эти закачик records: и current: в 00:00 и 00:30.
Из терминала QUIK удалил все вкладки, кроме одной и все графики. На единственной вкладке таблица обезличенных сделок и открыто окно выбора доступных скриптов.
Если скачиваю утром, во время торговой сессии, то всё нормально. Если скачиваю через 1 мин после закрытия торгов ночью, то выдаёт вот так:
Т.е. историю PRICE скачивает всю, в том числе и за прошедшую торговую сессии. А вот свечки за прошедшую торговую сессию для BIDDEPTHT и пр. скачивать не хочет.
Спустя пол часа после закрытия торгов повторяю процедуру. Выдаёт следующее:
Т.е. PRICE опять скачивает полностью все пятиминутные свечи, а BIDDEPTHT и пр. только до обеда, а потом честно пишет, что в 23:00 OHLC = 0
Так повторяется всегда, если в квике не открыты графики. На след день для валютной секции эти данные просто стираются.
То, что данные на бирже присутствуют в конце сессии – это факт. Я без скачки скриптом открывал квик с двумя стами окон с графиками BIDDEPTHT и пр. после закрытия торгов в 23:51 и оставлял квик на час, пока сервер брокера не рвёт соединение. Данные прогружались и при дальнейшем открытии квика графики видны в полном объёме.
Через него самого и скачиваю. Ваш скрипт уже видет и пробовал демострационную версию. Именно она меня сподвигла изучить LUA и самому написать скрипт, только уже для скачки всех классов и всех инструементов. Ваш скрипт тоже, кстати, у меня не скачивал если не были открыты графики в явном виде и не проставлены все галочки в списках заказа данных.
Скачиваю графики после завершения торговой сессии через LUA для дальнейших нужд.
В окне, где отмечаются классы и бумаги для скачивания отмечены все классы и все бумаги. Также отмечено скачивание исторических данных.
У графиков историческая часть, я так понимаю, храниться в папке QUIK/archive, а та часть, что относится к текущей торговой сессии, храниться в файле info.log
Если графики в квике открыты в явном виде, то файл info.log наполняется и после торговой сессии весь график доступен для сохранения. Если в квике графики не открыты, то даже при всех поставленных галочках в окне «заказ данных» данные за текущую торговую сессию потом в txt скрипт не сохраняет.
Вопрос – как скачать данные за текущую торговую сессию скриптом без открытых графиков?
Подскажите пожалуйста, что скачивает QUIK каждый день после торгов в 00 часов 00 мин (МСК) и потом ещё раз в 00 часов 30 мин (МСК)? Интересует в связи с тем, что в это время у меня работают три скрипта LUA, которые скачивают графики/данные параметров за предыдущий торговый день. Одно ядро процессора, которое использует одноядерный QUIK итак загружено на 100%, а тут ещё «это», после чего QUIK просто зависает и ложится.
Заметил, что в течение сессии процессор нагружен на 1-2%. Периодически (раз в пол часа/час) нагрузка подскакивает до полной загрузки ядра. Скачивание в таблицу всех сделок и стаканы останавливаются. Программа зависает. С утра на 20-30 сек. К вечеру до 5 мин.
В 2018 году такого не наблюдал. Началось с февраля 2019. Версия QIUK’а свежая.
Здравствуйте. С недавних пор на правой шкале графика стали отражаться цифры с четырьмя знаками после запятой. Раньше подобного не было. Т.е., например, индекс ДОУ индастриал раньше был просто 25 500, а теперь 25 500.0000. Я сдвигаю шкалу, чтобы не видеть эти нули, но после закрытия/открытия квика нули снова появляются и снова смещают правую границу графика. Вопросы: 1. Это глюк транслируемых брокером данных или это настройки квика (после обновления версии программы) слетели? 2. Существует ли возможность самостоятельно настраивать разрядность цифр на графиках