Overall Statistics |
Total Orders
99
Average Win
12.73%
Average Loss
-7.50%
Compounding Annual Return
7.581%
Drawdown
55.000%
Expectancy
0.564
Start Equity
100000
End Equity
610951.06
Net Profit
510.951%
Sharpe Ratio
0.271
Sortino Ratio
0.286
Probabilistic Sharpe Ratio
0.016%
Loss Rate
42%
Win Rate
58%
Profit-Loss Ratio
1.70
Alpha
0.001
Beta
0.973
Annual Standard Deviation
0.159
Annual Variance
0.025
Information Ratio
0.007
Tracking Error
0.037
Treynor Ratio
0.044
Total Fees
$769.65
Estimated Strategy Capacity
$1100000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
Portfolio Turnover
1.07%
|
# 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()