← Назад

When(Registered()).Do

Помогите разобраться

public class Strategy1 : Strategy{

 protected override void OnStarting(){
  ProcessRules(() =>
  {

   Order longstoporder = this.StopBuyAt(openstopprice);
   base.RegisterOrder(longstoporder);
   this.When(longstoporder.Registered()).Do(() => {
    ... //not execute!!!
   });

  });

 } 
}

после RegisterOrder заявка выставляется и вскоре исполняется но не выполняется код заключенный в конструкциюWhen(longstoporder.Registered()).Do(() => ); в чем может быть проблема?

Комментарии (8)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Supervisor
Supervisor

Попробуйте подписаться на событие до регистрации заявки:

protected override void OnStarting(){
  ProcessRules(() =>
  {
 
   Order longstoporder = this.StopBuyAt(openstopprice);
   this.When(longstoporder.Registered()).Do(() => {
    ...
   });
   base.RegisterOrder(longstoporder);
 
  });
 
 }

raf
raf Автор

так тоже не работает

raf
raf Автор

если использую .SellAt(), то работает

Похоже со стопзаявками не пашет When()???

Alexander
Alexander

raf: если использую .SellAt(), то работает

Похоже со стопзаявками не пашет When()???

Не работает, да. Поправлю сегодня вечером, будет в 3.2.12.

raf
raf Автор

Alexander: Не работает, да. Поправлю сегодня вечером, будет в 3.2.12. Александр, а когда можно ожидать 3.2.12 в разделе "Скачать"?

Alexander
Alexander

raf:

Alexander: Не работает, да. Поправлю сегодня вечером, будет в 3.2.12. Александр, а когда можно ожидать 3.2.12 в разделе "Скачать"?

when it's done :) вроде 3.2.11 только выложили. пока для 3.2.12 серьёзных изменений нет чтоб торопиться с выкладыванием, а ещё возможных изменений - до фига.

Alexander
Alexander

esper:

raf: если использую .SellAt(), то работает

Похоже со стопзаявками не пашет When()???

Для стопов надо смотреть Order.DerivedOrder

Не уверен что это хорошее решение - он ведь первоначально null. Подумаю как лучше быть в данной ситуации.

esper
esper

Alexander:

esper:

raf: если использую .SellAt(), то работает

Похоже со стопзаявками не пашет When()???

Для стопов надо смотреть Order.DerivedOrder

Не уверен что это хорошее решение - он ведь первоначально null. Подумаю как лучше быть в данной ситуации. Да, я немного ошибся, подумал про исполнение заявки.