| 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}")