| 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)