Skip to article frontmatterSkip to article content
Freqtrade 绘图功能指南

绘图

可视化价格、指标和回测结果

本页解释了如何绘制价格、指标和利润。

安装 / 设置

绘图模块使用 Plotly 库。您可以通过运行以下命令来安装 / 升级:

pip install -U -r requirements-plot.txt

绘制价格和指标

freqtrade plot-dataframe 子命令显示一个交互式图表,包含三个子图:

plot-dataframe

可能的参数:

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-dataframe2

plot-dataframe 子命令需要回测数据、策略和回测结果文件或数据库,其中包含与策略相对应的交易。

生成的图表将包含以下元素:

高级绘图配置

可以在策略中的 plot_config 参数中指定高级绘图配置。

使用 plot_config 时的其他功能包括:

下面的示例绘图配置为指标指定了固定颜色。否则,连续的图表可能会每次产生不同的颜色方案,使得比较变得困难。 它还允许多个子图同时显示 MACD 和 RSI。

可以使用 type 键配置绘图类型。可能的类型有:

可以在 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

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