使用cli.py在命令行内运行NTQ

CLI 使用说明

NTQ 的所有操作都通过命令行完成——更新数据、跑回测、扫描机会、算标签。入口是项目根目录的 cli.py。

python cli.py -h    # 查看所有命令

注意:文档最后有使用cli的一个端到端的例子

所有命令

策略相关

缩写

全称

做什么

s

strategy_simulate

完整回测链路(价格因子 → 组合)

se

strategy_enumerate

枚举阶段(扫描哪些股票有机会)

sp

strategy_price_factor

价格因子阶段(行情回放)

so

strategy_portfolio

组合阶段(资金管理)

sa

strategy_analyze

归因报告

sdv

strategy_delete_version

删除某个版本的回测产物

spn

strategy_pin_version

固定某个版本,避免被自动清理

sup

strategy_unpin_version

取消固定

ex

export_strategy

导出策略为 zip 交流包

im

import_strategy

导入策略 zip 包

策略命令通用参数:

  • --strategy <name>:指定策略名。不指定则对全部已启用策略执行
  • -f / --force:强制重跑,忽略缓存

版本管理命令的参数格式是 策略名:版本号,比如:

python cli.py spn --strategy my_strategy:5
python cli.py sdv --strategy my_strategy:3

 

数据与标签

缩写

全称

做什么

r

renew

更新数据源行情

t

tag

执行标签计算

—

export_adj_factor

导出复权因子事件 CSV

标签命令的参数:

python cli.py t                           # 跑所有已启用的标签场景
python cli.py t --scenario stock_activity # 只跑这一个
python cli.py t --list                     # 列出所有已发现的标签
python cli.py t --dry-run                 # 只算不落库
python cli.py t --entity-limit 10          # 只跑前 10 只股票(调试用)

 

系统命令

缩写全称做什么
idimport_data导入初始数据包(仅首次)
uupdate检查并升级 core
vversion显示版本号
python cli.py v        # 看版本
python cli.py u        # 检查更新

 

从模版新建

# 新建一个策略
python cli.py -n my_strategy

# 新建一个标签场景
python cli.py t -n my_tag

-n 是全局参数,放在哪个命令后面就创建对应类型的东西。

 

全局参数

参数作用
-f / --force强制执行,忽略缓存或跳过确认
-n / --new从模版新建,后跟路径名
--verbose详细日志输出

常见用法

第一次使用

python cli.py import_data     # 导入初始数据
python cli.py r               # 更新行情
python cli.py s --strategy my_strategy   # 跑回测
python cli.py sa --strategy my_strategy  # 看报告

 

日常扫描

python cli.py r               # 更新行情
python cli.py c --strategy my_strategy   # 扫描机会

c 是 scan 的缩写。不指定策略则扫描所有已启用策略。

 

只重跑某个阶段

# 改了策略参数,只重跑组合阶段
python cli.py so --strategy my_strategy -f

-f 强制忽略缓存,否则如果输入没变会直接复用上次结果。

 

分享策略

# 导出
python cli.py ex my_strategy -o ./my_strategy.zip

# 对方导入
python cli.py im ./my_strategy.zip

导入时加 --skip-existing 可以跳过已存在的策略,加 --dry-run 可以模拟导入不实际执行。

一个完整的案例:从零跑通一次策略回测

你刚装好 NTQ,写了一个叫 my_strategy 的策略。现在要从零跑一次完整回测,看看结果。

 

第一步:导入数据

第一次使用需要导入初始数据包:

python cli.py import_data

这会导入 initialization/data 下的数据包到数据库。只需执行一次,重复执行会提示已导入。

 

第二步:更新最新行情

初始数据可能不是最新的,更新一下:

python cli.py renew

这会调用你配置的数据源拉取最新行情。如果你有多个数据源,可以指定只更新某一个:

python cli.py renew tushare

 

第三步:跑回测

NTQ 的回测分三个阶段:枚举 → 价格因子 → 组合。日常使用直接跑完整链路:

python cli.py s --strategy my_strategy

s 是 strategy_simulate 的缩写,会按顺序执行价格因子和组合两个阶段。如果只想单独跑某个阶段:

# 只跑枚举(扫描哪些股票有机会)
python cli.py se --strategy my_strategy

# 只跑价格因子(行情回放)
python cli.py sp --strategy my_strategy

# 只跑组合(资金管理)
python cli.py so --strategy my_strategy

 

第四步:看归因报告

回测跑完之后,生成归因报告看看策略表现:

python cli.py sa --strategy my_strategy

可以指定对比某个历史版本:

python cli.py sa --strategy my_strategy --baseline-version 3

 

第五步:扫描当前机会

回测验证策略有效后,用它扫描今天的市场有没有机会:

python cli.py scan --strategy my_strategy

如果数据还没更新到最新,可以用演示模式先跑:

python cli.py scan --strategy my_strategy --demo