I have attempted the solution displayed here: https://www.quantconnect.com/forum/discussion/5591/help-me-to-plot-candlesticks/p1/comment-27480 but I can't get plotting of 1 minute candles to work. My resulting plot only contains a single candle. 

Here is my simplified SymbolData class which handles the plotting:

  1. class SymbolData:
  2. def __init__(self, algorithm, symbol):
  3. self.algorithm = algorithm
  4. self.symbol = symbol
  5. self.ticker = symbol.Value
  6. # Create a consolidator to update the indicators
  7. self.consolidator = TradeBarConsolidator(1)
  8. self.consolidator.DataConsolidated += self.OnDataConsolidated
  9. # Register the consolidator to update the indicators
  10. algorithm.SubscriptionManager.AddConsolidator(symbol, self.consolidator)
  11. # Plotting
  12. charting_time = algorithm.Time.strftime("%Y-%m-%d")
  13. self.trade_chart_name = f"{symbol.Value}-{charting_time}-Trading"
  14. self.trading_chart = Chart(self.trade_chart_name)
  15. self.candles = Series(f"{self.ticker}", SeriesType.Candle)
  16. self.trading_chart.AddSeries(self.candles)
  17. algorithm.AddChart(self.trading_chart)
  18. def OnDataConsolidated(self, sender: object, consolidated_bar: TradeBar) -> None:
  19. self.candles.AddPoint(consolidated_bar.EndTime - timedelta(seconds=59), consolidated_bar.Open)
  20. self.candles.AddPoint(consolidated_bar.EndTime - timedelta(seconds=58), consolidated_bar.High)
  21. self.candles.AddPoint(consolidated_bar.EndTime - timedelta(seconds=57), consolidated_bar.Low)
  22. self.candles.AddPoint(consolidated_bar.EndTime, consolidated_bar.Close)
+ Expand

Author

Haakon

October 2022