Странная работа скрипта

Страницы: 1
RSS
Странная работа скрипта, Работает только если запущен после старта работы биржи
 
Есть скрипт, который работает анализируя текущие сделки (alltrades). Если запустить его после старта работы биржи (10 часов), то все хорошо. Но если запустить его часов в 5,6,7 и оставить дожидаться начала работы, то он работать так и не начинает. Т.е. никакие сделки в коллбек alltrades( в таблицу обезличенных сделок) не приходят.
В чем может быть причина? Или так и задумано?
 
Раньше всегда работал по факту после открытия.  Т.е. в плане самого скрипта все абсолютно рабочее и давно проверенное.
Сейчас встал вопрос об автономной работе с логгированием и контролем дистанционно.
И вот тут начались странности.
 
Немного покопавшись в проблеме, пришел еще один вопрос- работает ли "getSecurityInfo" когда биржа закрыта? Мой скрипт начинает работу с подбора инструментов, используя данную функцию, и если она возвращает nil, то это объясняет мою проблему.
 
Цитата
Mikhail_04 написал:
Мой скрипт начинает работу с подбора инструментов
Вот тут и завелась принципиальная ошибка.

У меня, например, скрипт постоянно в цикле проверяет является ли текущее время рабочим для биржи, установлено ли соединение с сервером, состояние торговой сессии, соответствие локального времени и времени последней свечи, корректность получения необходимых параметров рабочих бумаг.
И только если все его устраивает, то запускается торговый функционал.

Короче, обвешайте свой скрипт дополнительными проверками.
 
Mikhail_04,  добрый день.

С помощью getSecurityInfo можно получить инфомрацию об инструментах, которые в текущий момент доступны в Рабочем месте QUIK.
По недоступному инструменту функция возвращает nil.
 
Ну что сказать, скрипт переделал, ввел проверки, в частности getSecurityInfo до старта торгов действительно выдает nil. Но это все не помешало программе неработать.
Проблема сохраняется, похоже все сложнее, чем я думал.
Если включить скрипт в 5 часов утра, то на старте работы биржи при первой же сделке появится ли колбек? Похоже, что не появляется.
 
Конкретно, колбэк onAllTrades никак не отрабатывает, если скрипт запущен до запуска торгов. Т.е. биржа стартует, но никаких обезличенных сделок так и не появляется.

При этом если после начала торгов подойти к компьютеру и нажать "остановить"-"запустить", то все работает. Как такое может быть? Ошибка в квик или так задуманно, или я еще чего-то мог не учесть.
 
Цитата
Mikhail_04 написал:
Конкретно, колбэк onAllTrades никак не отрабатывает, если скрипт запущен до запуска торгов
Да пофигу коллбекам когда скрипт был запушен, событие есть, коллбек сработал.
Цитата
Mikhail_04 написал:
Как такое может быть?
Что-то у вас в коде не то, смотреть надо

Урежьте код до минимально возможного, но чтобы проблема на нем воспроизводилась и покажите.
 
Или сделайте еще проще, добавьте в начало коллбека строчку
Код
function OnAllTrade(alltrade)
message("OnAllTrade сработал")
// дальше идет ваш код колбека
...
...
...
end
и тогда у вас возникнет уже правильный вопрос, почему коллбек срабатывает, а ваш скрипт его не может нормально отработать
 
BlaZed, спасибо, буду копаться дальше. Как раз домой вернулся, есть возможность пролистать логи.
Коллбеки судя по логам прошли, но не обработались по правилу, похоже все-таки в коде ошибка.
Еще кой-чего подправил(обнаружил небольшую ошибку), завтра проверю. Жаль биржа 24/7 не работает 😁
 
Довольно забавно, но проблема была в том, что в одной из очередей вместо table.sinsert стояла table.insert, при запуске "на лету" проблем не было, а вот когда запуск с задержкой, то очередь событий быстро заполнялась и появлялись проблемы.
Страницы: 1
Читают тему
Наверх