| Overall Statistics |
|
Total Trades
39
Average Win
15.93%
Average Loss
-3.83%
Compounding Annual Return
2.928%
Drawdown
29.700%
Expectancy
1.171
Net Profit
86.500%
Sharpe Ratio
0.291
Probabilistic Sharpe Ratio
0.014%
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.223
Tracking Error
0.206
Treynor Ratio
-1.602
Total Fees
$218.78
Estimated Strategy Capacity
$2800000.00
Lowest Capacity Asset
BIL TT1EBZ21QWKL
|
# 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)