Overall Statistics |
Total Trades 50 Average Win 0.42% Average Loss -0.17% Compounding Annual Return -31.731% Drawdown 2.400% Expectancy -0.446 Net Profit -1.888% Sharpe Ratio -4.673 Probabilistic Sharpe Ratio 0.191% Loss Rate 84% Win Rate 16% Profit-Loss Ratio 2.46 Alpha -0.119 Beta 0.272 Annual Standard Deviation 0.05 Annual Variance 0.002 Information Ratio 2.017 Tracking Error 0.094 Treynor Ratio -0.859 Total Fees $52.14 Estimated Strategy Capacity $41000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
class OpeningRangeBreakoutRevision(QCAlgorithm): def Initialize(self): self.SetStartDate(2022, 1, 1) #self.SetEndDate(2020, 12, 31) self.SetCash(100_000) self.spy = self.AddEquity("SPY", Resolution.Minute, extendedMarketHours = True).Symbol self.Consolidate(self.spy, timedelta(minutes=30), self.OnDataConsolidated) self.window = RollingWindow[TradeBar](2) self.openingBar = None def OnData(self, data): if self.openingBar is None: return if data[self.spy].Price > self.openingBar.High and not self.Portfolio.Invested: self.SetHoldings(self.spy, 1) elif data[self.spy].Price < self.window[1].Low: self.Liquidate(self.spy) def OnDataConsolidated(self, bar): if bar.EndTime.hour == 10 and bar.EndTime.minute == 00: self.openingBar = bar self.window.Add(bar)