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