Overall Statistics
Total Trades
27
Average Win
0.08%
Average Loss
-0.02%
Compounding Annual Return
10.704%
Drawdown
0.600%
Expectancy
3.097
Net Profit
0.830%
Sharpe Ratio
4.282
Loss Rate
31%
Win Rate
69%
Profit-Loss Ratio
4.92
Alpha
0.04
Beta
0.28
Annual Standard Deviation
0.024
Annual Variance
0.001
Information Ratio
-2.558
Tracking Error
0.049
Treynor Ratio
0.374
Total Fees
$27.32
import numpy as np

class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):
        # Set the cash we'd like to use for our backtest
        # This is ignored in live trading 
        self.SetCash(100000)
        
        # Start and end dates for the backtest.
        # These are ignored in live trading.
        self.SetStartDate(2017,1,1)
        self.SetEndDate(2017,1,30)
        
        # Add securities you'd like to see
        self.securities = ["SPY","QQQ"]
        # Get the data from tickers
        self.SMA1 = []
        self.SMA5 = []
        for security in self.securities:
            self.AddEquity(security, Resolution.Minute)
            self.SMA1.append(self.SMA(security, 1, Resolution.Daily))
            self.SMA5.append(self.SMA(security, 5, Resolution.Daily))

            
        self.Schedule.On(self.DateRules.EveryDay("SPY"),
                 self.TimeRules.AfterMarketOpen("SPY", 30),       
                 Action(self.Rebalance))
        
    def OnData(self, slice):
        pass
    
    def Rebalance(self):
        for i in range(2):
            self.Debug("{0} : sma1: {1} : sma5: {2}".format(self.securities[i], self.SMA1[i].Current.Value,self.SMA5[i].Current.Value))
            if self.SMA1[i].Current.Value > self.SMA5[i].Current.Value:
                self.SetHoldings(self.securities[i], 0.25)
            elif self.Portfolio.Invested:
                self.Liquidate()