Подскажите, правильно ли я выполняю отмену StartegyRule. В документации как это сделать не нашел.
Создаю правило так:
ActivateSellOrderRule = this.When(Security.LastTradePriceLess(new Unit(order.Price + Security.MinStepSize, UnitTypes.Limit)))
.Do(() => ActivateOrder(order)).Once();
Удаляю правило так
this.Rules.Remove(ActivateSellOrderRule);
ActivateSellOrderRule.Dispose();
ActivateSellOrderRule = null;
ActivateSellOrderRule глобальный объект класса стратегии.
コメント (4)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Если в правиле стоит условие .Once() какой смысл хранить на него реф и затем удалять?
Становится необходимым чтобы вообще правило не вызывалось.
Ага соглашусь с Сергеем. После срабатывания правила оно будет удаленоавтоматом.
Если же нужно удалить в случае если сработало какое-то другое правило, то вы все делаете правильно.
ActivateSellOrderRule = null; <---- думаю уже лишнее.
Кстати в свете последних изысканий
Вполне достаточно. При удалении правила из хранилища правил, оно автоматом диспозится.