ReRegisterOrder()
Atom Reply
11/9/2011


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

Tags:


Thanks:




22 Answers
Alexander

Avatar
Date: 11/9/2011
Reply


какая версия?
что говорит Verifier?
на какой версии работали до?
Thanks:

skuvv

Avatar
Date: 11/9/2011
Reply


1)версия 4.0
2)что такое Verifier?
3)предыдущая версия 3.2.7
Topic starter
Thanks:

Alexander

Avatar
Date: 11/9/2011
Reply


skuvv Перейти
1)версия 4.0
2)что такое Verifier?
3)предыдущая версия 3.2.7


1) какой 4.0? У нас их уже 5 было, последний - 4.0.4. На codeplex даже 4.0.5 лежит
2) программа для проверки правильно ли всё настроено в квике. были изменения в таблицах (wnd файлах), может у вас что не так.
Thanks:

skuvv

Avatar
Date: 11/9/2011
Reply


первый, 4.0.0
проверка в таблицы стоп заявок не нашла одну колонку, добавил - завтра проверю результат и отпишусь
Topic starter
Thanks:

Alexander

Avatar
Date: 11/9/2011
Reply


skuvv Перейти
первый, 4.0.0
проверка в таблицы стоп заявок не нашла одну колонку, добавил - завтра проверю результат и отпишусь


Используйте 4.0.4, в 4.0.0 были ошибки, они уже исправлены.
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


стоп заявки стали сниматься работать коректно на 4.0.4
лимитки ошибка(замена обьема заявки) осталась
Topic starter
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


skuvv Перейти
лимитки ошибка(замена обьема заявки) осталась


что за ошибка сервера? идёт ли перерегистрация такой заявки через сам квик?
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Через квик идет.
Текст ошибки длинный - все не сохраняется:
"Сервер для транзакции 'ACTION=MOVE_ORDERS;TRANS_ID=XXXXXXX;CLASSCODE=SPBFUT;SECCODE=RIZ1;MODE=1;FIRST_ORDER_NUMBER=YYYYYY;FIRST_ORDER_NEW_PRICE=154870;FIRST_ORDER_NEW_QUANTITY=2;' вернул неправильное сообщение 'Транзакция не поддерживается..."
Topic starter
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


Распечатайте всю транзакцию через это
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Полный текст сообщения ошибки:
Сервер для транзакции '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;' вернул неправильное сообщение 'Транзакция не поддерживается' по передвинутым заявкам.
Topic starter
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


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 и распечатайте все поля которые передаёте
Thanks:

skuvv

Avatar
Date: 11/10/2011
Reply


Код

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

а что еще нужно для изменения заявки кроме цены и обьема?
Topic starter
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 есть
Topic starter
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


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


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

skuvv

Avatar
Date: 11/10/2011
Reply


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

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

Topic starter
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


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

skuvv

Avatar
Date: 11/10/2011
Reply


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

Alexander

Avatar
Date: 11/10/2011
Reply


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


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

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

skuvv

Avatar
Date: 11/10/2011
Reply


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

Alexander

Avatar
Date: 11/10/2011
Reply


skuvv Перейти
молчит ProcessDataError
Еще раз повторюсь, нету никаких ошибок при отправлении заявки.
Может с версии 4.0+ при клонировании заявки нужно какие нибудь параметры вручную заполнять?



так здесь что за exception раз нет ошибок?
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


В общем выяснилось, что проблема в едином счете.
Единый счёт не поддерживает MOVE_ORDER с MODE=1.
Вот тема на форуме квика
Thanks:


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

loading
clippy