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)