ReRegisterOrder()
Atom
09.11.2011


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

Теги:


Спасибо:


< 1 2 3  >
Alexander

Фотография
Дата: 10.11.2011
Ответить


skuvv Перейти
Полный текст сообщения ошибки:
Сервер для транзакции '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 и распечатайте все поля которые передаёте
Спасибо:

skuvv

Фотография
Дата: 10.11.2011
Ответить


Код

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

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

Alexander

Фотография
Дата: 10.11.2011
Ответить


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

skuvv

Фотография
Дата: 10.11.2011
Ответить


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

Alexander

Фотография
Дата: 10.11.2011
Ответить


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


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

skuvv

Фотография
Дата: 10.11.2011
Ответить


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

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

Спасибо:

Alexander

Фотография
Дата: 10.11.2011
Ответить


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

skuvv

Фотография
Дата: 10.11.2011
Ответить


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

Alexander

Фотография
Дата: 10.11.2011
Ответить


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


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

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

skuvv

Фотография
Дата: 10.11.2011
Ответить


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

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy