Created with Highcharts 12.1.2EquityMay 2022May…Jul 2022Sep 2022Nov 2022Jan 2023Mar 2023May 2023Jul 2023Sep 2023Nov 2023Jan 2024Mar 2024May 2024Jul 2024800k1,000k1,200k-10000.10.2-101050M100M500k501k502k203040
Overall Statistics
Total Orders
2
Average Win
0%
Average Loss
0%
Compounding Annual Return
6.176%
Drawdown
10.100%
Expectancy
0
Start Equity
1000000
End Equity
1127650.63
Net Profit
12.765%
Sharpe Ratio
0.024
Sortino Ratio
0.022
Probabilistic Sharpe Ratio
23.682%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.003
Beta
-0.03
Annual Standard Deviation
0.081
Annual Variance
0.007
Information Ratio
-0.272
Tracking Error
0.173
Treynor Ratio
-0.066
Total Fees
$42.26
Estimated Strategy Capacity
$61000000.00
Lowest Capacity Asset
MWD R735QTJ8XC9X
Portfolio Turnover
0.14%
from AlgorithmImports import *

class ModifiedBuyAndHoldStrategy(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2022, 5, 1)
        self.SetEndDate(2024, 5, 1)
        self.SetCash(1_000_000)
        
        self.gs = self.AddEquity("GS", Resolution.Daily).Symbol
        self.ms = self.AddEquity("MS", Resolution.Daily).Symbol
        
        self.initial_portfolio_value = self.Portfolio.TotalPortfolioValue
        self.max_drawdown = 70_000
        self.trades_executed = False 
        
    def OnData(self, data):
        if not self.trades_executed:
            self.set_holdings(self.gs, 0.5) 
            self.set_holdings(self.ms, -0.5) 
            self.trades_executed = True
        
        current_loss = self.initial_portfolio_value - self.Portfolio.TotalPortfolioValue
        if current_loss > self.max_drawdown:
            self.Liquidate()  
            self.Debug("Liquidated positions due to stop-loss.")
    
    def OnEndOfAlgorithm(self):
        self.Debug(f"Initial Portfolio Value: {self.initial_portfolio_value}")
        self.Debug(f"Final Portfolio Value: {self.Portfolio.TotalPortfolioValue}")