Overall Statistics |
Total Trades 424 Average Win 0.09% Average Loss -0.05% Compounding Annual Return -42.647% Drawdown 3.300% Expectancy -0.240 Net Profit -2.736% Sharpe Ratio -5.145 Probabilistic Sharpe Ratio 0.032% Loss Rate 71% Win Rate 29% Profit-Loss Ratio 1.60 Alpha -0.213 Beta 0.255 Annual Standard Deviation 0.062 Annual Variance 0.004 Information Ratio 0.986 Tracking Error 0.103 Treynor Ratio -1.258 Total Fees $444.52 Estimated Strategy Capacity $57000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
class OpeningRangeBreakoutRevision(QCAlgorithm): openingBar = None def Initialize(self): self.SetStartDate(2022, 1, 1) #self.SetEndDate(2020, 12, 31) self.SetCash(100000) self.AddEquity("SPY", Resolution.Minute, extendedMarketHours = True) self.Consolidate("SPY", timedelta(minutes=30), self.OnDataConsolidated) self.window = RollingWindow[TradeBar](2) def OnData(self, data): self.window.Add(data["SPY"]) if self.openingBar is None: return if data["SPY"].Price > self.openingBar.High and not self.Portfolio.Invested: self.SetHoldings("SPY", 1) elif data["SPY"].Price < self.window[1].Low and self.Portfolio.Invested: self.Liquidate("SPY") def OnDataConsolidated(self, bar): if bar.Time.hour == 9 and bar.Time.minute == 00: self.openingBar = bar