Overall Statistics
using MathNet.Numerics.Statistics;
using Python.Runtime;

namespace QuantConnect.Algorithm.CSharp
{
    public class EsFrontMonthProblem : QCAlgorithm
    {
        public override void Initialize()
        {

            SetStartDate(2017, 01, 01);
            SetEndDate(2019, 01, 01);
            SetCash(5000);
            SetTimeZone(TimeZones.NewYork);
            
			var futureES = AddFuture(Futures.Indices.SP500EMini, Resolution.Minute);
			futureES.SetFilter(x => x.FrontMonth());
        }

     	private Symbol currentContract = null;

        public override void OnData(Slice slice) {
        	foreach (var chain in slice.FutureChains) {	
				foreach (var contract in chain.Value) {
			    	if (currentContract != contract.Symbol) {
						Debug($"{Time.ToString("yyyy-MM-dd HH:mm")}\tCur: {currentContract}");
						Debug($"{Time.ToString("yyyy-MM-dd HH:mm")}\tNew: {contract.Symbol}\t{contract.Expiry}");
			    		
			    		currentContract = contract.Symbol;
					}
				}
			}
        }
    }
}