ReRegisterOrder()
Atom
11/9/2011


После апдейта до версии 4.0 появились ошибки в перерегистрации заявок:
1) лимитные ордера - перерегистрация цены работает, изменение обьема - выдается ошибка сервера
2) стоп ордера - перерегистрация цены/обьема работает, но не удаляется старая стоп заявка в квике
ps новый ордер копируется через Clone(),
Type = QuikStopConditionTypes.StopLimit,
ExpiryDate = DateTime.Today;

Tags:


Thanks:


< 1 2 3  >
Alexander

Avatar
Date: 11/10/2011
Reply


skuvv Go to
Полный текст сообщения ошибки:
Сервер для транзакции 'ACTION=MOVE_ORDERS; TRANS_ID=60127389; CLASSCODE=SPBFUT; SECCODE=RIZ1; MODE=1; FIRST_ORDER_NUMBER=5812605396; FIRST_ORDER_NEW_PRICE=155785; FIRST_ORDER_NEW_QUANTITY=2;' вернул неправильное сообщение 'Транзакция не поддерживается' по передвинутым заявкам.


Бред тогда какой-то.
Транзакция и правда неверная. Нет всей информации что относится ко второй заявке.
Покажите как делаете Move и распечатайте все поля которые передаёте
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Code

StockSharp.BusinessEntities.Order _NewOrder = OrderList.ElementAt(index).Key.Clone();
                            _NewOrder.Volume = (int)newQty;
                            _NewOrder.Price = (decimal)newPrice;
                            _trader.ReRegisterOrder(OrderList.ElementAt(index).Key, _NewOrder);

а что еще нужно для изменения заявки кроме цены и обьема?
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


Распечатайте все поля передаваемые. Конкретные значения - от Id до цены с объёмом.
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


попробовал Console.WriteLine(_trader.GetTransaction(_NewOrder.TransactionId).ToString());
Вызывает эксешн: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в квике соответсвующий TransactionId есть
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


skuvv Go to
попробовал Console.WriteLine(_trader.GetTransaction(_NewOrder.TransactionId).ToString());
Вызывает эксешн: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в квике соответсвующий TransactionId есть


Значит либо _trader либо _NewOrder = null. Может проще дебагером посмотреть чем гадать? :)
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Оригинальный ордер

Клонированный ордер

Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


разберитесь где тот null из-за которого падает.
у вас в коде ошибка, вам доступен ваш же стэк трэйс - удалённо тут никак не помочь :)
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Новый ордер получается Clone() оригинального, где же тут ошибка может быть....
Тем более этот же код с изменением цены работает, ошибка со стороны сервера квик возвращается
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


skuvv Go to
Новый ордер получается Clone() оригинального, где же тут ошибка может быть....
Тем более этот же код с изменением цены работает, ошибка со стороны сервера квик возвращается


У вас в коде NullReferenceException.
Зачем гадаете где чего не так? Сказал давно - проще посмотреть под дебагером где там NRE.

И вопрос на засыпку - что у вас ProcessDataError пишет?
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


молчит ProcessDataError
Еще раз повторюсь, нету никаких ошибок при отправлении заявки.
Может с версии 4.0+ при клонировании заявки нужно какие нибудь параметры вручную заполнять?
Thanks:
< 1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy