И так не получается, всегда null. Вот код
protected override bool OnProcess()
{
// если наша стратегия в процессе остановки
if (base.ProcessState == StrategyProcessStates.Stopping)
{
// отменяем стратегию
base.Orders.Where(o => o.State ==
OrderStates.Active).ForEach(base.Trader.GuarantyCancelOrder);
// так как все активные заявки гарантированно были отменены, то
возвращаем false
return false;
}
var candleCur =
_candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame,
Trader.MarketTime);
if (candleCur != null )
{
if (LastPosition.Type == PositionType.Long) ////
никогда сюда не заходит
...
}
// событие обработки торговой стратегии вызвалось впервый раз,
что раньше, чем окончания текущей 5-минутки.
if (base.Trader.MarketTime < _nextTime)
{
// возвращаем true, так как наш алгоритм еще не закончил свою
работу, а просто ожидает следующего вызова.
return true;
}
// получаем сформированную свечку
var candle = _candleManager.GetTimeFrameCandle(base.Security,
base.TimeFrame, _nextTime - base.TimeFrame);
// если свечки не существует (не было ни одной сделке в тайм-фрейме),
то ждем окончания следующей свечки.
if (candle == null)
return true;