Overall Statistics |
Total Trades
39
Average Win
15.93%
Average Loss
-3.83%
Compounding Annual Return
2.977%
Drawdown
29.700%
Expectancy
1.171
Net Profit
86.602%
Sharpe Ratio
0.293
Probabilistic Sharpe Ratio
0.016%
Loss Rate
58%
Win Rate
42%
Profit-Loss Ratio
4.16
Alpha
0.031
Beta
-0.018
Annual Standard Deviation
0.101
Annual Variance
0.01
Information Ratio
-0.203
Tracking Error
0.207
Treynor Ratio
-1.62
Total Fees
$218.78
Estimated Strategy Capacity
$2800000.00
|
# 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)