Overall Statistics |
Total Trades 2 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $10.85 Estimated Strategy Capacity $410000.00 Lowest Capacity Asset HSGX VW390IT7P4YT |
class OpeningRangeBreakout(QCAlgorithm): bar1 = bar2 = bar3 = None def Initialize(self): self.symbol = "OCGN" self.SetStartDate(2021, 10, 14) self.SetEndDate(2021, 10, 14) self.SetCash(10000) self.AddEquity(self.symbol, Resolution.Minute) self.Consolidate(self.symbol, timedelta(minutes=5), self.OnDataConsolidated) self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.At(9,47), self.ClosePositions) #3. Create a scheduled event triggered at 13:30 calling the ClosePositions function def OnData(self, data): if self.Portfolio.Invested or None in (self.bar1, self.bar2): return self.Debug("{} {}".format(self.bar1, self.bar2)) if self.bar2.Open > self.bar1.Open: self.Debug("Set holdings " + str(self.symbol)) self.SetHoldings(self.symbol, 1) def OnDataConsolidated(self, bar): if bar.Time.hour == 9 and bar.Time.minute == 30: self.bar1 = bar if bar.Time.hour == 9 and bar.Time.minute == 35: self.bar2 = bar #1. Create a function named ClosePositions(self) #2. Set self.openingBar to None, and liquidate TSLA def ClosePositions(self): self.Debug("ClosePositions 1 {}".format(self.Time)) self.bar1 = None self.bar2 = None self.Log("Close " + str(self.Portfolio[self.symbol].Quantity) + " units of symbol " + str(self.symbol)) self.Liquidate(self.symbol) self.Debug("ClosePositions 2")