Возможно ли скачать график через LUA, когда данные не подгружены в файл info.log?

Страницы: 1
RSS
Возможно ли скачать график через LUA, когда данные не подгружены в файл info.log?
 

Здравствуйте.

Скачиваю графики после завершения торговой сессии через LUA для дальнейших нужд.

В окне, где отмечаются классы и бумаги для скачивания отмечены все классы и все бумаги. Также отмечено скачивание исторических данных.

У графиков историческая часть, я так понимаю, храниться в папке QUIK/archive, а та часть, что относится к текущей торговой сессии, храниться в файле info.log

Если графики в квике открыты в явном виде, то файл info.log наполняется и после торговой сессии весь график доступен для сохранения. Если в квике графики не открыты, то даже при всех поставленных галочках в окне «заказ данных» данные за текущую торговую сессию потом в txt скрипт не сохраняет.

Вопрос – как скачать данные за текущую торговую сессию скриптом без открытых графиков?

 
CreateDataSource() вам в помощь.  или готовый скрипт
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Через него самого и скачиваю.
Ваш скрипт уже видет и пробовал демострационную версию. Именно она меня сподвигла изучить LUA и самому написать скрипт, только уже для скачки всех классов и всех инструементов.
Ваш скрипт тоже, кстати, у меня не скачивал если не были открыты графики в явном виде и не проставлены все галочки в списках заказа данных.
 
Цитата
Petr_PG написал:
Через него самого и скачиваю.
Ваш скрипт уже видет и пробовал демострационную версию. Именно она меня сподвигла изучить LUA и самому написать скрипт, только уже для скачки всех классов и всех инструементов.
Ваш скрипт тоже, кстати, у меня не скачивал если не были открыты графики в явном виде и не проставлены все галочки в списках заказа данных.

Очень хорошо, что скрипт принес вам пользу )

Если терминалом в явном виде запрещено получать котировки или историю параметров какого-либо интрумента, получить их программно из терминала невозможно. Так устроено рабочее место quik.

Если у требуемого вам инструмента есть разрешение на получение котировок или установлен флаг "по открытым таблицам", то получить данные истории инструмента из скрипта можно. Мой скрипт это делает и ваш, если вы его напишете, тоже будет.

Открытие графиков в этом случае не требуется.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 

Эксперимент на эту тему ставил не один раз.

Из терминала QUIK удалил все вкладки, кроме одной и все графики. На единственной вкладке таблица обезличенных сделок и открыто окно выбора доступных скриптов.

Если скачиваю утром, во время торговой сессии, то всё нормально. Если скачиваю через 1 мин после закрытия торгов ночью, то выдаёт вот так:

sec_code@class_code@INTERVAL@year@month@day@hour@min@sec@ope­n@high@low@@close@parametr@date_download

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@2@26@18@35@0@74.7575@74.765@74.7375@74.7575@753@PRICE@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@23@45@0@72.5875@72.59@72.56@72.59@66@PRICE@2019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@BIDDEPTHT@2­019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@OFFERDEPTHT­@2019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@NUMBIDS@201­9-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@NUMOFFERS@2­019-03-26

Т.е. историю PRICE скачивает всю, в том числе и за прошедшую торговую сессии. А вот свечки за прошедшую торговую сессию для BIDDEPTHT и пр. скачивать не хочет.

Спустя пол часа после закрытия торгов повторяю процедуру. Выдаёт следующее:

sec_code@class_code@INTERVAL@year@month@day@hour@min@sec@ope­n@high@low@@close@parametr@date_download

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@2@26@18@35@0@74.7575@74.765@74.7375@74.7575@753@PRICE@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@23@45@0@72.5875@72.59@72.56@72.59@66@PRICE@2019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@10@0@0@10736@18734@10736@1867­1@96@BIDDEPTHT@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@11@25@0@30298@31982@22685@306­56@46@BIDDEPTHT@2019-03-26

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@BIDDEPTHT@2­019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@10@0@0@15163@19319@12838@1916­1@95@OFFERDEPTHT@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@11@25@0@24307@24598@17854@240­03@75@OFFERDEPTHT@2019-03-26

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@OFFERDEPTHT­@2019-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@10@0@0@118@206@118@205@90@NUM­BIDS@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@11@30@0@373@377@373@373@8@NUM­BIDS@2019-03-26

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@NUMBIDS@201­9-03-26

------------------------------------------------------------------------------------------

EUR_RUB__TOM@CETS@M5@2019@3@26@10@0@0@58@132@58@132@94@NUMOF­FERS@2019-03-26

...

EUR_RUB__TOM@CETS@M5@2019@3@26@11@30@0@175@179@165@171@38@NU­MOFFERS@2019-03-26

EUR_RUB__TOM@CETS@M5@2019@3@26@23@50@0@0@0@0@0@1@NUMOFFERS@2­019-03-26

Т.е. PRICE опять скачивает полностью все пятиминутные свечи, а BIDDEPTHT и пр. только до обеда, а потом честно пишет, что в 23:00 OHLC = 0

Так повторяется всегда, если в квике не открыты графики. На след день для валютной секции эти данные просто стираются.

То, что данные на бирже присутствуют в конце сессии – это факт. Я без скачки скриптом открывал квик с двумя стами окон с графиками BIDDEPTHT и пр. после закрытия торгов в 23:51 и оставлял квик на час, пока сервер брокера не рвёт соединение. Данные прогружались и при дальнейшем открытии квика графики видны в полном объёме.

 
ошибся
пишет, что в 23:50 OHLC = 0
 

Здравствуйте.

Попыхтел с кодом. Всё равно остался вопрос. Попробую его переформулировать.

Скачиваю через CreateDataSource + SetEmptyCallback исторические данные графиков (PRICE, BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS) после торговой сессии. Ни один график не открыт в явном виде, quik очищен от истории. Скачиваем например SBER.

Результат.

PRICE скачивается весь (включая текущую отторговавшуюся дату), 3106 свечек.

BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS – 3001 свеча в каждом. Без текущей отторговавшейся даты. Вот, приведу последние строки файла для BIDDEPTHT.

1             SBER@M5@2019-3-4@13:45:00@470139@487954@463467@487452@99@BIDDEPTHT

...

2999      SBER@M5@2019-4-12@18:35:0@654814@746138@648618@746138@99@BIDDEPTHT

3000      SBER@M5@2019-4-12@18:40:0@744533@785586@621548@777390@97@BIDDEPTHT

3001      SBER@M5@2019-4-15@19:20:0@0@0@0@0@1@BIDDEPTHT

Т.е. за  2019-4-15  quik скачал только свечу в 19:20 после торгов. Хотя повторюсь – для PRICE всё работает нормально.

Если я создаю окно в явном виде с графиками BIDDEPTHT, OFFERDEPTHT, NUMBIDS, NUMOFFERS, то данные скачиваются полностью.

В каком месте затык?

 

Забыл добавить.

Используя CreateDataSource + SetEmptyCallback в конце скрипта ставиться ds:Close().

Если ds:Close() не ставить в конце скрипта, скрипт запустить и оставить quik на 10 мин (аналог открытого графика), то через десять мин всё, что надо скачивается и за текущую сессию.

Затык наступает, если подписаться на 2840 графиков. Quik ложится.

Вопрос создателям квика – как вы можете предложить людям скачивать большое количество графиков?

Страницы: 1
Читают тему
Наверх