| Overall Statistics |
|
Total Trades 3997 Average Win 0.04% Average Loss -0.06% Compounding Annual Return -8.437% Drawdown 45.100% Expectancy -0.037 Net Profit -16.142% Sharpe Ratio -0.11 Probabilistic Sharpe Ratio 2.940% Loss Rate 39% Win Rate 61% Profit-Loss Ratio 0.59 Alpha -0.073 Beta 1.419 Annual Standard Deviation 0.255 Annual Variance 0.065 Information Ratio -0.46 Tracking Error 0.13 Treynor Ratio -0.02 Total Fees $4643.19 Estimated Strategy Capacity $150000000.00 Lowest Capacity Asset AVGO UEW4IOBWVPT1 |
# region imports
from AlgorithmImports import *
# endregion
class MuscularYellowGreenMonkey(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2021, 1, 1)
self.SetEndDate(2023, 1, 1)
self.SetCash(1000000) # Set Strategy Cash
self.UniverseSettings.Resolution = Resolution.Daily
self.AddUniverseSelection(QQQETFUniverseSelectionModel(self.UniverseSettings))
self.AddAlpha(ConstantAlphaModel(InsightType.Price, InsightDirection.Up, timedelta(days=30)))
self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel())
class QQQETFUniverseSelectionModel(ETFConstituentsUniverseSelectionModel):
def __init__(self, universe_settings: UniverseSettings = None) -> None:
symbol = Symbol.Create("QQQ", SecurityType.Equity, Market.USA)
super().__init__(symbol, universe_settings, self.ETFConstituentsFilter)
def ETFConstituentsFilter(self, constituents: List[ETFConstituentData]) -> List[Symbol]:
selected = sorted([c for c in constituents if c.Weight],
key=lambda c: c.Weight, reverse=True)[:10]
return [c.Symbol for c in selected]