| Overall Statistics |
|
Total Orders 17 Average Win 0% Average Loss 0% Compounding Annual Return 6.271% Drawdown 40.800% Expectancy 0 Start Equity 1000000 End Equity 1569389.02 Net Profit 56.939% Sharpe Ratio 0.152 Sortino Ratio 0.131 Probabilistic Sharpe Ratio 1.543% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.038 Beta 0.629 Annual Standard Deviation 0.17 Annual Variance 0.029 Information Ratio -0.514 Tracking Error 0.149 Treynor Ratio 0.041 Total Fees $269.57 Estimated Strategy Capacity $160000.00 Lowest Capacity Asset BBX WM5M1MF2M4X1 Portfolio Turnover 0.05% Drawdown Recovery 305 |
# region imports
from AlgorithmImports import *
from collections import deque
# endregion
class MaxEffectAlgorithm(QCAlgorithm):
def initialize(self) -> None:
self.set_start_date(2019, 1, 1)
self.set_cash(1_000_000)
self.settings.seed_initial_prices = True
self._spy = self.add_equity('SPY', Resolution.DAILY)
self._symbols = [self.add_equity(ticker, Resolution.DAILY).symbol for ticker in ['ABCM', 'AY', 'AYX', 'BVH', 'CATM', 'CLDR', 'MRTX', 'SHLX', 'TGP']]
self.schedule.on(self.date_rules.month_start(self._spy, 1), self.time_rules.at(8, 0), self._rebalance)
def _rebalance(self) -> None:
if self.time.year == 2019 and not self.portfolio.invested:
self.set_holdings([PortfolioTarget(symbol, 1/len(self._symbols)) for symbol in self._symbols])
elif self.time.year == 2026 and self.time.month == 5:
self.set_holdings(self._spy, 0.5, liquidate_existing_holdings=True)