Overall Statistics
Total Trades
22
Average Win
0.00%
Average Loss
-0.50%
Compounding Annual Return
-27.768%
Drawdown
6.000%
Expectancy
-0.817
Net Profit
-4.381%
Sharpe Ratio
-3.171
Loss Rate
82%
Win Rate
18%
Profit-Loss Ratio
0.01
Alpha
-0.379
Beta
0.709
Annual Standard Deviation
0.1
Annual Variance
0.01
Information Ratio
-4.435
Tracking Error
0.091
Treynor Ratio
-0.448
Total Fees
$45.21
import math
import numpy as np
import pandas as pd
import statistics

from datetime import datetime, timedelta


class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.SetCash(100000)
        self.SetStartDate(2017, 1, 1)
        self.SetEndDate(2017, 1, 31)
        
        # Add securities and get the data
        self.eq = ["SPY","IWM"]
        self.sma10 = dict()
        
        for s in self.eq:
            self.AddEquity(s, Resolution.Minute)
            self.sma10[s] = self.SMA(s, 10, Resolution.Daily)

        # Schedule trades   
        self.Schedule.On(self.DateRules.EveryDay("SPY"),
                 self.TimeRules.AfterMarketOpen("SPY", 5),       
                 Action(self.Rebalance))
        
        # Days to warm up the indicators
        self.SetWarmup(timedelta(20))
        
        
    def OnData(self, slice):
        pass
    
    
    def Rebalance(self):
        
        for s in self.eq:
            
            price = self.Securities[s].Price 
            
            self.Log("{} {}" .format(s, price))
            self.Log("{} {}" .format(s, self.sma10[s]))
            self.Log("{} {}" .format(s, float(price) > self.sma10))
            
            if price >= self.sma10[s].Current.Value:
                self.SetHoldings(s, 1.0)
                
            if price < self.sma10[s].Current.Value:
                self.SetHoldings(s, 0.0)