本页解释了如何绘制价格、指标和利润。
安装 / 设置¶
绘图模块使用 Plotly 库。您可以通过运行以下命令来安装 / 升级:
pip install -U -r requirements-plot.txt
绘制价格和指标¶
freqtrade plot-dataframe
子命令显示一个交互式图表,包含三个子图:
- 主图,带有蜡烛图和跟随价格的指标(sma/ema)
- 成交量柱状图
- 由
--indicators2
指定的其他指标

可能的参数:
usage: freqtrade plot-dataframe [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH]
[--recursive-strategy-search]
[--freqaimodel NAME] [--freqaimodel-path PATH]
[-p PAIRS [PAIRS ...]]
[--indicators1 INDICATORS1 [INDICATORS1 ...]]
[--indicators2 INDICATORS2 [INDICATORS2 ...]]
[--plot-limit INT] [--db-url PATH]
[--trade-source {DB,file}]
[--export {none,trades,signals}]
[--backtest-filename PATH]
[--timerange TIMERANGE] [-i TIMEFRAME]
[--no-trades]
选项:
-h, --help 显示此帮助信息并退出
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
将命令限制到这些交易对。交易对以空格分隔。
--indicators1 INDICATORS1 [INDICATORS1 ...]
设置您想要在图表第一行显示的策略指标。以空格分隔的列表。示例:
`ema3 ema5`。默认:`['sma', 'ema3', 'ema5']`。
--indicators2 INDICATORS2 [INDICATORS2 ...]
设置您想要在图表第三行显示的策略指标。以空格分隔的列表。示例:
`fastd fastk`。默认:`['macd', 'macdsignal']`。
--plot-limit INT 指定绘图的刻度限制。注意:值过高会导致文件巨大。默认:750。
--db-url PATH 覆盖交易数据库URL,这在自定义部署中很有用(默认:实时运行模式为
`sqlite:///tradesv3.sqlite`,模拟运行为
`sqlite:///tradesv3.dryrun.sqlite`)。
--trade-source {DB,file}
指定交易来源(可以是DB或file(回测文件))默认:file
--export {none,trades,signals}
导出回测结果(默认:trades)。
--backtest-filename PATH, --export-filename PATH
使用此文件名作为回测结果。示例:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`。
假设以 `user_data/backtest_results/` 或
`--export-directory` 作为基础目录。
--timerange TIMERANGE
指定使用的数据时间范围。
-i TIMEFRAME, --timeframe TIMEFRAME
指定时间框架(`1m`、`5m`、`30m`、`1h`、`1d`)。
--no-trades 跳过使用回测文件和数据库中的交易。
通用参数:
-v, --verbose 详细模式(-vv 获取更多信息,-vvv 获取所有消息)。
--no-color 禁用超参数优化结果的着色。如果您将输出重定向到文件,这可能很有用。
--logfile FILE, --log-file FILE
记录到指定文件。特殊值有:'syslog'、'journald'。
有关更多详细信息,请参阅文档。
-V, --version 显示程序版本号并退出
-c PATH, --config PATH
指定配置文件(默认:`userdir/config.json` 或
`config.json`,以存在的为准)。可以使用多个 --config 选项。
可以设置为 `-` 从标准输入读取配置。
-d PATH, --datadir PATH, --data-dir PATH
包含历史回测数据的交易所基础目录路径。要查看期货数据,
请额外使用 trading-mode。
--userdir PATH, --user-data-dir PATH
用户数据目录路径。
策略参数:
-s NAME, --strategy NAME
指定机器人将使用的策略类名称。
--strategy-path PATH 指定额外的策略查找路径。
--recursive-strategy-search
在策略文件夹中递归搜索策略。
--freqaimodel NAME 指定自定义 freqaimodels。
--freqaimodel-path PATH
指定 freqaimodels 的额外查找路径。
示例:
freqtrade plot-dataframe -p BTC/ETH --strategy AwesomeStrategy
-p/--pairs
参数可用于指定您想要绘制的交易对。
指定自定义指标。
使用 --indicators1
用于主图,--indicators2
用于下方的子图(如果值在不同于价格的范围)。
freqtrade plot-dataframe --strategy AwesomeStrategy -p BTC/ETH --indicators1 sma ema --indicators2 macd
进一步的使用示例¶
要绘制多个交易对,请用空格分隔它们:
freqtrade plot-dataframe --strategy AwesomeStrategy -p BTC/ETH XRP/ETH
要绘制时间范围(以放大)
freqtrade plot-dataframe --strategy AwesomeStrategy -p BTC/ETH --timerange=20180801-20180805
要绘制存储在数据库中的交易,请使用 --db-url
结合 --trade-source DB
:
freqtrade plot-dataframe --strategy AwesomeStrategy --db-url sqlite:///tradesv3.dry_run.sqlite -p BTC/ETH --trade-source DB
要绘制回测结果中的交易,请使用 --export-filename <filename>
freqtrade plot-dataframe --strategy AwesomeStrategy --export-filename user_data/backtest_results/backtest-result.json -p BTC/ETH
绘图数据框基础¶

plot-dataframe
子命令需要回测数据、策略和回测结果文件或数据库,其中包含与策略相对应的交易。
生成的图表将包含以下元素:
- 绿色三角形:来自策略的买入信号。(注意:并非每个买入信号都会生成交易,请与青色圆圈进行比较。)
- 红色三角形:来自策略的卖出信号。(同样,并非每个卖出信号都会终止交易,请与红色和绿色方块进行比较。)
- 青色圆圈:交易入场点。
- 红色方块:亏损或 0% 利润的交易出场点。
- 绿色方块:盈利交易的出场点。
- 与蜡烛图比例相对应的指标(例如 SMA/EMA),由
--indicators1
指定。 - 成交量(主图底部的柱状图)。
- 不同比例的指标(例如 MACD、RSI)在成交量柱状图下方,由
--indicators2
指定。
高级绘图配置¶
可以在策略中的 plot_config
参数中指定高级绘图配置。
使用 plot_config
时的其他功能包括:
- 为每个指标指定颜色
- 指定其他子图
- 指定指标对以填充之间的区域
下面的示例绘图配置为指标指定了固定颜色。否则,连续的图表可能会每次产生不同的颜色方案,使得比较变得困难。 它还允许多个子图同时显示 MACD 和 RSI。
可以使用 type
键配置绘图类型。可能的类型有:
scatter
对应于plotly.graph_objects.Scatter
类(默认)。bar
对应于plotly.graph_objects.Bar
类。
可以在 plotly
字典中指定 plotly.graph_objects.*
构造函数的额外参数。
带有内联注释的示例配置,解释过程:
@property
def plot_config(self):
"""
构建返回字典的方法有很多。
唯一重要的是返回值。
示例:
plot_config = {'main_plot': {}, 'subplots': {}}
"""
plot_config = {}
plot_config['main_plot'] = {
# 主图指标的配置。
# 假设指定了 2 个参数,emashort 和 emalong。
f'ema_{self.emashort.value}': {'color': 'red'},
f'ema_{self.emalong.value}': {'color': '#CCCCCC'},
# 省略颜色时,将随机选择颜色。
'sar': {},
# 填充 senkou_a 和 senkou_b 之间的区域
'senkou_a': {
'color': 'green', #可选
'fill_to': 'senkou_b',
'fill_label': 'Ichimoku Cloud', #可选
'fill_color': 'rgba(255,76,46,0.2)', #可选
},
# 也绘制 senkou_b,而不仅仅是到它的区域。
'senkou_b': {}
}
plot_config['subplots'] = {
# 创建 MACD 子图
"MACD": {
'macd': {'color': 'blue', 'fill_to': 'macdhist'},
'macdsignal': {'color': 'orange'},
'macdhist': {'type': 'bar', 'plotly': {'opacity': 0.9}}
},
# 额外的 RSI 子图
"RSI": {
'rsi': {'color': 'red'}
}
}
return plot_config
绘制利润¶

plot-profit
子命令显示一个交互式图表,包含三个图表:
- 所有交易对的平均收盘价。
- 回测产生的总利润。请注意,这不是实际利润,而是一个估计。
- 每个交易对的利润。
- 交易的并行性。
- 水下(回撤期间)。
第一个图表有助于了解整体市场的进展。
第二个图表将显示您的算法是否有效。
也许您希望一个算法能够稳定地产生小额利润,或者一个算法行动较少,但会产生大的波动。此图表还将突出显示最大回撤期间的开始(和结束)。
第三个图表可以帮助发现异常值,导致利润峰值的事件。
第四个图表可以帮助您分析交易并行性,显示 max_open_trades 被最大化的频率。
freqtrade plot-profit
子命令的可能选项:
用法: freqtrade plot-profit [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[-s NAME] [--strategy-path PATH]
[--recursive-strategy-search]
[--freqaimodel NAME] [--freqaimodel-path PATH]
[-p PAIRS [PAIRS ...]] [--timerange TIMERANGE]
[--export {none,trades,signals}]
[--backtest-filename PATH] [--db-url PATH]
[--trade-source {DB,file}] [-i TIMEFRAME]
[--auto-open]
选项:
-h, --help 显示帮助信息并退出。
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
限制命令仅处理这些交易对。交易对以空格分隔。
--timerange TIMERANGE
指定要使用的数据时间范围。
--export {none,trades,signals}
导出回测结果(默认:trades)。
--backtest-filename PATH, --export-filename PATH
使用此文件名作为回测结果。示例:
`--backtest-filename=backtest_results_2020-09-27_16-20-48.json`。
假设以 `user_data/backtest_results/` 或 `--export-directory` 作为基础目录。
--db-url PATH 覆盖交易数据库 URL,这在自定义部署中很有用(默认:`sqlite:///tradesv3.sqlite` 用于实时运行模式,`sqlite:///tradesv3.dryrun.sqlite` 用于模拟运行)。
--trade-source {DB,file}
指定交易的来源(可以是 DB 或文件(回测文件))。默认:file。
-i TIMEFRAME, --timeframe TIMEFRAME
指定时间周期(`1m`, `5m`, `30m`, `1h`, `1d`)。
--auto-open 自动打开生成的图表。
通用参数:
-v, --verbose 详细模式(-vv 获取更多信息,-vvv 获取所有消息)。
--no-color 禁用超参数优化结果的着色。在将输出重定向到文件时可能有用。
--logfile FILE, --log-file FILE
记录到指定的文件。特殊值包括:
'syslog', 'journald'。有关更多详细信息,请参阅文档。
-V, --version 显示程序版本号并退出。
-c PATH, --config PATH
指定配置文件(默认:`userdir/config.json` 或 `config.json`,以存在的为准)。
可以使用多个 --config 选项。可以设置为 `-` 以从标准输入读取配置。
-d PATH, --datadir PATH, --data-dir PATH
交易所历史回测数据的基本目录路径。要查看期货数据,需要额外使用 trading-mode。
--userdir PATH, --user-data-dir PATH
用户数据目录的路径。
策略参数:
-s NAME, --strategy NAME
指定机器人使用的策略类名。
--strategy-path PATH 指定额外的策略查找路径。
--recursive-strategy-search
在策略文件夹中递归搜索策略。
--freqaimodel NAME 指定自定义的 freqaimodels。
--freqaimodel-path PATH
指定 freqaimodels 的额外查找路径。
-p/--pairs
参数可用于限制此计算中考虑的交易对。
示例:
使用自定义回测导出文件
freqtrade plot-profit -p LTC/BTC --export-filename user_data/backtest_results/backtest-result.json
使用自定义数据库
freqtrade plot-profit -p LTC/BTC --db-url sqlite:///tradesv3.sqlite --trade-source DB
freqtrade --datadir user_data/data/binance_save/ plot-profit -p LTC/BTC