ReRegisterOrder()
Atom Ответить
09.11.2011


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

Теги:


Спасибо:




22 Ответов
Alexander

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


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

skuvv

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


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

Alexander

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


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


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

skuvv

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


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

Alexander

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


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


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

skuvv

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


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

Alexander

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


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


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

skuvv

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


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

Alexander

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


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

skuvv

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


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

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+ при клонировании заявки нужно какие нибудь параметры вручную заполнять?
Автор топика
Спасибо:

Alexander

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


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



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

Alexander

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


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


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

loading
clippy