第 6 篇:《量化使用看图说话!plot-dataframe 图表可视化教程》

📘 第 6 篇:《量化使用看图说话!plot-dataframe 图表可视化教程》

在策略开发过程中,回测结果常常以表格形式呈现,难以快速定位问题。而 plot-dataframe 命令可以将回测的买卖点、指标线、价格走势可视化为图表,助你一眼看出策略表现。


🚀 想学量化交易?

👉 点击访问:www.itrade.icu 这里有 Freqtrade 基础教程策略实战指标解析 等丰富内容,助你轻松掌握量化交易技巧!


🎯 1. 基础用法:绘制图表

bash 复制代码
freqtrade plot-dataframe \
  --config user_data/config.json \
  --strategy MyStrategy \
  --timerange 20230101-20230201

执行后会在 user_data/plot/ 下生成一个 .html 文件,可直接双击浏览器查看,包含以下内容:

  • K线价格走势
  • 买卖点(Buy/Sell 箭头)
  • 技术指标(如 EMA、MACD 等)

🧾 2. 参数详解

参数 含义
--config 配置文件路径,需包含交易对、时间周期等
--strategy 策略类名(如 MyStrategy
--timerange 指定绘图时间段,格式如 20230101-20230201
--indicators1 绘制在主图上的指标(如 EMA、close)
--indicators2 副图指标(如 RSI、MACD)
--exportfilename 导出文件路径(支持 .html.png
--userdir 自定义 user_data 路径(默认即可)

📐 3. 添加自定义指标

你可以在图表中加入额外的指标,以验证信号逻辑:

代码示例:

python 复制代码
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
    dataframe['ema'] = ta.EMA(dataframe['close'], timeperiod=20)
    dataframe['fast_ema'] = ta.EMA(dataframe['close'], timeperiod=10)
    dataframe['slow_ema'] = ta.EMA(dataframe['close'], timeperiod=50)
    dataframe['rsi'] = ta.RSI(dataframe['close'], timeperiod=14)
    macd, macdsignal, macdhist = ta.MACD(dataframe['close'])
    dataframe['macd'] = macd
    return dataframe
  • --indicators1 会绘制在主图(价格图)上,比如 EMA 线。
  • --indicators2 会绘制在副图中,比如 RSI、MACD。

完整示例:

bash 复制代码
freqtrade plot-dataframe \
  --config user_data/config.json \
  --strategy MyStrategy \
  --timerange 20230101-20230201 \
  --indicators1 close ema fast_ema slow_ema \
  --indicators2 rsi macd
❗注意:

这些指标名称必须是你在策略类的 populate_indicators() 方法中通过 ta 或自定义计算出来并添加进 dataframe 的列名(即 DataFrame 的列名)。否则,它们不会显示在图表上。

  • 这些名称必须和你 dataframe 中的列名完全一致。
  • 否则运行不会报错,但图表不会显示你想看的线。
  • 指标需先在策略的 populate_indicators() 中定义,否则不会生效。

💾 4. 导出为 HTML / PNG

默认输出为 HTML 文件,如需指定:

bash 复制代码
--exportfilename user_data/plot/myplot.html

如需导出 PNG(静态图):

bash 复制代码
--exportfilename user_data/plot/myplot.png

📌 注意:导出 PNG 需要额外安装如 Puppeteer 或 headless Chrome,初学者建议使用 HTML 格式查看。

🐳 5. Docker 环境运行示例

在 Docker 中使用该命令如下:

bash 复制代码
docker compose run --rm freqtrade plot-dataframe \
  --config /quants/freqtrade/user_data/config.json \
  --strategy MyStrategy \
  --timerange 20230101-20230201

确保 docker-compose.yml 中正确挂载了 /quants/freqtrade/user_data 目录。

✅ 6. 使用建议

用途 方法
检查策略逻辑是否合理 查看买卖点是否在合适位置
辅助调试 比对指标与信号关系
策略分享 生成图表后输出为 HTML,方便演示
评估指标表现 同时绘制多个指标看是否冗余

📌 总结

plot-dataframe 是 Freqtrade 提供的可视化利器,尤其适合调试复杂策略和验证买卖逻辑。

推荐使用流程:
  1. 回测策略:
bash 复制代码
freqtrade backtesting \
  --config user_data/config.json \
  --strategy MyStrategy \
  --timeframe 15m \
  --timerange 20220101-20230101
  1. 绘制图表:
bash 复制代码
freqtrade plot-dataframe \
  --config user_data/config.json \
  --strategy MyStrategy \
  --timerange 20250601-20250626
  1. 分析图表:
  • 判断策略买入是否太早/太晚?
  • 是否频繁误报信号?
  • 各种指标是否有效? 掌握 plot-dataframe,从此策略优化有据可依、调优更高效!
相关推荐
杨DaB14 分钟前
【SpringMVC】拦截器,实现小型登录验证
java·开发语言·后端·servlet·mvc
修己xj6 小时前
RustFS:高性能文件存储与部署解决方案(MinIO替代方案)
github
努力的小雨7 小时前
还在为调试提示词头疼?一个案例教你轻松上手!
后端
魔都吴所谓7 小时前
【go】语言的匿名变量如何定义与使用
开发语言·后端·golang
陈佬昔没带相机7 小时前
围观前后端对接的 TypeScript 最佳实践,我们缺什么?
前端·后端·api
自学也学好编程8 小时前
【工具】jsDelivr CDN完全指南:免费高速的开源项目CDN服务
学习·github
Livingbody9 小时前
大模型微调数据集加载和分析
后端
qianmoQ9 小时前
GitHub 趋势日报 (2025年07月29日)
github
Livingbody9 小时前
第一次免费使用A800显卡80GB显存微调Ernie大模型
后端
穗 禾10 小时前
github与git新手教程(快速访问github)
网络·git·github