Overall Statistics |
Total Orders
97
Average Win
12.72%
Average Loss
-8.37%
Compounding Annual Return
7.298%
Drawdown
55.700%
Expectancy
0.522
Start Equity
100000
End Equity
552687.01
Net Profit
452.687%
Sharpe Ratio
0.263
Sortino Ratio
0.277
Probabilistic Sharpe Ratio
0.014%
Loss Rate
40%
Win Rate
60%
Profit-Loss Ratio
1.52
Alpha
0.001
Beta
0.972
Annual Standard Deviation
0.16
Annual Variance
0.026
Information Ratio
-0
Tracking Error
0.037
Treynor Ratio
0.043
Total Fees
$764.92
Estimated Strategy Capacity
$1500000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
Portfolio Turnover
1.09%
|
# https://quantpedia.com/strategies/january-effect-in-stocks/ # # Invest in small-cap stocks at the beginning of each January. Stay invested in large-cap stocks for the rest of the year. # # QC implementation changes: # - Small cap etf (IWM) and large cap etf (SPY) are used as investment assets. from AlgorithmImports import * class JanuaryEffectInStocks(QCAlgorithm): def Initialize(self): self.SetStartDate(2000, 1, 1) self.SetCash(100000) data = self.AddEquity("SPY", Resolution.Daily) data.SetLeverage(10) self.large_cap = data.Symbol data = self.AddEquity("IWM", Resolution.Daily) data.SetLeverage(10) self.small_cap = data.Symbol self.start_price = None self.recent_month = -1 def OnData(self, data): if self.recent_month == self.Time.month: return self.recent_month = self.Time.month if self.Securities[self.large_cap].GetLastData() and self.Securities[self.small_cap].GetLastData(): if (self.Time.date() - self.Securities[self.large_cap].GetLastData().Time.date()).days < 5 and (self.Time.date() - self.Securities[self.small_cap].GetLastData().Time.date()).days < 5: if self.Time.month == 1: if self.Portfolio[self.large_cap].Invested: self.Liquidate(self.large_cap) self.SetHoldings(self.small_cap, 1) else: if self.Portfolio[self.small_cap].Invested: self.Liquidate(self.small_cap) self.SetHoldings(self.large_cap, 1) else: self.Liquidate() else: self.Liquidate()