Обычно заявки двигаются без проблем. Сегодня получил ошибку:
25.05.2011 13:04:47 [OpenWealth.StockSharp.TraderIface.TraderProcessDataError] ERROR: Ошибка обработки данных System.ArgumentOutOfRangeException: Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: i в System.Text.RegularExpressions.MatchCollection.get_Item(Int32 i) в Ecng.Trading.Quik.QuikTrader.#=qQV3LsYT8ciJ_SaWg100MnA==(Order #=qzEZQw$Xhv2Ia$jm6RwpdIw==, Int64 #=qnF0705Wdr_qmOlb6D7WoAg==, String #=qQYRBhBijJ$TiER07afv4uQ==, Boolean #=qi8Qa1xVwOcoWGAJWxrktHQ==, Codes #=qmcDbrxWhUQIhxtZad7lBvA==, Exception #=qlZklQHduwcTWGf6SU_EISg==) в Ecng.Trading.Quik.QuikTrader.#=qu6MlY3d_9FJ$6TvVz5KplavzxCgTVNjZwUIE2KC0RpY=(UInt32 #=qPQjGF8HZI_e31J8Q1GwUOw==, Codes #=qe8A9wptGfO6BVsP68EKBcg==, Codes #=qwEF8$x$s0KbSD1Q96z6$Pg==, OrderStatus #=q3iNlQ1SjHBCoIs0k2oBOTQ==, Int64 #=qdlQZ6LCObQYMagvXLylmeQ==, String #=qEzN$RjTb0GwU0OAONa0Usw==)
_order = ReRegisterOrder(_order, GetNewPrice, () => _order.Balance, _order.Security.Exchange == Exchange.Rts);
S# 3.0.19.0
Comments (14)
Login or Create account, Log in or register to leave a comment
Скорее всего сервер прислал недопустимость передвижения заявки, но все равно, такое лучше обрабатывать.
в последнее время ошибка стала часто появляться. заявка не двигается. в чем еще может быть проблема? двигаться должна, никаких причин не двигаться не вижу. денег на счету достаточно. при движении старая должна сниматься, новая ставиться. когда происходит ошибка, в квике не вижу никаких изменений - старая заявка остается, новая не появляется.
Символ RiM1@RTS, S#3.1.10.0
Посмотрите Order.Messages.
31.05.2011 15:46:08 [OpenWealth.Base.Common.ForEach] Заявка, с биржевым номером 3996927576, успешно зарегистрирована. 31.05.2011 15:46:08 [OpenWealth.Base.Common.ForEach] Транзакция не поддерживается
код следующий: var newOrder = _order.Clone(); newOrder.Price = GetNewPrice(); newOrder.Volume = _order.Balance; newOrder.Balance = 0; ReRegisterOrder(_order, newOrder);
Ошибку в новой версии пофиксим, чтобы выводилось понятное. Но все равно ситуацию не изменит - заявки не регистрируются с новой ценой не по причине S#.
можете подсказать, к кому обратиться с этой проблемой? и с чем это вообще может быть связано?
Я бы начал с создателей Квика.
правильно ли я понимаю, что при ReRegisterOrder(_order, newOrder) для Ri, вами используется TRANS2QUIK_SEND_ASYNC_TRANSACTION с транзакцией вида: Перестановка заявок на срочном рынке FORTS ACTION=MOVE_ORDERS; TRANS_ID=333; CLASSCODE=SPBFUT; SECCODE=RIM1; MODE=1; FIRST_ORDER_NUMBER=<_order.id>; FIRST_ORDER_NEW_PRICE=<newOrder.Price>; FIRST_ORDER_NEW_QUANTITY=<newOrder.Volume>;
Нашел тему http://quik.ru/forum/import/57855/ MOVE_ORDERS MODE=1 не работает с едиными счетами.
Вопрос закрыт.
Михаил, еще один вопрос. Для таких случаев есть возможность переставлять заявки на FORTS способом, как это делается на ММВБ? Что-то типа флага isForts = false для forts.
ReRegisterOrder для фортс работает - вчера проверил в роботе.
ReRegisterOrder для фортс работает - вчера проверил в роботе. Читайте выше - не работает с единым счетом. И то не всегда. В половине случаев работает.
теперь понял. я даже не знал про такое понятие как единый счёт :)