Overall Statistics
Total Trades
25
Average Win
13.05%
Average Loss
-3.29%
Compounding Annual Return
3.944%
Drawdown
25.400%
Expectancy
0.656
Net Profit
50.643%
Sharpe Ratio
0.409
Loss Rate
67%
Win Rate
33%
Profit-Loss Ratio
3.97
Alpha
0.086
Beta
-2.105
Annual Standard Deviation
0.109
Annual Variance
0.012
Information Ratio
0.226
Tracking Error
0.109
Treynor Ratio
-0.021
Total Fees
$123.92
 
 
# https://quantpedia.com/Screener/Details/113
class JanuaryBarometerAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.SetStartDate(2008, 1, 1)  
        self.SetEndDate(2018, 8, 1)  
        self.SetCash(100000) 
        self.AddEquity("SPY", Resolution.Daily)
        self.AddEquity("BIL", Resolution.Daily)
        self.Schedule.On(self.DateRules.MonthStart("SPY"), self.TimeRules.AfterMarketOpen("SPY"), self.Rebalance)
        self.startPrice = None
        
    def Rebalance(self):
        if self.Time.month == 1:
            self.Liquidate("BIL")
            self.SetHoldings("SPY", 1)
            self.startPrice = self.Securities["SPY"].Price
        if self.Time.month == 2 and self.startPrice is not None:
            returns = (self.Securities["SPY"].Price - self.startPrice)/self.startPrice
            if returns > 0:
                self.SetHoldings("SPY", 1)
            else:
                self.Liquidate("SPY")
                self.SetHoldings("BIL", 1)