class BasicTemplateAlgorithm(QCAlgorithm):

def Initialize(self):

self.SetStartDate(2017,01,01) #Set Start Date

self.SetEndDate(2017,12,31) #Set End Date

self.SetCash(100000) #Set Strategy Cash

self.AddEquity("SPY")

# below creates a 200 day exponential moving average

self.slow = self.EMA("SPY", 200, Resolution.Daily);

self.previous = None

def OnData(self, data):

if not self.slow.IsReady:

return

if self.previous is not None and self.previous.date() == self.Time.date():

return

holdings = self.Portfolio["SPY"].Quantity

if holdings <= 0:

if self.slow.Current.Value < self.Securities["SPY"].Price

self.Log("BUY >> {0}".format(self.Securities["SPY"].Price))

self.SetHoldings("SPY", 1.0)

if holdings > 0 and self.slow > self.Securities["SPY"].Price

self.Log("SELL >> {0}".format(self.Securities["SPY"].Price))

self.Liquidate("SPY")

self.previous = self.Time

Author