Событие order.CancelFailed().Once() было активировано дважды.


Событие order.CancelFailed().Once() было активировано дважды.
Atom
3/7/2012


Я подписываюсь на событие CancelFailed в методе ReplaceOrder и только в нем.
Правило одноразовое.
К сожалению количество вызывов ReplaceOrder и CancelFailed не совпадают.
Работаю на Quik, версия S# - исправленная 4.0.20

18:45:02.230 | | CRBR | ReplaceOrder 67306126
18:45:02.232 | | CRBR | CancelOrder 67306126
18:45:02.421 | | CRBR | Правило 'Ошибка снятия заявки 67306126' активировано.
18:45:02.422 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Сейчас эта сессия не идет".67306126
18:45:02.429 | | CRBR | Правило 'Ошибка снятия заявки 67306126' удалено.
18:45:02.446 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=RIH2; TRANS_ID=67306127; ORDER_KEY=1393448849; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Ошибка снятия заявки. [FORTS] "Сейчас эта сессия не идет".'.
18:45:14.100 | | CRBR | ReplaceOrder 67306126
18:45:14.102 | | CRBR | CancelOrder 67306126
18:45:14.337 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=RIH2; TRANS_ID=67306128; ORDER_KEY=1393448849; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Ошибка снятия заявки. [FORTS] "Сейчас эта сессия не идет".'.
18:45:14.339 | | CRBR | Правило 'Ошибка снятия заявки 67306126' активировано.
18:45:14.339 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Сейчас эта сессия не идет".67306126
18:45:14.342 | | CRBR | Правило 'Ошибка снятия заявки 67306126' удалено.
18:45:14.342 | | CRBR | Правило 'Ошибка снятия заявки 67306126' активировано.
18:45:14.342 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Сейчас эта сессия не идет".67306126
18:45:14.344 | | CRBR | Правило 'Ошибка снятия заявки 67306126' удалено.

Tags:


Thanks:


< 1 2 3  >
Alexander

Avatar
Date: 3/9/2012
Reply


Quote:
Причина - OnRegisterFailed Операция является недопустимой из-за текущего состояния объекта.


И чтоб второй раз не ходить - StackTrace ошибки, без него никуда.
Thanks:

Alexander

Avatar
Date: 3/9/2012
Reply


И ещё вопрос по вашему коду - у вас в ReplaceOrder печатается вызывающий метод.
Он во всех случаях пустой. Покажите откуда вы ещё вызываете ReplaceOrder - если б он вызывался из OnCancelFailed - это было бы видно.

Случайно правило не 2 раза создаётеся?
Thanks:

Alexander

Avatar
Date: 3/9/2012
Reply


Выложил 4.0.21, запустите с ним с включённым логом.
Ответ на последний вопрос тогда получим.
Thanks:

vader

Avatar
Date: 3/11/2012
Reply


Включенный лог - это ведь EnableRulesLog = true, так?
Тогнда он у меня и так включен.
Thanks:

Alexander

Avatar
Date: 3/11/2012
Reply


И что выдаёт 4.0.21?
Я включил доп печать там.
Thanks:

vader

Avatar
Date: 3/12/2012
Reply


Касательно ошибок, возникавших при работе с промежуточной версией 15359.
Ошибка при создании заявки - Операция является недопустимой из-за текущего состояния объекта.
StackTrace -
в StockSharp.Algo.BaseTrader.#=q1jPECpcYhkCDc1endsWfTp1VhJY$g9vaOlgOde9HMXI=.#=q7YCdHsNqy4nRQBNoT76vpw==()
в StockSharp.Algo.BaseTrader.ProcessEvents(Action handler)
в StockSharp.Quik.QuikTrader.#=qP$c9$YUhcgOXgGByrfkYQoLex2$ov$Irbl5B37enmzc=(Order #=qm5lz5WVqlloZ$wO5Bw075w==, TransactionBuilder #=qh1QBkeMdoSN6zg0mxHuV5w==)
в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
в StockSharp.Algo.BaseTrader.RegisterOrder(Order order)
в StockSharp.Algo.Strategies.Strategy.RegisterOrder(Order order)
в BSPB.Partizan.BaseStrategy.RegisterOrder(Order order) в C:\vb\General\PartizanV2\source\v.2.0\BaseStrategy.cs:строка 175

