Вот такой опыт. 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 виден только при подключении к серверу брокера.
Средние доходности облигаций в зависимости от кредитного рейтинга (бледные столбцы — доходности без сглаживания). И как они изменились за неделю.
Доходности обновили максимумы июля....
БСП: менеджмент ухудшает прогнозы на год. Как реагировать инвестору в акции?
Банк Санкт-Петербург в пятницу представил ожидаемо слабые финансовые результаты за 2-й квартал и 1-е полугодие 2026 года по МСФО на фоне комбинации снижения чистого процентного дохода, роста...
Новый кризис подбирается все ближе? Каким он будет? Строим догадки, спорим и ищем идеи — в новом выпуске «Деньги не спят» . Василий Олейник и Ирина Ахмадуллина расскажут, каких...
Окей МСФО 6 мес. 2026 г. - самые низкие мультипликаторы сектора
Окей опубликовал финансовые результаты за 6 мес. 2026 г. Выручка компании выросла на 10,4% до 43,3 млрд руб. Валовая прибыль выросла на 13,8% до 10 млрд руб., EBITDA выросла на 6,7% до 4,2...
В первой-второй неделе сентября бычки в Буратино и евро рубле перебьют дневные хаи. (как ранее уже здесь писал)
И только тогда произойдет коррекция по дневному таймингу в этих валютных парах.
...
Чёрный лебедь, чёрный лебедь... Я вот смотрел месяц на акции ОЗОН и думал — «а кто их покупает?»
Хотел представить себе этого конкретного человека и никак у меня не получалось.
Мне почему-то казал...
«Все западные государства, которые объявили нам войну руками и телами нацистского режима в Киеве, долгие годы надеялись, что мы придем к ним договариваться.
Не придем мы к ним договариваться», — ск...
Рисковые показатели, но вроде сектор металургии пока без техдефолтов… может государство не даст зачахнуть… буду держать до погашения. 19,25 годовой купон после оферты тоже хорошая ставка годового купо...
Яндекс - что скрывается за рекордной прибылью? Большинство аналитиков в отношении Яндекса сохраняют позитивный настрой, однако акции все еще торгуются в узком боковике, без выраженной динамики. Тут ко...
Но я сам с усам. В скрипте я не полагаюсь на тугодумную 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.
Если заявка не прошла, то повторяйте через некоторые промежутки времени.
Восстановление связи оставьте Квику.
Там эта настройка имеется.
Он сам умеет проверять связь с брокером и восстанавливать обрыв.