I wonder if someone could help me see the mistake in this code. The code is simply trying to get the Donchian channel values from minute data but for some reason the values come through as zero every minute update.

public class TestAlgorithm : QCAlgorithm { private const string RootWTI = Futures.Energies.CrudeOilWTI; public Symbol WTI = QuantConnect.Symbol.Create ( RootWTI, SecurityType.Future, Market.USA ); private HashSet<Symbol> _futureContracts = new HashSet<Symbol>(); private DonchianChannel m_donchian; public override void Initialize() { SetStartDate ( 2013, 10, 8 ); SetEndDate ( 2013, 10, 11 ); SetCash ( 1000000 ); SetBenchmark ( x => 0 ); var futureWTI = AddFuture ( RootWTI, Resolution.Minute ); futureWTI.SetFilter ( TimeSpan.Zero, TimeSpan.FromDays ( 30 ) ); var length = 24; m_donchian = DCH ( WTI, length ); SetWarmup ( length ); } public override void OnData ( Slice slice ) { Log ( "OnData called" ); if ( IsWarmingUp ) { Log ( "Still warming up..." ); return; } Log ( String.Format ( "Upper band = {0}", m_donchian.UpperBand.Current.Value ) ); Log ( String.Format ( "Lower band = {0}", m_donchian.LowerBand.Current.Value ) ); } }

Author