Hi, can anyone please tell me why is this code not giving any output? Thanks.

#region imports

from AlgorithmImports import *

#endregion

class SMAFuturesTradingAlgo(QCAlgorithm):

   def Initialize(self):

        self.SetBrokerageModel(BrokerageName.Zerodha)

        self.SetAccountCurrency("INR")

        self.SetStartDate(2017, 1, 1)

        #self.SetEndDate(2017, 5, 19)

        self.SetCash(100000)

        equity = self.AddIndex("NIFTY")

        future = self.AddFuture(Futures.Indices.Nifty50)

        future.SetFilter(TimeSpan.Zero, TimeSpan.FromDays(60))

        self.sma5 = self.SMA(equity.Symbol, 5)

        self.sma9 = self.SMA(equity.Symbol, 9)

 

    def OnData(self, data):

        if self.Portfolio.Invested:

            return       

        for chain in data.FutureChains:

            contracts = [contract for contract in chain.Value if contract.Expiry > self.Time + timedelta(days=5)]

            sorted_contracts = sorted(contracts, key=lambda x: x.Expiry)

            if len(sorted_contracts) == 0:

                continue

            contract = sorted_contracts[0]

            quantity = 2 if self.sma5 > self.sma9 else -2

            self.MarketOrder(contract.Symbol, quantity)

 

    def OnEndOfDay(self):

        self.Liquidate()

Author