Overall Statistics
Total Trades
542
Average Win
0%
Average Loss
-0.01%
Compounding Annual Return
-67.500%
Drawdown
9.600%
Expectancy
-1
Net Profit
-8.730%
Sharpe Ratio
-3.548
Probabilistic Sharpe Ratio
3.123%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.659
Beta
-0.968
Annual Standard Deviation
0.191
Annual Variance
0.037
Information Ratio
-5.498
Tracking Error
0.374
Treynor Ratio
0.7
Total Fees
$543.03
class WarmupAlgorithm(QCAlgorithm):


        def Initialize(self):
            '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
            
            # Select ticker and amount of contracts
            self.ticker = "SPY"
            self.contracts = 100
            
            self.SetStartDate(2019,1,1)   #Set Start Date
            self.SetEndDate(2019,1,30)    #Set End Date
            self.SetCash(100000)           #Set Strategy Cash
            # Find more symbols here: http://quantconnect.com/data
            spy = self.AddEquity(self.ticker, Resolution.Minute)
            spy.SetDataNormalizationMode(DataNormalizationMode.Raw)
            
            # MA Periods
            fast_period = 50
            slow_period = 200

            self.fast = self.EMA(self.ticker, fast_period, Resolution.Daily)
            self.slow = self.EMA(self.ticker, slow_period, Resolution.Daily)
            
            # Set the warm up period to the length of the slow period MA
            self.SetWarmup(slow_period, Resolution.Daily)


        def OnData(self, data):
            # Warmup starts as True and once Warmup is complete goes to false which lets the algo run
            if self.IsWarmingUp:
                return
            
            # Plot the values of the various indicators
            self.Plot("EMAfast", "Value", self.fast.Current.Value)
            self.Plot("EMAslow", "Value", self.slow.Current.Value)

            if self.fast.Current.Value > self.slow.Current.Value:
                self.SetHoldings(self.ticker, 1)
            else:
                self.SetHoldings(self.ticker, -1)