Skip to content
typhonunPublic

About

面向 Freqtrade 的多实例量化交易机器人。提供 DCA/网格策略配置、历史回测、实时监控与统一风控的 Web UI 界面。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

149 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NexusBot

面向 Freqtrade 的多实例量化交易控制台

用一个 Web 界面管理多个交易机器人:配置 DCA 或网格策略、运行回测、监控持仓、追踪交易事件,并执行统一风控。

快速了解 · 功能预览 · 核心能力 · 开始使用


NexusBot 是什么

Freqtrade 负责执行交易策略,NexusBot 负责把多个 Freqtrade 实例组织起来,让策略从“写好并运行”变成一个更容易使用的完整工作流:

配置策略 → 准备数据 → 回测验证 → 启动机器人 → 实时监控 → 复盘与调整

它适合希望使用 Web 界面管理量化交易的个人用户和小型团队,尤其适合同时运行多策略、多交易对或多空方向的场景。

NexusBot 可以帮你解决什么

  • 不再为每个机器人手动维护配置文件、端口和启动命令;
  • 不再在多个终端和日志文件之间切换查看持仓;
  • 不再只看最终收益,可以在 K 线上复盘每次加仓、减仓和退出;
  • 不再让回测参数与运行参数分离,保存的配置可以直接用于回测和启动;
  • 不再只依赖单笔交易止损,可以按机器人整体收益执行止盈、止损和追踪止损。

NexusBot 是交易管理工具,不承诺收益,也不构成投资建议。接入真实账户前,请先使用 dry_run,并自行验证策略、手续费、滑点和交易所配置。

核心能力

多实例管理

每个 bot 都是独立的运行单元,可以单独配置、启动、停止、重启和查看状态。一个 bot 可以按需启用 Long、Short,两个方向使用独立的 Freqtrade 进程:

Bot #N
├── Long  → 独立端口 → 独立配置 → 独立数据库与日志
└── Short → 独立端口 → 独立配置 → 独立数据库与日志
  • 实例之间互不覆盖,适合运行多个策略和参数组合;
  • 配置、日志、交易记录按 bot 隔离;
  • 启动后自动检查 Freqtrade RPC 是否可用;
  • 支持后台启动、状态查询、方向重启和健康监控;
  • 可按交易所账户、交易对、资金和杠杆创建不同 bot。

参数可配置化

策略参数通过 Web 表单统一管理,并保存为可复用的 bot 配置:

配置范围 可配置内容
交易基础 交易对、资金、单笔金额、杠杆、最大持仓
DCA 机器人 入场指标、分层补仓、金额/百分比模式、冷却时间
网格机器人 价格上下限、网格数量、等差/等比间距、启动模式
退出规则 ROI 阶梯、止损、DCA止盈、时间止损
行情保护 高周期趋势过滤、Pump 保护、单交易对仓位上限
实例风控 bot 级止盈、止损、追踪止损和触发后自动停止

配置流程:

Web 表单 → 保存参数 → 生成 bot/方向配置 → 回测 → 启动实例

DCA 机器人

DCA 机器人适合希望按价格回撤分层补仓、等待反弹退出的交易场景:

  • 分层补仓:按价格偏移触发下一层补仓,支持自动或手动层级;
  • 仓位控制:支持固定金额或账户百分比,配置基础金额、倍率、最大次数和冷却时间;
  • 入场过滤:可使用 RSI、KDJ、MACD、EMA 和布林带组合条件;
  • 多级止盈:支持 ROI 阶梯、浮亏反弹止盈和时间止损;
  • 高周期保护:支持 4h、12h、1d 趋势过滤,减少逆势开仓和补仓。

网格机器人

网格机器人面向单个交易对,在设定的绝对价格区间内自动低买高卖,适合有明确震荡区间判断的场景。与 DCA 机器人不同,网格机器人不依赖 DCA 分层或趋势加仓,而是围绕预先生成的网格线管理多个网格仓位。

  • 价格区间:设置网格下限价和上限价,系统在区间内生成网格线;
  • 网格间距:支持等差和等比两种间距算法,网格数量可配置;
  • 网格交易:多头价格下跌触发加仓、上涨到相邻网格止盈;空头逻辑相反;
  • 启动方式:支持网格触发、触发价启动和立即启动;
  • 仓位限制:支持最大同时持有网格数,并按资金和网格数量计算每格规模;
  • 区间止损:可配置价格跌破下沿时清空多头仓位,作为网格区间失效保护;
  • 网格预览:配置页面展示网格线、格距、单格预期利润和预计投入,便于启动前检查;
  • 单交易对运行:一个网格 bot 聚焦一个交易对,减少多交易对共用价格区间造成的配置歧义。

