Overall Statistics
Total Orders
5
Average Win
0%
Average Loss
-0.54%
Compounding Annual Return
-1.858%
Drawdown
3.500%
Expectancy
-1
Start Equity
1000000
End Equity
994520.5
Net Profit
-0.548%
Sharpe Ratio
-1.277
Sortino Ratio
-1.302
Probabilistic Sharpe Ratio
20.803%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.099
Beta
0.271
Annual Standard Deviation
0.046
Annual Variance
0.002
Information Ratio
-2.032
Tracking Error
0.102
Treynor Ratio
-0.218
Total Fees
$8.60
Estimated Strategy Capacity
$270000000000.00
Lowest Capacity Asset
ES Y6URRFPZ86BL
Portfolio Turnover
1.31%
Drawdown Recovery
7
from AlgorithmImports import *


class EndOfMonthSP500Reversal(QCAlgorithm):
    def initialize(self):
        self.set_start_date(2022, 12, 25)
        self.set_end_date(2023, 4, 10)
        self.set_cash(1_000_000)
        self.settings.seed_initial_prices = True
        self._es = self.add_future("ES", Resolution.DAILY, extended_market_hours=False)
        self._es.set_filter(0, 45)
        self.schedule.on(self.date_rules.month_start('SPY'), self.time_rules.at(10, 0), self._rebalance)

    def _rebalance(self):
        mapped = self._es.mapped
        if not mapped:
            return
        self.market_order(mapped, 1, tag=f'Previous closing price: {self.securities[mapped].price}')