Вот например правило (дублирует по фукциональности одно из стандартных):
private sealed class NewBarStrategyRule : StrategyRule
{
// СВОЙСТВА
private Security Security { get; set; }
private TimeSpan TimeFrame { get; set; }
// КОНСТРУКТОР
public NewBarStrategyRule(MyStrategy baseStrategy)
{
Security = baseStrategy.Security;
TimeFrame = baseStrategy.Graph.TimeFrame;
Core.CandleManager.CandlesStarted += OnNewCandles;
}
// МЕТОДЫ
private void OnNewCandles(CandleToken token, IEnumerable<Candle> candles)
{
if (token.Security == Security && (TimeSpan)token.Arg == TimeFrame) // Если пришла наша свеча
Activate();
}
// ДЕСТРУКТОР
protected override void DisposeManaged()
{
Core.CandleManager.CandlesFinished -= OnNewCandles;
base.DisposeManaged();
}
}
Проблема: действие .Once() по такому правилу продолжает выполняться бесконечно. Вроде все делал по инструкции 🤨
S# 4.0.10 (пробовал и на 4.0.8, 4.0.6)
コメント (5)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
S# 4.0.10 (пробовал и на 4.0.8, 4.0.6)
Со стандартным аналогичным правилом CandlesStarted() - .Once() работает нормально
статик поле сделайте. у вас каждый раз возвращает новое правило
Упс) Невнимательность моя. Спасибо большое!