网格机器人的典型流程:

设置价格区间 → 选择间距与启动模式 → 预览网格 → 回测 → 启动机器人

回测与数据准备

回测和历史数据下载由 NexusBot 统一管理:

  • 检查本地 K 线是否覆盖交易对、周期和时间范围;
  • 缺少数据时触发下载,并显示任务进度;
  • 后台执行 Freqtrade,不阻塞 Web 请求;
  • 支持查询、取消和查看任务日志;
  • 对配置错误、数据缺失、进程异常和无回测报告明确提示;
  • 使用与机器人相同的配置,减少回测与实际运行之间的偏差。

实时监控与交易复盘

  • 汇总多个 bot 的账户、持仓、已平仓收益和浮动收益;
  • 查看资金曲线、收益曲线、保证金和风险暴露;
  • 按 bot、方向和交易对筛选持仓;
  • 支持手动开仓、平仓以及机器人启停;
  • 将交易事件保存并映射到 K 线,方便定位每次策略动作。

统一风控

风控以 bot 为单位计算“轮次收益”,同时考虑已实现收益和浮动收益:

  • 按金额或收益率触发止盈、止损;
  • 支持盈利回撤和亏损方向的追踪止损;
  • 触发后执行全量平仓,并等待持仓确认清空;
  • 可按配置自动停止 bot;
  • 避免同一个风控条件重复触发。

工作方式

┌────────────────────┐
│  Vue Web 控制台     │  配置 / 仪表盘 / K线 / 回测
└─────────┬──────────┘
          │ REST API
┌─────────▼──────────┐
│  FastAPI 管理服务   │  bot / 配置 / 回测 / 风控 / 监控
└────┬──────────┬────┘
     │          │
┌────▼─────┐ ┌──▼──────────────────┐
│ 本地数据  │  │ Freqtrade 实例池    │
│ 用户/事件 │  │ 每个 bot × 方向独立  │
└──────────┘ └────────────────────┘

NexusBot 使用 Vue 3、FastAPI、SQLite、SQLAlchemy、APScheduler 和 Freqtrade 构建。它不替换 Freqtrade 的交易执行能力,而是提供配置、编排、观测和风控层。

快速开始 (Quick Start)

请按照以下步骤在本地运行 NexusBot。

环境准备

请确保您的系统已安装以下软件:

创建虚拟环境

# 克隆仓库到本地
git clone https://github.com/typhonun/NexusBot
cd NexusBot

# 创建 Python 虚拟环境
python -m venv venv

# 激活虚拟环境 (Windows)
venv\Scripts\activate

安装 Python 依赖

# 安装 Freqtrade 相关依赖
cd freqtrade
pip install -r requirements.txt
# 将 Freqtrade 作为包安装到当前虚拟环境
pip install -e .
cd ..

# 安装 NexusBot 后端依赖
cd backend
pip install -r requirements.txt

安装前端依赖

cd frontend
pnpm install

启动后端

# 如果虚拟环境未激活,请先运行 venv\Scripts\activate
venv\Scripts\activate
cd backend
uvicorn app.main:app --reload --port 9000

启动前端

cd frontend
pnpm dev

打开浏览器访问 http://localhost:5173,即可进入 NexusBot 控制台。创建 bot 后配置交易对、方向、资金和策略参数。

项目结构

NexusBot/
├── backend/
│   ├── app/api/                 # bot、回测、图表、持仓、风控、日志接口
│   ├── app/services/            # 实例、进程、配置、回测、RPC、风控服务
│   ├── app/models/              # 用户、交易事件、收益和资金快照
│   └── config/settings.py       # 项目路径与运行配置
├── frontend/src/
│   ├── features/                # dashboard、策略配置等功能模块
│   ├── views/                   # 仪表盘、持仓、图表、bot 和设置页面
│   ├── api/                     # 后端接口封装
│   └── stores/                  # Pinia 状态管理
└── freqtrade/user_data/
    ├── strategies/              # DCA/网格策略基类、方向策略和事件记录器
    │   ├── DcaTpBotBase.py      # DCA 机器人基础策略
    │   └── GridBotBase.py       # 网格机器人基础策略
    ├── bots/{bot_id}/           # 实例配置、日志和交易数据库
    └── config_template.json     # Freqtrade 配置模板

免责声明

NexusBot 仅用于软件工程实践、量化研究和学习交流,不保证任何收益,也不构成投资建议。加密货币交易具有高风险,使用者应自行承担 API Key、资金、策略和交易风险。

如果 NexusBot 对你有帮助,欢迎点一个 Star。

About

面向 Freqtrade 的多实例量化交易机器人。提供 DCA/网格策略配置、历史回测、实时监控与统一风控的 Web UI 界面。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages