使用用户界面(web UI)来运行NTQ

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