backtrader.bokeh.analyzers package

Bokeh analyzers module.

Provides the following analyzers: - LivePlotAnalyzer: Live plotting analyzer - RecorderAnalyzer: Data recording analyzer

class backtrader.bokeh.analyzers.LivePlotAnalyzer[source]

Bases: Analyzer

Live plotting analyzer.

Provides real-time plotting functionality based on Bokeh Server, including: - WebSocket real-time data push - Pause/resume functionality - Forward/backward navigation - Data lookback control

Parameters:
  • scheme – Theme instance, defaults to Tradimo

  • style – Chart style, ‘bar’ or ‘candle’

  • lookback – Amount of historical data to retain

  • address – Server address

  • port – Server port

  • title – Title

  • autostart – Whether to auto-start the server

Example

cerebro.addanalyzer(LivePlotAnalyzer,

scheme=Blackly(), lookback=100, port=8999)

params = (('scheme', None), ('style', 'bar'), ('lookback', 100), ('address', 'localhost'), ('port', 8999), ('title', None), ('autostart', True))
__init__(**kwargs)[source]

Initialize live plot analyzer.

Parameters:

**kwargs – Keyword arguments overriding default parameters: - scheme: Theme instance (defaults to Tradimo) - style: Chart style (‘bar’ or ‘candle’) - lookback: Number of bars to retain in display - address: Server address (default: ‘localhost’) - port: Server port (default: 8999) - title: Chart title (default: ‘Live {StrategyName}’) - autostart: Whether to auto-start server (default: True)

start()[source]

Start from backtrader.

Starts the Bokeh Server.

stop()[source]

Stop from backtrader.

next()[source]

Receive new data from backtrader.

Updates all connected clients.

get_analysis()[source]

Return analysis results.

Returns:

Empty dict (this analyzer is for plotting, does not produce analysis data)

Return type:

dict

class backtrader.bokeh.analyzers.RecorderAnalyzer[source]

Bases: Analyzer

Data recording analyzer.

Records OHLCV data and indicator data during strategy execution.

Parameters:
  • indicators – Whether to record indicator data

  • observers – Whether to record observer data

Example

cerebro.addanalyzer(RecorderAnalyzer, indicators=True)

# Get data after running result = cerebro.run() recorder = result[0].analyzers.recorderanalyzer data = recorder.get_analysis()

params = (('indicators', True), ('observers', False))
__init__()[source]

Initialize recorder analyzer.

Sets up storage for data sources, indicators, and observers based on parameter configuration.

start()[source]

Analyzer start.

next()[source]

Record data for each bar.

stop()[source]

Analyzer stop.

get_analysis()[source]

Return recorded data.

Returns:

Dictionary containing data, indicators and observers

Return type:

OrderedDict

get_dataframe(data_name=None)[source]

Convert data to pandas DataFrame.

Parameters:

data_name – Data source name, None means first data source

Returns:

pandas.DataFrame or None

Submodules