backtrader.reports package

Report generation module.

Provides backtest report generation functionality, including: - PerformanceCalculator: Performance metrics calculation - ReportChart: Report-specific chart generation - ReportGenerator: Main report generator

Usage example:

import backtrader as bt from backtrader.reports import ReportGenerator, PerformanceCalculator

# Run strategy cerebro = bt.Cerebro() cerebro.addstrategy(MyStrategy) cerebro.adddata(data) results = cerebro.run()

# Method 1: Generate report report = ReportGenerator(results[0]) report.generate_html('report.html') report.generate_pdf('report.pdf')

# Method 2: Get metrics only calc = PerformanceCalculator(results[0]) metrics = calc.get_all_metrics() print(metrics['sharpe_ratio'])

class backtrader.reports.PerformanceCalculator[源代码]

基类:object

Unified performance metrics calculator.

Extracts and calculates all performance metrics from strategies and analyzers, including: - PnL metrics: total return, annual return, cumulative return - Risk metrics: max drawdown, Sharpe ratio, SQN, Calmar ratio - Trade statistics: win rate, profit/loss ratio, average profit/loss

strategy

Strategy instance

Usage example:

calc = PerformanceCalculator(strategy) metrics = calc.get_all_metrics() print(f"Sharpe ratio: {metrics['sharpe_ratio']}") print(f"SQN rating: {metrics['sqn_human']}")

__init__(strategy)[源代码]

Initialize the performance calculator.

参数:

strategy -- backtrader strategy instance (result from run())

get_all_metrics()[源代码]

Return dictionary of all performance metrics.

返回:

Dictionary containing all performance metrics

返回类型:

dict

get_pnl_metrics()[源代码]

Get profit and loss related metrics.

返回:

PnL metrics dictionary

返回类型:

dict

get_risk_metrics()[源代码]

Get risk-related metrics.

返回:

Risk metrics dictionary

返回类型:

dict

get_trade_metrics()[源代码]

Get trade statistics metrics.

返回:

Trade statistics dictionary

返回类型:

dict

get_kpi_metrics()[源代码]

Get key performance indicators.

返回:

KPI metrics dictionary

返回类型:

dict

get_equity_curve()[源代码]

Get equity curve data.

返回:

(dates, values) Lists of dates and equity values

返回类型:

tuple

get_buynhold_curve()[源代码]

Get buy-and-hold comparison curve.

返回:

(dates, values) Lists of dates and buy-and-hold values

返回类型:

tuple

static sqn_to_rating(sqn_score)[源代码]

Convert SQN score to human-readable rating.

Reference: http://www.vantharp.com/tharp-concepts/sqn.asp

参数:

sqn_score -- SQN score

返回:

Human-readable rating

返回类型:

str

get_strategy_info()[源代码]

Get strategy information.

返回:

Strategy information dictionary

返回类型:

dict

get_data_info()[源代码]

Get data information.

返回:

Data information dictionary

返回类型:

dict

class backtrader.reports.ReportChart[源代码]

基类:object

Report-specific chart generator.

Generates static charts for reports, including: - Equity curve chart (with buy-and-hold comparison line) - Return bars chart (automatic period detection) - Drawdown area chart

figsize

Default chart size

dpi

Chart resolution

__init__(figsize=(10, 3), dpi=100)[源代码]

Initialize the chart generator.

参数:
  • figsize -- Chart size (width, height)

  • dpi -- Chart resolution

plot_equity_curve(dates, values, benchmark_dates=None, benchmark_values=None, title='Equity Curve')[源代码]

Plot equity curve chart.

参数:
  • dates -- List of dates

  • values -- List of equity values

  • benchmark_dates -- List of benchmark dates (optional)

  • benchmark_values -- List of benchmark values (optional, e.g., buy-and-hold)

  • title -- Chart title

返回:

matplotlib.figure.Figure or None

plot_return_bars(dates, values, period='auto', title=None)[源代码]

Plot return bars chart.

参数:
  • dates -- List of dates

  • values -- List of equity values

  • period -- Period ('auto', 'daily', 'weekly', 'monthly', 'yearly')

  • title -- Chart title

返回:

matplotlib.figure.Figure or None

plot_drawdown(dates, values, title='Drawdown')[源代码]

Plot drawdown area chart.

参数:
  • dates -- List of dates

  • values -- List of equity values

  • title -- Chart title

返回:

matplotlib.figure.Figure or None

save_to_file(fig, filename, format='png')[源代码]

Save chart to file.

参数:
  • fig -- matplotlib figure object

  • filename -- Output filename

  • format -- Image format ('png', 'jpg', 'svg', 'pdf')

to_base64(fig, format='png')[源代码]

Convert chart to base64 encoding.

参数:
  • fig -- matplotlib figure object

  • format -- Image format

返回:

base64 encoded image data

返回类型:

str

close_all()[源代码]

Close all charts and release memory.

class backtrader.reports.ReportGenerator[源代码]

基类:object

Main report generator.

Generates backtest reports in HTML, PDF, and JSON formats.

strategy

Strategy instance

calculator

Performance calculator

charts

Chart generator

Usage example:

report = ReportGenerator(strategy) report.generate_html('report.html') report.generate_pdf('report.pdf') report.generate_json('report.json')

__init__(strategy, template='default')[源代码]

Initialize the report generator.

参数:
  • strategy -- backtrader strategy instance

  • template -- Template name or template string

generate_html(output_path, user=None, memo=None, **kwargs)[源代码]

Generate HTML report.

参数:
  • output_path -- Output file path

  • user -- Username

  • memo -- Notes

  • **kwargs -- Additional template variables

返回:

Output file path

返回类型:

str

generate_pdf(output_path, user=None, memo=None, **kwargs)[源代码]

Generate PDF report.

参数:
  • output_path -- Output file path

  • user -- Username

  • memo -- Notes

  • **kwargs -- Additional template variables

返回:

Output file path

返回类型:

str

generate_json(output_path, indent=2, **kwargs)[源代码]

Generate JSON report.

参数:
  • output_path -- Output file path

  • indent -- JSON indentation

  • **kwargs -- Additional data

返回:

Output file path

返回类型:

str

get_metrics()[源代码]

Get all performance metrics.

返回:

Performance metrics dictionary

返回类型:

dict

print_summary()[源代码]

Print performance summary to console.

Submodules