StrategyEngine
Конечный автомат + обработка сообщений. Обрабатывает переходы ProcessState и маршрутизацию рыночных данных в PnLManager.
Конструкторы
public StrategyEngine(IStrategyHost host, IPnLManager pnlManager)
strategyEngine = StrategyEngine(host, pnlManager)
Конечный автомат + обработка сообщений. Обрабатывает переходы ProcessState и маршрутизацию рыночных данных в PnLManager.
- host
- Ведущий стратегии.
- pnlManager
- PnL менеджер.
Свойства
public ProcessStates ProcessState { get; private set; }
value = strategyEngine.ProcessState
strategyEngine.ProcessState = value
Текущее состояние процесса.
public TimeSpan UnrealizedPnLInterval { get; set; }
value = strategyEngine.UnrealizedPnLInterval
strategyEngine.UnrealizedPnLInterval = value
Интервал для нереализованного PnLrescover.
Методы
public void ForceStop()
strategyEngine.ForceStop()
Принудительное состояние «Остановлено» (для сброса).
public void OnMessage(Message message)
strategyEngine.OnMessage(message)
Обработка входящего сообщения — переходы состояний + маршрутизация рыночных данных.
public ValueTask RequestStartAsync(CancellationToken cancellationToken)
result = strategyEngine.RequestStartAsync(cancellationToken)
Запросить запуск стратегии. Отправляет сообщение об изменении состояния через хост.
public ValueTask RequestStopAsync(CancellationToken cancellationToken)
result = strategyEngine.RequestStopAsync(cancellationToken)
Запросить остановку стратегии. Отправляет сообщение об изменении состояния через хост.
События
public event Action<SecurityId, decimal, DateTime, DateTime> CurrentPriceUpdated
strategyEngine.CurrentPriceUpdated += handler
Срабатывает, когда текущая цена обновляется на основе рыночных данных.
public event Action<DateTime> PnLRefreshRequired
strategyEngine.PnLRefreshRequired += handler
Срабатывает, когда PnL необходимо пересчитать.
public event Action<ProcessStates> StateChanged
strategyEngine.StateChanged += handler
Срабатывает при изменении ProcessState.