Использую S# 4.1(одна из последних сборок с дева, до этого был 4.0.23, на котором все несколько месяцев работало хорошо). Дистр плазы последний, который с поддержкой ммвб. На сервере был запущен рутер, робот в котором наблюдалась проблема и еще отдельным процессом сборщик данных с другим AppName.
В пятницу наблюдалась такая проблема, в понедельник она повторилась.
Робот работает и отправляет заявки через Register Order, также подписан на Order changed, New Order, Order Register Failed итд. В один прекрасный момент после Register Order, так больше и не приходило ни одного события изменения заявки будь то нью, чендж фэил итд. Т.е. заявка так и оставалась навечно со статусом ноне. Причем при последующих вызовах RegisterOrder все последующие заявки тоже оставались Ноне.
После перезапуска робота, все начинало работать опять нормально, причем на бирже была информация о самой первой заявки для которой не пришло событие, т.е. первая заявки реально дошла на биржу в отличии от остальных.
В логах, эксепшенах и процессдатаеррор тишина. Причем при всем этом стаканы нормально обновлялись и Trader.TableRegistry.StreamRegistry.TradeFuture.IsOnline возвращал True.
Проблема случилась в пятницу через час где-то после начала работы робота, в понедельник минут через 15, после перезапуска, ни в пятницу ни в понедельник проблема после перезапуска уже не повторялась.
Есть какие-нибудь соображения? Ибо проблема серьезная, теперь даже по середине дня в магазин спокойно не сходишь 😀
评论 (20)
登录 或 创建账户, 登录或注册以发表评论
Попробуйте PlazaTrader.TransactionManager.UseTransactionQueue = true Если это влияет, то включим по умолчанию.
Если это настройка транзакшен менеджера, то как это может помочь, учитывая, что самая первая заявка, которая все-таки ушла на биржу не породила нью ордер? 🤨
Ведь если она зарегистрирована на бирже, то в потоке заявок она должна была появиться и как следствие - придти нью ордер.
Add: у TransactionManager сейчас нет паблик метода UseTransactionQueue.
Это свойство и оно должно быть. Может версия не последняя?
Да, библиотека была от 7-ого апреля. Сейчас скачал последнюю, свойство есть.
Но все равно не понимаю, если дело в транзакшен менеджере, то почему не приходили обновления по самой первой заявке?
Предлагаю вначале это выяснить.
Такая же проблема, UseTransactionQueue не помог.
Вчера не пробовал, и сегодня по некоторым причинам робот не торговал. Но если Eskra не помогло, то вряд ли и меня бы спасло. Да и логично, что инфа по первый заявке должна была придти бы, если проблемы была только в отправке транзакций.
Погонял на тестовом с очередью. Если ставить ЮзКью в тру, то тогда должна быть возможность задать таймаут чисто для очереди, а то стандартный в 100мс тормозит отправку заявок на 50 мс в среднем, что неприемлемо.
Похоже придется пока откатываться на 4.0.23, а жаль, данные с ммвб нужны..
Проверьте с UseQue, потом откатывайтесь😂
Вопрос ко всем у кого проблемы:
PlazaTrader.StreamTimeOut
PlazaTrader.StreamTimeOut
PlazaTrader.StreamTimeOut
Возможные убытки при зависании робота возместите? 😀
Сегодня опять работал с UseTransactionQueue - после обеда проблема вылезла опять
у меня предположение, что это из-за канала, тк сейчас я торгую не на сервере - как поторгую на коллокейшене результаты сообщу
если роутер последний, просьба отправить РТС логи роутера с проблемной заявкой. Интересно что они скажут.
А, понял - нет, разрывов связи в ближайшее время до этого не было
да, роутер последний - ок, отправлю, как повториться
Я работал только с 4.1
Исправлено, берите свежую версию 4.1 с codeplex
Потестировал - все отлично работает, спасибо!