правило When(Func<(Of <<'(Boolean>)>>), TimeSpan) - это я из документации скопировал.
(Зарегистрировать в стратегии условие, которое будет проверяться с интервалом interval.)

Thanks:

vader

Avatar
Date: 3/12/2012
Reply


Касательно работы в релизной версии 4.0.21.

Вот лог.
11:59:56.529 | | CRBR | Правило 'Интервал условие 00:00:30 (55486438)' активировано.
11:59:56.529 | | CRBR | ReplaceOrder RuleWaitingActivated 42601474
11:59:56.529 | | CRBR | CancelOrder 42601474
11:59:56.763 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (61617225)' активировано.
11:59:56.763 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Идет пром. клиринг, нельзя удалять заявки.".42601474
11:59:56.794 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (61617225)' удалено.
11:59:56.810 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=LKU2; TRANS_ID=42601475; ORDER_KEY=2713761048; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Ошибка снятия заявки. [FORTS] "Идет пром. клиринг, нельзя удалять заявки.".'.
11:59:57.028 | | CRBR | Правило 'Изменение инструмента LKU2@RTS (103653)' активировано.
11:59:57.028 | | CRBR | ReplaceOrder OnCancelFailed 42601474
11:59:57.028 | | CRBR | CancelOrder 42601474
11:59:57.200 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=LKU2; TRANS_ID=42601476; ORDER_KEY=2713761048; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Ошибка снятия заявки. [FORTS] "Идет пром. клиринг, нельзя удалять заявки.".'.
11:59:57.200 | | CRBR | Правило 'Изменение инструмента LKU2@RTS (103653)' удалено.
11:59:57.200 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (61617225)' активировано.
11:59:57.200 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Идет пром. клиринг, нельзя удалять заявки.".42601474
11:59:57.216 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (61617225)' удалено.
11:59:57.216 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (42931033)' активировано.
11:59:57.216 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Ошибка снятия заявки. [FORTS] "Идет пром. клиринг, нельзя удалять заявки.".42601474
11:59:57.216 | | CRBR | Правило 'Ошибка снятия заявки 42601474 (42931033)' удалено.
Thanks:

vader

Avatar
Date: 3/12/2012
Reply


Ещё один Лог, запись приведена от начала работы стратегии.

15:48:11.291 | | CRBR | Стратегия запущена.
15:48:11.303 | | CRBR | CreateOrder OnStarting
15:48:11.573 | | CRBR | RegisterOrder 56876308
15:48:26.304 | | CRBR | Правило 'Интервал условие 00:00:15 (64796970)' активировано.
15:48:26.306 | | CRBR | ReplaceOrder RuleWaitingActivated 56876308
15:48:26.315 | | CRBR | CancelOrder 56876308
15:48:26.425 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' активировано.
15:48:26.427 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:26.435 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' удалено.
15:48:26.455 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=RIH2; TRANS_ID=56876309; ORDER_KEY=1404446085; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'.

15:48:41.316 | | CRBR | Правило 'Интервал условие 00:00:15 (64796970)' активировано.
15:48:41.316 | | CRBR | ReplaceOrder RuleWaitingActivated 56876308
15:48:41.318 | | CRBR | CancelOrder 56876308
15:48:41.417 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' активировано.
15:48:41.417 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:41.421 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' удалено.
15:48:41.422 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (5923895)' активировано.
15:48:41.422 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:41.426 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (5923895)' удалено.
15:48:41.447 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=RIH2; TRANS_ID=56876310; ORDER_KEY=1404446085; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'.

15:48:56.317 | | CRBR | Правило 'Интервал условие 00:00:15 (64796970)' активировано.
15:48:56.317 | | CRBR | ReplaceOrder RuleWaitingActivated 56876308
15:48:56.318 | | CRBR | CancelOrder 56876308
15:48:56.414 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' активировано.
15:48:56.414 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:56.418 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (33156464)' удалено.
15:48:56.418 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (5923895)' активировано.
15:48:56.418 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:56.422 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (5923895)' удалено.
15:48:56.423 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (50510248)' активировано.
15:48:56.423 | | CRBR | OnCancelFailed Код ошибки Failed Сообщение Вы не можете снять данную заявку56876308
15:48:56.427 | | CRBR | Правило 'Ошибка снятия заявки 56876308 (50510248)' удалено.
15:48:56.448 | | CRBR | ex Транзакция 'CLASSCODE=SPBFUT; SECCODE=RIH2; TRANS_ID=56876311; ORDER_KEY=1404446085; ACTION=KILL_ORDER;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/12/2012
Reply


vader Go to
Ещё один Лог, запись приведена от начала работы стратегии.


У вас и по первому логу видно, что два правила создали. Ищите у себя ошибку.
Thanks:

vader

Avatar
Date: 3/12/2012
Reply


Дело в том, что правило CancelFailed создается только в методе ReplaceOrder, следовательно сколько вызовов ReplaceOrder, столько должно быть и срабатываний CancelFailed.

По каким признакам вы считаете что ошибка у меня? Я не говорю что ошибка именно у вас ,просто пытаюсь понять ,на основании чего вы считаете что ошыбка у меня. Может быть это поможет мне её найти.
Thanks:
< 1 2 3  >

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

loading
clippy