NTQ 不只有命令行。如果你更喜欢用鼠标操作,Web UI 提供了和命令行同等功能的图形界面——跑回测、看报告、扫描机会、管理策略,全都能在浏览器里完成。
一个完整的案例:用 Web UI 跑一次策略回测
第一步:启动 UI
在项目根目录下运行:
python launcher.py启动后浏览器会自动打开 http://127.0.0.1:8888。如果浏览器没有自动弹出,手动访问这个地址就行。
第二步:创建策略
在左侧导航点击"策略工作台",看到策略列表页面。点击"新建策略",填写策略名称,系统会从模版生成一份初始代码。你可以直接在页面上编辑策略代码和 settings 配置。
第三步:跑回测
进入策略详情页,看到回测的三步流水线:枚举 → 价格因子 → 组合。
- 点击"完整模拟"会依次执行价格因子和组合两个阶段
- 也可以单独点某个阶段只跑那一步
- 运行过程中页面实时显示进度
第四步:看报告
回测跑完后,点击"归因报告"查看策略表现。报告包括收益曲线、持仓明细、风险指标等。如果之前跑过其他版本,可以选两个版本做对比。
第五步:扫描机会
切换到"机会扫描"页面,选择策略,点击"开始扫描"。系统用最新行情跑一遍策略,列出当前市场上有信号的机会。结果也可以直接在页面上看,不需要去翻 CSV。
其他功能
策略管理
策略列表页支持:启用/禁用、克隆、删除。禁用的策略不会被批量扫描和批量回测选中。
高级功能
"高级功能"页面提供:
- 数据源管理:配置和更新数据源
- 数据契约浏览:查看所有内置和自定义的数据契约
- 数据表管理:查看已有表结构
- 标签工作台:创建和管理标签场景
设置
"设置"页面提供:
- 数据库配置:切换 DuckDB / MySQL / PostgreSQL
- 运行参数:调整 worker 并行度、内存限制
- 环境连接:数据库连接测试
启动模式
模式 | 命令 | 端口 | 用途 |
生产模式 | python launcher.py | 8888 | 日常使用,BFF 托管前端 |
开发模式 | python launcher.py -d | 8000 + 8888 | 修改前端代码时热更新 |
开发模式下前端运行在 8000 端口(支持热更新),BFF API 仍然在 8888。日常使用不需要开发模式,python launcher.py 就够了。
开发模式下的UI需要安装NodeJS并且在前端目录下执行npm install
关闭 UI
在终端按 Ctrl+C 即可停止。如果端口没有正常释放(比如进程异常退出),手动清理:
python devcli.py uk这会释放 8000 和 8888 两个端口。如果只想释放其中一个:
python devcli.py uk --port 8888加 --ntq-only 只杀 NTQ 相关进程,不影响其他占用端口的程序。
配置
配置项 | 环境变量 | 默认值 | 说明 |
BFF 监听地址 | NTQ_BFF_HOST | 127.0.0.1 | 改成 0.0.0.0 可远程访问 |
BFF 端口 | NTQ_BFF_PORT | 8888 | 如果端口冲突可以改 |
自动打开浏览器 | BROWSER | 自动打开 | 设为 none 关闭自动打开 |
使用方式:
# 改端口
NTQ_BFF_PORT=9000 python launcher.py
# 不自动打开浏览器
BROWSER=none python launcher.py
# 允许远程访问
NTQ_BFF_HOST=0.0.0.0 python launcher.py