Overall Statistics |
Total Trades
36
Average Win
18.18%
Average Loss
-4.12%
Compounding Annual Return
3.066%
Drawdown
29.700%
Expectancy
1.230
Net Profit
88.626%
Sharpe Ratio
0.3
Probabilistic Sharpe Ratio
0.020%
Loss Rate
59%
Win Rate
41%
Profit-Loss Ratio
4.42
Alpha
0.032
Beta
-0.018
Annual Standard Deviation
0.102
Annual Variance
0.01
Information Ratio
-0.19
Tracking Error
0.207
Treynor Ratio
-1.665
Total Fees
$193.50
|
# https://quantpedia.com/strategies/january-barometer/ # # Invest in the equity market in each January. Stay invested in equity markets (via ETF, fund, or futures) only if January return is positive; otherwise, switch investments to T-Bills. class JanuaryBarometer(QCAlgorithm): def Initialize(self): self.SetStartDate(2000, 1, 1) self.SetCash(100000) self.market = self.AddEquity("SPY", Resolution.Daily).Symbol self.t_bills = self.AddEquity("BIL", Resolution.Daily).Symbol self.startPrice = None self.Schedule.On(self.DateRules.MonthStart(self.market), self.TimeRules.AfterMarketOpen(self.market), self.Rebalance) def Rebalance(self): if self.Time.month == 1: self.Liquidate(self.t_bills) self.SetHoldings(self.market, 1) self.startPrice = self.Securities[self.market].Price if self.Time.month == 2 and self.startPrice: returns = (self.Securities[self.market].Price - self.startPrice) / self.startPrice if returns > 0: self.SetHoldings(self.market, 1) else: self.startPrice = None self.Liquidate(self.market) self.SetHoldings(self.t_bills, 1)