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