# Use the template algorithm for futures

from FuturesUniverseSelectionModel import FuturesUniverseSelectionModel

class MultidimensionalUncoupledAtmosphericScrubbers(QCAlgorithm):

def Initialize(self):
self.SetStartDate(2019, 2, 18) # Set Start Date
self.SetCash(100000) # Set Strategy Cash

self.SetUniverseSelection(FuturesUniverseSelectionModel(self.SelectFuturesSymbols))

# Is def OnData(self,data): used for trade logic?
def OnData(self, data):
if self.ES.Current.Value > 100:
self.SetHoldings(SP500EMini,-1)
else:self.SetHoldings(SP500EMini,1)


# Is lines 21,22,23, assigning the symbol SP500EMini to the algo?
def SelectFuturesSymbols(self, utcTime):
ES = Futures.Indices.SP500EMini
return [ Symbol.Create("SP500EMini", SecurityType.Future, Market.USA) ]

#Here I attempted to assign the future to ES, is this the correct method
#for using the ES for trade logic?
self.ES = self.AddFuture(SP500EMini, Resolution.Daily)
self.ESMomo = self.MOMP(SP500EMini,50,Resolution.Daily)

# Did I do this correctly or what have missed/did wrong?