Overall Statistics |
Total Orders 1 Average Win 0% Average Loss 0% Compounding Annual Return 192.504% Drawdown 7.100% Expectancy 0 Start Equity 100000 End Equity 130921.81 Net Profit 30.922% Sharpe Ratio 4.253 Sortino Ratio 5.92 Probabilistic Sharpe Ratio 88.420% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.372 Beta 2.919 Annual Standard Deviation 0.265 Annual Variance 0.07 Information Ratio 4.942 Tracking Error 0.176 Treynor Ratio 0.386 Total Fees $4.91 Estimated Strategy Capacity $11000000.00 Lowest Capacity Asset BGU U7EC123NWZTX Portfolio Turnover 1.08% |
from AlgorithmImports import * class CryptoStrategy(QCAlgorithm): def Initialize(self): self.SetStartDate(2024, 1, 1) self.SetEndDate(2024, 4, 1) self.SetCash(100000) self.symbol = "SPXL" self.SetBenchmark("SPY") try: self.AddEquity(self.symbol, Resolution.Minute) except Exception as e: self.Debug(f"Unable to add symbol: {self.symbol}. Exception: {e}") self.atr = self.ATR(self.symbol, 10, MovingAverageType.Wilders, Resolution.Minute) self.supertrend_sma = self.SMA(self.symbol, 10, Resolution.Minute) self.entry_price = None self.SetWarmUp(100, Resolution.Minute) def OnData(self, data): if self.IsWarmingUp: return if not data.Bars.ContainsKey(self.symbol): return bar = data.Bars[self.symbol] current_price = bar.Close atr_value = self.atr.Current.Value supertrend_value = self.supertrend_sma.Current.Value - 10 * atr_value if self.entry_price is None: if current_price > supertrend_value: self.Debug(f"{self.symbol}: Supertrend={supertrend_value}, Current Price={current_price}") self.SetHoldings(self.symbol, 1.0) self.entry_price = current_price elif current_price < supertrend_value: self.Liquidate(self.symbol) self.entry_price = None