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)