plot_trade_pnl
function backtide.analysis.trade_pnl.plot_trade_pnl(runs, title=None, legend="upper left", figsize=(900, 600), filename=None, display=True)[source]
Create a per-trade PnL over time plot for one or more strategy runs.
Each marker represents a single closed trade plotted at its exit timestamp. Useful to spot clustering of wins/losses, regime changes, and to compare the timing of returns across strategies.
| Parameters |
runs : RunResult | list[RunResult]
The per-strategy results to plot. Runs without trades are skipped.
title : str | dict | None, default=None
Title for the plot.
legend : str | dict | None, default="upper left"
Legend for the plot. See the user guide for an extended
description of the choices.
figsize : tuple[int, int], default=(900, 600)
Figure's size in pixels, format as (x, y).
filename : str | Path | None, default=None
Save the plot using this name. The type of the file depends on the
provided name (
display : bool | None, default=True.html, .png, .pdf, etc...). If filename has no
file type, the plot is saved as .html. If None, the plot isn't saved.
Whether to render the plot. If
None, it returns the figure.
|
| Returns |
Figure | None
The Plotly figure object. Only returned if
display=None.
|
See Also
Create a PnL-over-time chart for one or more strategy runs.
Create a histogram of per-trade PnL for one or more strategy runs.
Create a histogram of trade durations for one or more strategy runs.
Example
>>> from backtide.analysis import plot_trade_pnl
>>> from backtide.storage import query_experiments, query_strategy_runs
>>> exp = query_experiments().iloc[0]
>>> runs = query_strategy_runs(exp.id)
>>> plot_trade_pnl(runs)