Вот такой опыт. 1) Включаю Quik, дожидаюсь соединения. 2) В окне «Доступные скрипты QLua» прицеливаюсь на самодельный скрипт купли. 3) Отрываю провод интернета и запускаю скрипт. 4) Через 20 сек Quik индицирует потерю связи с брокером. 5) Даже через 120 сек без связи в Quik'е нет срабатывания OntTransReply(), объясняющего, почему заявка на куплю не прошла.
Но я сам с усам. В скрипте я не полагаюсь на тугодумную QLua-функцию isConnected(), но слежу за временем получения последней записи = getInfoParam («LASTRECORDTIME»). И на момент проверки перед подачей заявки оказывается:
checkTm = 13:11:26; serverTm = 13:11:27; recordTm = 13:11:21; conn = false
Т.е. последняя запись от брокера получена за 5 сек до проверки. А т.к. в «Основных настройках» я задал «Запрашивать данные раз в 1 сек», это значит что связи с брокером нет.
В данной ситуации моему роботу повезло. Но к сожалению, реально отслеживать потерю связи таким методом можно с точностью около 2 сек. Может оказаться, что потеря связи будет обнаружена роботом ПОСЛЕ подачи заявки или не обнаружена вообще, если связь восстановится через 1 сек после подачи заявки. Как должен реагировать робот на непоступление поданной заявки в таблицу заявок Quik'а?
Чтобы снизить вероятность таких ситуаций, можно сократить время неопределённости со связью, посылая на сервер перед подачей заявки ping по протоколу ICMP. У меня время RTT 11 мсек. Задав timeout в 5 раз больше, получаем сокращение времени неопределённости со связью до 0.05 сек.
Что думают робото-строители, будет ли им полезна моя библиотека .dll для QLua с проверкой связи через отправку ping по протоколу ICMP?
Остаётся неясной только такая редко наблюдаемая ситуация, когда брокер беспричинно отключается, а связь с интернетом безукоризненна. Будет ли после такого отказа сервер брокера отвечать на пинги?
В прошлых таких случаях у меня не хватило предусмотрительности это проверить. А по заказу такие ситуации не смоделировать.
Может кто-нибудь догадался вовремя проверить пингами забастовавший сервер брокера?
Причём пинговать надо не сайт брокера, но заранее записанный IP-адрес, который в Quik'e виден только при подключении к серверу брокера.
ДОМ.РФ может увеличить прибыль за девять месяцев на 39%: прогноз Т-Инвестиций
30 октября $DOMRF опубликует результаты по международным стандартам финансовой отчетности (МСФО) за третий квартал 2026 года. Главный аналитик Т-Инвестиций Егор Дахтлер ожидает одного из...
Раскрытие отчетности за девять месяцев и эфир с топ-менеджментом: save the date 📅
Совсем скоро ноябрь, а значит, наступает время подвести итоги работы Positive Technologies за третий квартал и девять месяцев. Конечно, самый горячий период для нашего бизнеса еще впереди: основной...
Уже завтра представим финансовые результаты за 9 месяцев 2026 года, а в 11:00 проведём звонок с аналитиками. Ссылку прикрепим позже.
✅ 3 ноября в 16:00 встретимся на площадке Т-Инвестиций....
Банковский сектор сентябрь 2026 г. - рекордная прибыль, но рост все менее равномерный
Банки отчитались за сентябрь. Что интересного мы узнали? За 12 месяцев прибыль сектора составляет уже 4,5 трлн руб. при прогнозе ЦБ 3,9–4,4 трлн руб., который регулятор повысил в сентябре. За...
Екатерина Кр, они еще есть местами, но ресурсная база все равно деградирует. И чем ближе к обжитым местам, тем хуже ситуация. В Арктику не от хорошей жизни лезем. Край суровый, условия сложные, но ...
Опрос по индексу ММВБ на завтра! Будем расти или падать?! Пока Тимофеи и Олигархи Дмитрии делают огромную бапку на рынке, хз конечно как, я не делаю ничего! Сегодня получился достаточно скучный день! ...
По 20000р в покупке. Если дивиденды и будут, то минимальные, основной упор на увеличение продаж китайским партнерам и развитие логистики. Синопек, как акционер компании, будет главным бенефициаром.
За АПРИ нужно, конечно, следить. Учет сделок — это прекрасно. Но надо понимать, что такой отчет — это бумажная прибыль. Операционный денежный поток отрицательный. По расчетам Альфа банка — это минус о...
Но я сам с усам. В скрипте я не полагаюсь на тугодумную QLua-функцию isConnected(), но слежу за временем получения последней записи = getInfoParam («LASTRECORDTIME»). И на момент проверки перед подачей заявки оказывается:
checkTm = 13:11:26; serverTm = 13:11:27; recordTm = 13:11:21; conn = false
Т.е. последняя запись от брокера получена за 5 сек до проверки. А т.к. в «Основных настройках» я задал «Запрашивать данные раз в 1 сек», это значит что связи с брокером нет.
В данной ситуации моему роботу повезло. Но к сожалению, реально отслеживать потерю связи таким методом можно с точностью около 2 сек. Может оказаться, что потеря связи будет обнаружена роботом ПОСЛЕ подачи заявки или не обнаружена вообще, если связь восстановится через 1 сек после подачи заявки. Как должен реагировать робот на непоступление поданной заявки в таблицу заявок Quik'а?
Чтобы снизить вероятность таких ситуаций, можно сократить время неопределённости со связью, посылая на сервер перед подачей заявки ping по протоколу ICMP. У меня время RTT 11 мсек. Задав timeout в 5 раз больше, получаем сокращение времени неопределённости со связью до 0.05 сек.
Что думают робото-строители, будет ли им полезна моя библиотека .dll для QLua с проверкой связи через отправку ping по протоколу ICMP?
В прошлых таких случаях у меня не хватило предусмотрительности это проверить. А по заказу такие ситуации не смоделировать.
Может кто-нибудь догадался вовремя проверить пингами забастовавший сервер брокера?
Причём пинговать надо не сайт брокера, но заранее записанный IP-адрес, который в Quik'e виден только при подключении к серверу брокера.
А зачем вам это ?
Если нужно знать доступен ли интернет, то пингуйте google или yandex.
Если заявка не прошла, то повторяйте через некоторые промежутки времени.
Восстановление связи оставьте Квику.
Там эта настройка имеется.
Он сам умеет проверять связь с брокером и восстанавливать обрыв.