Skip to content

🖥️ 统一管理多个 Freqtrade 策略的 WebUI 页面实战指南

本文将详细讲解如何通过一个主端口统一访问多个 Freqtrade 策略实例的 Web UI 页面,提升多策略部署的可视化管理效率。

✳️ 背景说明

在使用 Freqtrade 多策略部署时,通常我们会:

  • 为每个策略设置独立的配置文件(config.json);
  • 分别运行多个实例(进程);
  • 每个实例监听独立的 Web UI 端口。

例如,默认可能会这样设置:

策略名称配置文件名Web UI 端口
Test_MACD_Strategyspot-macd-config.json9999
Test_EMA_Strategyspot-ema-config.json9998
Test_RSI_Strategyspot-rsi-config.json9997

这样做虽然清晰,但带来了一个问题:访问管理界面时必须记住多个端口,不利于统一控制和查看。

✅ 目标

我们希望实现:

只通过一个统一端口(如 localhost:9999),即可访问所有策略实例的 WebUI 页面。

🧩 原理:通过 CORS 跨域授权访问

Freqtrade 的 Web UI 是基于 FastAPI 开发的,支持 CORS 跨域配置,允许来自其他端口或源的访问。

只要我们:

  1. 在子策略实例的配置中设置 CORS_origins: ["http://localhost:9999"]
  2. 并保持主控策略运行在 9999 端口上

即可实现:9999 作为统一入口,控制和访问其他端口实例的 WebUI 页面。

🛠 配置步骤详解

① 主控策略(如 Test_MACD_Strategy)

json
// user_data/spot-macd-config.json
"api_server": {
  "enabled": true,
  "listen_ip_address": "127.0.0.1",        // 本地访问;如需远程,改成 "0.0.0.0"
  "listen_port": 9999,                     // 主控端口
  "verbosity": "error",
  "enable_openapi": false,
  "jwt_secret_key": "your_master_secret",  // 可自定义
  "ws_token": "master_ws_token",           // 可自定义
  "CORS_origins": ["http://localhost:9999"],
  "username": "admin",
  "password": "admin"
}

② 子策略(如 Test_EMA_Strategy)

json
// user_data/spot-ema-config.json
"api_server": {
  "enabled": true,
  "listen_ip_address": "127.0.0.1",
  "listen_port": 9998,                        // 与主控不同端口
  "verbosity": "error",
  "enable_openapi": false,
  "jwt_secret_key": "ema_secret",            // 可以不同
  "ws_token": "ema_ws_token",
  "CORS_origins": ["http://localhost:9999"], // 授权主控访问
  "username": "ema",
  "password": "ema"
}

③ 子策略(如 Test_RSI_Strategy)

json
// user_data/spot-rsi-config.json
"api_server": {
  "enabled": true,
  "listen_ip_address": "127.0.0.1",
  "listen_port": 9997,
  "verbosity": "error",
  "enable_openapi": false,
  "jwt_secret_key": "rsi_secret",
  "ws_token": "rsi_ws_token",
  "CORS_origins": ["http://localhost:9999"],
  "username": "rsi",
  "password": "rsi"
}

这样就能看到同时多个策略在运行啦!

✅ 所有实例都配置了:

  • 独立端口(避免冲突)
  • 主控 WebUI 授权访问子策略端口(通过 CORS_origins)
  • 自定义用户和密码(支持不同登录权限)
  • 支持本地或远程访问(可设置 本地访问设置127.0.0.1 远程访问设置0.0.0.0)

🚀 启动命令

bash
# 启动主控策略(WebUI 入口)
freqtrade trade \
  --config user_data/spot-macd-config.json \
  --strategy Test_MACD_Strategy

# 启动 EMA 子策略
freqtrade trade \
  --config user_data/spot-ema-config.json \
  --strategy Test_EMA_Strategy

# 启动 RSI 子策略
freqtrade trade \
  --config user_data/spot-rsi-config.json \
  --strategy Test_RSI_Strategy

每条命令需在不同终端窗口运行,或用 tmux / screen / nohup 保持后台运行。

✅ 访问 WebUI 页面

打开浏览器,统一访问:

http://localhost:9999

你将看到一个 Web 控制面板,能管理并切换不同策略实例。

🌐 【重要】远程访问配置说明

默认情况下:

json
"listen_ip_address": "127.0.0.1"

代表 仅允许本机访问,也就是说:

  • 你只能在部署 Freqtrade 的那台机器本地打开 WebUI;
  • 浏览器地址栏只能访问 http://localhost:端口,远程 IP 无法访问。

✅ 若你需要从其他设备远程访问 WebUI(如服务器部署 + 本地浏览器查看),需进行如下修改:

json
"listen_ip_address": "0.0.0.0"

这表示:

监听所有网卡地址,支持任何来源访问(包括公网 IP、本地局域网 IP 等)。

示例修改:

json
"api_server": {
  "enabled": true,
  "listen_ip_address": "0.0.0.0",  // ← 开启远程访问
  "listen_port": 9999,
  ...
}

🚨 安全提醒

如果你开启了 0.0.0.0:

  • 强烈建议启用 username / password 登录保护;
  • 或者使用防火墙(如 UFW、iptables)限制 IP 访问;
  • 或部署反向代理(如 nginx)做访问控制与 HTTPS 加密;

🧪 示例远程访问方式

服务器地址为 192.168.1.100,配置为 listen_ip_address: 0.0.0.0 后:

浏览器访问地址为:

http://192.168.1.100:9999

即可访问主控 Web UI 页面 ✅

🌐 补充说明

项目说明
CORS_origins子策略必须授权主控端口访问
统一登录入口每个实例可自定义登录名与密码
多策略独立配置每个策略运行、K线数据、交易记录完全隔离
本地 vs 远程若需远程访问,设置 listen_ip_address = "0.0.0.0" 并开放防火墙端口

✅ 总结

通过简单的配置与跨域授权机制,我们可以:

  • 🚀 同时运行多个策略实例(独立运行、互不干扰)
  • 🧠 用一个 WebUI 入口(如 9999)统一管理所有策略
  • 🔐 为每个策略设置独立登录权限与端口
  • 🔧 支持远程或本地部署

这让多策略部署不再混乱,为策略量化管理和实盘监控带来极大便利。