Overall Statistics
Total Orders
24
Average Win
34.64%
Average Loss
0%
Compounding Annual Return
42.881%
Drawdown
59.200%
Expectancy
0
Start Equity
10000
End Equity
85220.95
Net Profit
752.209%
Sharpe Ratio
0.974
Sortino Ratio
1.142
Probabilistic Sharpe Ratio
40.578%
Loss Rate
0%
Win Rate
100%
Profit-Loss Ratio
0
Alpha
0.19
Beta
1.486
Annual Standard Deviation
0.326
Annual Variance
0.106
Information Ratio
1.058
Tracking Error
0.219
Treynor Ratio
0.214
Total Fees
$24.09
Estimated Strategy Capacity
$16000000.00
Lowest Capacity Asset
AMD R735QTJ8XC9X
Portfolio Turnover
0.13%
Drawdown Recovery
802
# region imports
from AlgorithmImports import *
# endregion

class MuscularFluorescentYellowFrog(QCAlgorithm):

    def initialize(self):
        self.set_start_date(2020, 1, 1)
        self.set_end_date(2025, 12, 31)
        self.set_cash(10000)
        self.add_equity("AMD")
        self.add_equity("MSFT")
        self.add_equity("AAPL")
        self.add_equity("GOOGL")
        self.add_equity("META")
        self.add_equity("TSLA")
        self.add_equity("AMZN")
        self.add_equity("NVDA")

        self.did_final_liquidation = False

        self.schedule.on(
            self.date_rules.every_day(),
            self.time_rules.before_market_close("SPY", 5),
            self.final_liquidation
        )
    def on_data(self, data: Slice):
        if not self.portfolio.invested:
            self.set_holdings("AMD", 0.125)
            self.set_holdings("MSFT", 0.125)
            self.set_holdings("AAPL", 0.125)
            self.set_holdings("GOOGL", 0.125)
            self.set_holdings("META", 0.125)
            self.set_holdings("TSLA", 0.125)
            self.set_holdings("AMZN", 0.125)
            self.set_holdings("NVDA", 0.125)
    def final_liquidation(self):
        # self.end_date is what you set in initialize; self.time is the current backtest date
        if self.time.date() == (self.end_date.date() - timedelta(days=1)):
            self.liquidate()
            self.did_final_liquidation = True
            self.debug(f"Final liquidation on {self.time}")