Здравствуйте! Пытаюсь отловить событие прерывания подключения. Когда закрываю терминал quik при подключенном алгоритме то ни ConnectionErrorEx, ни ConnectionError, ни Disconnected не срабатывает, хотя в лог начинают сыпаться ошибки подключения.
По умолчанию, ошибки разрыва связи не транслируются, так как один коннектор может содержать несколько адаптеров внутри себя (у вас их два), и каждый адаптер делает независимое переподключение, не приводя весь коннектор в состояние потери связи. Вы можете отключить это поведение:
Имейте также в виду, что StockSharp не транслирует ошибки при работе с Quik еще как минимум в следующих случаях:
При попытке выставить или снять заявку, если соединение между квиком и сервером прервалось.
При ответе с сервера квика "Количество транзакций превышает максимально разрешённое N в секунду".
В обоих этих случаях реально заявка не устанавливается (или не снимается, в зависимости от того, что пытались сделать), но события OrderRegisterFailed и OrderCancelFailed не приходят. Поэтому код, который рассчитывает на получение фидбека по своему действию, будет просто бесконечно его ждать, а код, который фидбека не ждет, будет ошибочно рассчитывать, что, например, заявка была снята, чего на самом деле не произойдет.
Это очень неприятный баг, который не дает возможности надежно снимать и ставить заявки вообще в принципе.
We use cookies to ensure the best experience on our website. By continuing to use our site, you agree to the use of cookies.
Comments (5)
Login or Create account, Log in or register to leave a comment
Вопрос актуален.
Добрый день
Приведите пожалуйста код инициализации коннектора.
Все настройки по умолчанию.
Добрый день
По умолчанию, ошибки разрыва связи не транслируются, так как один коннектор может содержать несколько адаптеров внутри себя (у вас их два), и каждый адаптер делает независимое переподключение, не приводя весь коннектор в состояние потери связи. Вы можете отключить это поведение:
Имейте также в виду, что StockSharp не транслирует ошибки при работе с Quik еще как минимум в следующих случаях:
В обоих этих случаях реально заявка не устанавливается (или не снимается, в зависимости от того, что пытались сделать), но события OrderRegisterFailed и OrderCancelFailed не приходят. Поэтому код, который рассчитывает на получение фидбека по своему действию, будет просто бесконечно его ждать, а код, который фидбека не ждет, будет ошибочно рассчитывать, что, например, заявка была снята, чего на самом деле не произойдет.
Это очень неприятный баг, который не дает возможности надежно снимать и ставить заявки вообще в принципе.