easy-tdx 回测系统完全上手手册

从零开始,手把手教你在浏览器里完成股票策略回测

适用版本 v1.18.0 适用系统 Windows 10 / 11 读者:零基础新手

目录

  1. 第一章 准备工作:安装两个软件
  2. 第二章 下载项目并启动系统
  3. 第三章 第一次回测:验证策略靠不靠谱
  4. 第四章 参数寻优:让电脑帮你找最佳参数
  5. 第五章 怎么确认寻优结果是不是真的好
  6. 第六章 保存策略 + 策略库:把好策略存下来
  7. 第七章 看懂评级徽章:S/A/B/C/D 五档
  8. 第八章 看懂 19 项绩效指标
  9. 第九章 看懂交易记录:怎么跟买跟卖
  10. 第十章 多股票组合分仓:不把鸡蛋放一个篮子
  11. 第十章补 充:保存策略组合 + 一键看今日信号(新)
  12. 第十一章 常见问题与排错
  13. 第十二章 重要提醒(必读)

第一章 准备工作:安装两个软件

easy-tdx 的回测系统需要两个软件配合:Python(负责算数据和回测)和 Node.js(负责显示网页界面)。这两个软件都是免费的,我们一步一步来。

为什么需要两个? 简单理解:Python 是"厨房",负责做菜(算数据、跑回测);Node.js 是"服务员",负责把菜端到你面前(显示网页)。缺一个都不行。

1.1 安装 Python(必须 3.10 或更高版本)

1下载 Python

打开浏览器,访问官网下载页:
https://www.python.org/downloads/

页面会自动推荐 Windows 版本,点黄色按钮 "Download Python 3.12.x"(3.12 是目前最稳定的版本)。如果推荐的是 3.13 也可以。

2运行安装包,一定要勾选 "Add Python to PATH"

双击下载的安装包,看到第一个界面时,最下方有一个复选框 "Add python.exe to PATH",必须勾上!这是新手最容易漏的一步,漏了后面所有命令都跑不了。

勾上之后,点 "Install Now",等几分钟安装完成。

[此处应放截图:Python 安装界面,红色圈出 "Add Python to PATH" 复选框]
3验证安装成功

按键盘 Win + R,输入 cmd 回车,打开黑色命令行窗口。在里面输入:

python --version

如果显示 Python 3.12.x(数字无所谓,3.10 以上都行),就成功了。如果提示"不是内部或外部命令",说明上一步 PATH 没勾,请卸载重装一次。

1.2 安装 Node.js(选 LTS 长期支持版)

1下载 Node.js

访问官网:
https://nodejs.org/zh-cn

下载左边那个 "LTS"(长期支持版),不要下右边那个最新尝鲜版。LTS 更稳定,新手用它不会出怪问题。版本号一般是 20.x 或 22.x。

2一路下一步安装

双击安装包,全部点"下一步",不用改任何选项,点"Install"等完成。

3验证安装

再次打开命令行(按 Win + R 输入 cmd),输入:

node --version

显示 v20.x.x 或更高版本就成功了。

两个软件都装好了?恭喜!最难的安装部分已经过去了一大半。

第二章 下载项目并启动系统

easy-tdx 是一个开源项目,代码托管在 GitHub。我们需要把代码下载到本地,然后启动两个服务。

2.1 下载项目代码

1下载 ZIP 压缩包(推荐新手)

打开浏览器访问:
https://github.com/handsomejustin/easy_tdx

点页面右上角绿色的 "Code" 按钮,选 "Download ZIP"。下载后解压到 D 盘根目录,建议重命名为 easy_tdx,完整路径就是 D:\easy_tdx

路径千万别用中文! 不要解压到"我的文档"或"桌面",因为 Windows 用户名如果是中文,后续安装会出各种莫名其妙的错。直接放 D:\easy_tdx 最稳。

2.2 安装 Python 依赖(只装一次)

1打开命令行,进入项目目录

Win + R,输入 cmd 回车。然后输入:

# 进入项目目录(根据你的实际路径调整)
D:
cd \easy_tdx
2安装项目本体 + Web 服务依赖
# 一次性安装项目本体和 Web 服务所需的所有 Python 依赖
# 包括 FastAPI、Uvicorn、pandas、numpy 等
pip install -e ".[web]"

这步会下载很多文件(约 100MB),需要等 3 到 5 分钟。看到最后有 Successfully installed ... 就成功了。

如果下载很慢怎么办? 可以临时用国内镜像源加速:
pip install -e ".[web]" -i https://pypi.tuna.tsinghua.edu.cn/simple
3验证安装成功
# 看到帮助信息就说明安装好了
easy-tdx --help

2.3 安装前端依赖(只装一次)

1进入 web-ui 目录,装依赖
# 还在项目目录里,进入前端目录
cd web-ui

# 安装前端依赖(第一次会下载约 200MB,耐心等 5 分钟)
npm install
npm install 很慢怎么办? 用淘宝镜像加速(只执行一次,以后都快):
npm config set registry https://registry.npmmirror.com
npm install

2.4 启动系统(每次使用都要做)

这是新手最容易迷糊的地方:这个系统需要同时开两个命令行窗口,一个跑后端(算数据的厨房),一个跑前端(显示网页的服务员)。

第一个窗口:启动后端

1新开一个命令行窗口

Win + R 输入 cmd 回车,进入项目根目录:

D:
cd \easy_tdx
2启动后端服务
easy-tdx serve --port 8000

看到类似下面的输出就成功了:

INFO:     Uvicorn running on http://0.0.0.0:8000
INFO:     Application startup complete.

这个窗口不要关! 它一直开着,前端才能取到数据。

第二个窗口:启动前端

1再开一个命令行窗口

Win + R 输入 cmd 回车,进入前端目录:

D:
cd \easy_tdx\web-ui
2启动前端开发服务器
npm run dev

看到这样的输出:

  VITE v8.x.x  ready in 500 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
3打开浏览器,访问网页

打开 Chrome 或 Edge 浏览器,地址栏输入:
http://localhost:5173

看到顶部导航栏有"单标的回测 / 组合回测 / 参数寻优 / 结果对比 / 策略库"五个标签,就大功告成了!

关机后下次怎么用? 不用重新装,只要重复 2.4 节这两个步骤:开两个 cmd 窗口,一个跑 easy-tdx serve --port 8000,一个跑 npm run dev,然后浏览器打开 http://localhost:5173 就行。

第三章 第一次回测:验证策略靠不靠谱

现在你已经打开了浏览器,进入"单标的回测"页面(就是首页 /)。我们用一只大家熟悉的股票演示:贵州茅台(SH:600519)。

3.1 界面布局

整个页面分左右两栏:

3.2 第一次回测:跑个双均线交叉策略

我们从上到下填配置:

1行情数据区
  • 市场:选 沪市(SH)
  • 代码:填 600519(贵州茅台)
  • 周期:选 DAY(日线,新手只用日线就够)
  • 开始日期:2020-01-06(默认值,不动)
  • 结束日期:默认就是今天
2策略区
  • 下拉选 "双均线交叉"(ma_cross)
  • 参数会自动出现两个:fast(快线)和 slow(慢线)
  • 用默认值 fast=5, slow=20 先跑
3资金与成本区

新手默认值不用动:

  • 初始资金 1,000,000(100 万模拟)
  • 佣金率 0.0003(万三,券商普遍费率)
  • 滑点 0(可以先不管)
  • 成交价:开盘价(下一根开盘成交)
4点底部蓝色按钮 "开始回测"

等几秒,右侧依次出现四块东西:

  1. K 线主图:红色三角形 ▲ 是买入点,绿色钉子 ▼ 是卖出点
  2. 净值曲线 + 回撤:上面那条线是你的资金变化,下面填充的是回撤(从最高点跌了多少)
  3. 评级徽章:S/A/B/C/D 五档(详见第七章)
  4. 绩效指标表:19 项指标(详见第八章)
  5. 成交记录表:每一笔买卖的明细

3.3 怎么读这个结果

先别急着看那一堆数字,先看图。

看 K 线主图

红三角密集的地方,说明策略在那里频繁买入。理想情况下,红三角(买入)应该出现在股价低点附近,绿钉(卖出)出现在高点附近。如果买卖点和股价走势明显相反,说明这个策略在这个股票上不灵。

看净值曲线

如果净值曲线一路向右上方走,说明赚钱了。如果一路向下,或者大幅震荡,说明策略不行。同时观察下方的回撤填充:回撤越大,说明中途亏得越狠,套牢风险越大。

新手最大的误区:只看"总收益率"是不是高。总收益 200% 的策略如果最大回撤 60%,意味着中途你的钱从 100 万跌到 40 万,普通人根本扛不住会割肉离场。评级徽章就是为了帮你一眼识别这种情况。

第四章 参数寻优:让电脑帮你找最佳参数

双均线策略的 fast 和 slow 用 5 和 20 不一定最好。让电脑把所有组合都试一遍,找出最赚钱的那一组,这就是"参数寻优"。

4.1 进入寻优页面

点顶部导航的 "参数寻优" 标签。

4.2 配置寻优

1行情数据:跟单标的回测一样,填贵州茅台 SH:600519,日线,2020-01-06 至今。
2选策略:下拉选 "双均线交叉"(ma_cross)。
3勾选要寻优的参数

在"寻优参数"区,你会看到 fast 和 slow 两个参数。每个参数右边有个复选框。

  • 勾选 fast,取值填:5, 10, 15, 20, 25(逗号分隔)
  • 勾选 slow,取值填:20, 30, 40, 50, 60

下方会实时显示"网格点数 = 25"(5 × 5 = 25 种组合)。网格点数上限是 200,超过会被拒绝。

4点 "开始寻优"

等几秒到几十秒(取决于网格点数),右侧出结果。

4.3 看寻优结果

结果区有三块:

最优结果摘要

顶部显示评级徽章、最佳参数组合、总收益率、夏普、最大回撤。比如可能显示:

评级 [B] | {"fast": 10, "slow": 30} | 总收益 156% | 夏普 1.2 | 回撤 32%

参数热力图(只有 2 参数时才有)

一个颜色方格图,横轴是 fast,纵轴是 slow,颜色越红表示这个组合收益率越高。一眼能看出哪个区域好。

网格点排名表

所有 25 种组合按总收益降序排列,每行有评级徽章 + 各项指标。点最右边的"查看"按钮,会跳回单标的回测页,自动用这个参数组合跑一遍完整回测,看 K 线和净值曲线。

4.4 一键寻优所有策略(超实用)

页面上还有一个橙色按钮 "一键寻优所有策略"。点它,系统会用每个策略自带的预设参数网格,把所有 18 个内置策略都跑一遍寻优,然后给你一个全局排名。

这对不知道用哪个策略的新手特别有用:让电脑告诉你,这个股票上哪个策略历史表现最好。

等待不枯燥:投资大师名言轮播

一键寻优所有策略通常要跑 30 秒到几分钟(策略多、网格密就慢)。这段时间按钮文字会变成"一键寻优所有策略中…",右侧页面会出现一张名言卡片,每 3 秒随机轮播一条全球投资大师的话:

卡片顶部有一条橙色进度条循环填充,暗示"还在跑";底部有橙色脉动小点 + "后台寻优进行中,大师智慧伴你等待…"。等结果跑完,卡片自动消失,排名表正常显示。

这不是花架子。 等待 1 分钟最容易让人以为系统卡住、烦躁关掉。轮播名言既给"系统还在工作"的视觉反馈,又能让你趁等待学点投资大师的智慧。沉住气,慢慢变富。

第五章 怎么确认寻优结果是不是真的好

这是整本手册最重要的一章。 寻优出来的"最佳参数",很可能是过拟合:在历史数据上完美,实盘却亏成狗。新手最容易在这里栽跟头,以为找到了印钞机。

5.1 千万别只看"总收益最高"那一个

寻优排名表按总收益降序排,第一名往往收益最高但回撤也最大、交易最频繁。这种策略通常是"碰巧"赶上了某段大行情,换个时段可能就崩了。

正确的做法:看评级徽章,挑 B 档或更高的,而不是挑收益最高的。

5.2 评级徽章是最好的过滤器

寻优排名表每行都有一个评级徽章(S/A/B/C/D)。这个评级综合了六个维度,帮你过滤掉那些"虚胖"的高收益策略。具体含义见第七章。

原则:

5.3 怎么验证某个参数组合真的靠谱

假设你看中了 fast=10, slow=30 这个组合(B 档)。验证步骤:

1点"查看"跳到单标的回测页

系统会用这个参数组合自动跑一遍完整回测,你能看到 K 线、净值曲线、成交明细。

2看净值曲线是不是"稳步上行"

好的策略净值曲线应该稳步向上,回撤浅,恢复快。如果净值像过山车一样大起大落,说明不稳定。

3看最大回撤能不能接受

普通人能承受的最大回撤通常在 20% 到 30% 以内。如果你看到最大回撤 45%,意味着最坏的时候你的 100 万会跌到 55 万,你确定自己能扛住不割肉吗?

4看交易次数和胜率
  • 交易次数太少(< 10 次):说明样本不够,胜率不可信(系统会标"⚠ 交易样本有限")
  • 胜率低于 35%:意味着 3 笔里亏 2 笔,心态容易崩

5.4 终极验证:换个时间段再跑一遍

这是最关键的一步,但需要手动操作:

  1. 当前是 2020 年至今的全周期回测
  2. 把开始日期改成 2023-01-01(只测最近两年),看收益和回撤是否稳定
  3. 再改成 2020-01-06 至 2022-12-31(只测前三年),对比一下

如果三个时段表现都不错,这个策略相对靠谱。如果只在某个时段特别猛,其他时段拉胯,那就是过拟合,实盘会原形毕露。

新手记住一句话:宁可要一个"稳稳赚 50%"的策略,也不要一个"有时赚 300% 有时亏 70%"的策略。前者你能拿住,后者你一定会割在最坏的时候。

第六章 保存策略 + 策略库:把好策略存下来

好不容易找到一个好策略,关机就丢了多可惜。easy-tdx 提供了"策略库"功能,把策略永久存在本地数据库里。

6.1 保存策略

1在单标的回测或组合回测的结果区

右上角有一个 "💾 保存策略" 按钮,点它。

2填写弹窗
  • 名称:给策略起个好记的名字,比如"茅台双均线 10/30"
  • 标签(可选):逗号分隔,比如"白酒,长线"
  • 备注(可选):写为什么觉得它好,比如"近 5 年夏普 1.2,回撤 25%,心态稳"
3点"保存"

看到"✓ 已保存到策略库"就成功了。数据存在 C:\Users\你的用户名\.easy_tdx\strategies.db(SQLite 文件,重启电脑不丢)。

6.2 策略库页面

点顶部导航的 "策略库" 标签。

页面顶部有两个 Tab,把策略分成两类:

为什么要分 Tab? 策略存多了之后混在一起难找。单标的策略用于组合回测(勾选 N 个一起跑),组合策略用于一键看今日信号(直接重跑)。两类操作完全不同,分开放更清晰。切换 Tab 会清空勾选,避免跨 Tab 看不见的残留。

每个 Tab 里,你会看到对应类型的卡片,每张卡片显示:

每张卡片能做的事

6.3 多策略组合回测(策略库的杀手锏)

这是策略库最强大的功能。详见第十章。跑完之后还能把整个组合保存下来,下次一键看今日信号。

第七章 看懂评级徽章:S/A/B/C/D 五档

这是 v1.17.14 新增的功能,目的就是让普通人一眼判断"这个策略/品种适不适合经常参与"。

7.1 五档的含义

档位颜色含义适合普通人?
S金色长期持有体验优秀,回撤浅、胜率稳✅ 推荐经常参与
A绿色风险可控,套牢后能较快回本✅ 适合
B蓝色可参与但需择时,套牢回本有压力⚠️ 谨慎参与
C橙色风险偏高,长期套牢风险大⚠️ 不建议经常参与
D红色持有体验差,或系统亏损❌ 别碰
颜色遵循 A 股惯例:绿色代表好(涨),红色代表危险(跌),金色代表顶级。这和西方惯例相反,但符合中国股民直觉。

7.2 一个真实案例:为什么收益 126% 却是 D 档

有一只股票(京东方)用某策略回测,总收益率 126%,看起来很美。但仔细看:

系统给它评了 D 档。

为什么?因为普通人根本拿不住这种策略。它的高收益是靠少数几次大涨撑起来的,大部分时间在亏钱。等你熬不住割肉了,后面的大涨就和你无关了。这就是评级系统的价值:不被高收益迷惑,看穿持有体验的真相

7.3 评级看什么(不看收益率!)

评级故意不看总收益率,只看风险调整后的持有体验:

维度权重通俗解释
卡玛比率18%套牢后回本的难度,越高越容易回本
利润因子18%赚的钱总和 vs 亏的钱总和的比值,大于 1 才不亏
最大回撤17%从最高点跌多少,跌越深套越牢
胜率17%100 笔交易里赢几笔,普通人拿不住低胜率
夏普比率15%每承担 1 分风险换多少收益,通用指标
波动率15%价格上下抖动的程度,抖得越狠心越慌

7.4 一票否决规则

有些情况直接判低档,不管其他指标多好:

触发条件结果原因
利润因子 < 1直接 D系统实际在亏钱
最大回撤 > 60%直接 D深度套牢几乎无法回本
最大回撤 > 50%最高 B套牢很难回本
胜率 < 30% 且交易够多最高 C普通人拿不住
利润因子 < 1.2最高 B系统勉强盈亏平衡

7.5 关于"⚠ 交易样本有限"

如果你看到评级徽章旁边有个橙色标签 "⚠ 交易样本有限",意思是这只股票/策略在回测期间交易笔数少于 10 笔。

系统不会因此否定整个评级(长线策略本来就交易少,但净值曲线很健康)。它的处理方式是:把胜率和利润因子的权重降到 0,只看基于净值曲线的指标(夏普/卡玛/回撤/波动率)。这种处理对长线策略是公平的。

你看到这个标签时,知道"胜率这个数字不太靠谱,但其他指标可信"就行。

第八章 看懂 19 项绩效指标

回测结果区的绩效表分三组:收益、风险、交易。下面用大白话逐个解释。

8.1 收益类指标

总收益率

从开始到结束,你的钱涨了多少。1.2643 表示涨了 126.43%。这是最容易看懂但最容易被骗的指标。

年化收益

把总收益换算成"平均每年赚多少"。比如 6 年赚 100%,年化大约 12.2%。年化比总收益更公平,因为时间长短不同没法直接比。

夏普比率 Sharpe

每承担 1 分风险(波动)能换多少收益。一般认为:

  • < 0.5:不太行
  • 0.5 到 1:可以
  • 1 到 2:不错
  • > 2:优秀
索提诺比率 Sortino

夏普的升级版,只看"下跌的波动"(因为上涨的波动是好事)。同样越高越好,通常比夏普数值大一些。

卡玛比率 Calmar = 年化 / 最大回撤

这是套牢回本难度的最佳代理。卡玛越高,说明回撤越浅、收益越高,套牢后越容易回本。卡玛 > 1 算不错,> 2 算优秀。

8.2 风险类指标

最大回撤 Max Drawdown

最重要的风险指标。 从历史最高点跌到最低点的百分比。比如最大回撤 41%,意味着你曾经从 100 万跌到 59 万。

普通人能承受的极限:

  • < 15%:很稳
  • 15% 到 25%:可接受
  • 25% 到 35%:有压力
  • > 35%:很难拿住
  • > 50%:基本会割肉
回撤持续 Max DD Duration

从峰值跌到最深点经历了多少个交易日(bar)。数字越大,套牢时间越长。注意:这是"跌到最深"的时间,不是"跌下去再涨回来"的总时间。

波动率 Volatility

价格上下波动的剧烈程度,年化后的标准差。< 15% 算平稳,> 30% 算剧烈。

8.3 交易类指标

总交易数

整个回测期间买卖了多少次。少于 10 次说明样本不足(胜率不可信),多于 100 次说明交易太频繁(手续费会吃掉利润)。

盈利次数 / 亏损次数

赚的笔数和亏的笔数。两者加起来等于总交易数。

胜率 Win Rate

盈利次数 ÷ 总交易数。35% 意味着 100 笔里只赢了 35 笔。普通人 < 35% 会很难受。

盈亏比 / 利润因子 Profit Factor

总盈利金额 ÷ 总亏损金额(取绝对值)。< 1 表示亏 > 赚(系统亏损),1 到 1.5 算勉强,1.5 到 2 算健康,> 2 算优秀。

平均盈利 / 平均亏损

每笔赚钱交易平均赚多少,每笔亏钱交易平均亏多少。如果平均盈利 4%、平均亏损 2%,即使胜率只有 35%,整体也可能赚钱(因为赚的笔大,亏的笔小)。

最大盈利 / 最大亏损

最赚的一笔和最亏的一笔。如果最大亏损 > 10%,要警惕单笔爆雷风险。

平均持仓天数

每笔交易平均持有多久。< 5 天算短线,> 30 天算长线。这反映了策略的交易风格。

拒单数

系统想下单但被拒绝的次数(通常是资金不足或持仓冲突)。正常应该是 0。

8.4 新手只需要重点看这 5 个

19 个指标太多记不住?新手抓住这 5 个就够了:

  1. 评级徽章(S/A/B/C/D):一眼过滤
  2. 最大回撤:能不能扛住
  3. 夏普比率:质量高不高
  4. 胜率:拿不拿得住
  5. 利润因子:系统到底赚不赚

第九章 看懂交易记录:怎么跟买跟卖

回测结果最下方是"成交记录"表,每一笔买卖都列出来了。这是你"跟单"的依据。

9.1 表格字段含义

含义
datetime(时间)这笔交易发生在哪一天
direction(方向)BUY = 买入,SELL = 卖出
size(数量)买/卖了多少股
price(价格)成交价(开盘价或收盘价,取决于你的设置)
commission(佣金)给券商的手续费
slippage(滑点)成交价和理想价的偏差
pnl(盈亏)这笔卖出对应的盈亏金额(只有卖出时有)
rejected(拒单)false = 正常成交,true = 被拒绝

9.2 怎么用这个表"跟买"

重要声明:回测不是实盘信号! 回测结果是"如果过去这样操作会怎样",不等于"未来这样操作一定赚钱"。市场在变,策略会失效。下面只讲方法,不构成投资建议。

方法 A:看最后一笔交易方向

  1. 翻到表格最后一行
  2. 如果最后一笔是 BUY,说明策略当前持有这只股票,你"跟"的话就是同样持有
  3. 如果最后一笔是 SELL,说明策略当前空仓,你"跟"的话就是观望

方法 B:重跑回测看最新信号

因为回测结束日期默认是"今天",最后一笔交易就是最近的信号。每天收盘后重新跑一次回测(日期范围保持到今天),观察最后一笔是否有变化(从 SELL 变 BUY 就是新买入信号)。

9.3 一个完整的跟单思路

1选定一只股票和一个策略(比如贵州茅台 + 双均线 10/30)
2每天收盘后(15:00 之后)重跑回测

开始日期不变,结束日期保持今天。

3看成交记录表的最后一行
  • 如果今天新出现一笔 BUY,且你目前空仓 → 考虑明天开盘买入
  • 如果今天新出现一笔 SELL,且你目前持仓 → 考虑明天开盘卖出
  • 如果没有新交易 → 继续持有/观望
4务必设置止损

即使策略说持有,也要给自己设一个止损线(比如亏 10% 就走),防止策略失效时深套。

跟单的风险提醒(必读):
  • 回测用的成交价是"下一根开盘价",实盘你可能买不到那个价
  • 滑点和佣金实盘会比回测高
  • 策略会在某段时间持续亏损,你必须严格执行,不能凭感觉改
  • 过去赚钱的策略未来可能失效,要持续观察,失效就停用

第十章 多股票组合分仓:不把鸡蛋放一个篮子

单只股票风险太大,用多只股票组合可以分散风险。easy-tdx 提供两种组合方式。

10.1 方式一:组合回测页面(同一策略跑多只股票)

点导航的 "组合回测" 标签。

1添加多只标的

在"标的列表"区,默认有 SZ:000001(平安银行)和 SH:600519(贵州茅台)。你可以增减,比如加:

SZ:000001  平安银行
SH:600519  贵州茅台
SH:600036  招商银行
SZ:000858  五粮液
2选同一个策略

下拉选"双均线交叉",参数用你寻优出来的最佳组合。所有股票用同一个策略。

3设置周期和日期

日线,2020-01-06 至今。

4点"开始组合回测"

系统把总资金平均分给每只股票(100 万 ÷ 4 = 每只 25 万),各自独立跑策略,然后净值曲线按日期对齐加总。

结果区会出什么

10.2 方式二:策略库多策略组合(不同策略跑各自股票)

这是更强大的玩法:你在策略库里存了多个策略(比如茅台用双均线、招行用 MACD、五粮液用布林带),把它们组合起来。

1先在策略库保存多个单标的策略

每个策略在单标的回测页跑完后,点"保存策略"存进策略库。

2进入策略库页面

每张卡片左上角有个复选框,勾选你想组合的多个策略(比如勾 3 个)。

3点顶部"组合回测(N)"按钮

N 是你勾选的数量。系统会:每个策略各拿 1/N 资金、各跑在它保存时的原标的(用最新行情)、净值曲线按日期对齐求和。

4看结果

结果和组合回测页一样:组合净值曲线、19 项绩效指标、各策略对比表、各策略当前持仓表(这个特别有用:看回测结束时每个策略还持有多少钱,有没有套牢)。

10.3 组合为什么能降低风险

举个简单例子:单只股票最大回撤可能是 40%,但 4 只不相关的股票组合在一起,最大回撤可能降到 25% 左右。因为它们不会同时跌到最低点,有的跌时有的涨,相互抵消。

但要注意:组合降低的是"非系统性风险"(单只股票暴雷),不能降低"系统性风险"(整个大盘崩盘)。2008 年、2015 年股灾时,所有股票一起跌,组合也救不了。

10.4 组合的注意事项

第十章补充:保存策略组合 + 一键看今日信号

这是 v1.18.0 新加的能力。读完第十章你已经会勾选 N 个策略跑组合回测了,但跑完关机就丢,下次要重新勾选重新跑。更麻烦的是,你真正想知道的是"今天我该买哪个、该卖哪个",而不是"过去 6 年平均表现如何"。

本次更新把这两件事一次解决:把组合存下来,以后一键用今天重跑,直接得到"截至今天的持仓信号"。

10b.1 保存策略组合

前提:你已经在策略库的「单标的」Tab 勾选了多个策略(比如 4 个),点了"组合回测",结果区已经出来。

1找"💾 保存为组合"按钮

结果区标题"组合回测结果"右边,有一个橙色的 "💾 保存为组合" 按钮(不是结果区下方的"保存策略",那是单标的用的)。

2填写弹窗
  • 组合名称:起个好记的名字,比如"科技+消费+银行 防守反击组合"。系统会预填一个默认名(组合·4策略·2026-07-05),你可以直接改。
  • 备注(可选):写为什么觉得这个组合好,比如"牛市跑得好,震荡市待验证"。

弹窗里会写明:存的是各策略的 strategy+params+标的+资金配比,以及组合级绩效快照。

3点"保存"

保存成功后,策略库页面切到「组合」Tab,会看到一张橙色边框的组合卡片,右上角带 🗂 图标,显示"4 策略 · 总收益 417%"。

存了什么? 组合卡片存的是配置(哪几个策略、各自什么参数、各自跑什么标的),不是结果数据。结果每次重跑都会重新算。所以下次哪怕行情变了,重跑得到的也是最新信号。

10b.2 载入组合 + 一键重跑到今天(核心功能)

这是本次更新最重要的功能。点组合卡片的 "↻ 重跑到今天" 橙色按钮:

1确认弹窗

系统会弹一个确认框,告诉你"将自动用今天作为结束日重跑 N 个策略",并提示策略信号是模型仓位,不是投资建议。点"确认"开始。

2自动重跑

系统把组合里所有策略的结束日期全部覆盖为今天,然后用最新行情重新跑一遍组合回测。这一步可能要等 10 到 60 秒(取决于策略数和标的数),按钮文字会变成"重跑中…"。

3看"当前持仓"表

跑完后页面自动滚动到结果区。重点看最下面的 "当前持仓"表,它显示的就是截至今天的策略信号(哪些该持有、哪些该空仓)。

10b.3 看懂"当前持仓"三态

当前持仓表的状态列,从原来的两态(持仓/空仓)升级成了三态,让你一眼分辨"该继续拿"还是"该警惕":

状态徽章颜色含义你怎么应对
🟢 持有 绿底 策略说继续持有,且当前是浮盈 继续拿着,但别得意,设好止盈线
🟠 持有·浮亏 橙底 策略说继续持有,但当前浮亏 警惕!盯紧止损线,跌破就坚决走
⚪ 空仓·等买点 灰底,行半透明 策略说现在不该持有 观望,等下次出现"持有"信号再考虑

表里其他列也要看:

10b.4 三处必须看懂的警示

本次更新特意加了三处警示,因为"模型仓位"和"真实账户"是两回事,新手很容易混淆:

① 过拟合警示条(结果区顶部)
"组合的历史回测表现优秀,不代表未来一定有效。收益可能来自特定时段的市场环境(如某段主升浪),切换到震荡/熊市可能失效。"
② 模型仓位水印(持仓表上方)
"表中是模型仓位(策略说'该持仓'),不是你真实账户的持仓。基于回测结束日收盘价计算,过夜后可能因新 K 线触发买卖而变化。"
③ 载入确认弹窗
点击"↻ 重跑到今天"时,系统明确告知"策略信号是模型仓位,不是投资建议,也不是你真实账户的持仓"。

10b.5 一个完整的日常使用流程

假设你保存了一个"4 策略组合",想每天看信号:

  1. 每天收盘后(15:00 之后)打开 easy-tdx 系统
  2. 进入策略库 →「组合」Tab
  3. 点你那个组合的 "↻ 重跑到今天"
  4. 等 10 到 60 秒重跑完成
  5. 看"当前持仓"表的三态徽章:
    • 🟢 持有 → 继续拿
    • 🟠 持有·浮亏 → 警惕,盯止损
    • ⚪ 空仓 → 观望
  6. 对比昨天和今天的徽章变化:
    • 从 🟢 变 ⚪ = 卖出信号(策略今天清仓了)
    • 从 ⚪ 变 🟢 = 买入信号(策略今天开仓了)
    • 没变化 = 继续持有/观望
关键认知:信号会漂移。 今天重跑说"🟢 持有",明天大跌触发止损可能就变成"⚪ 空仓"。所以必须每天重跑看最新信号,不能拿昨天的信号当今天的操作依据。系统水印会标"基于 X 月 X 日收盘价的策略信号",过夜就过期。

10b.6 组合的局限(老实告诉你)

一句话总结:组合保存功能让你不用每次重新勾选、重新跑。点"↻ 重跑到今天",看三态徽章,知道今天该不该动。但它不能替你做决定,也不能保证赚钱。把它当成一个"今日参考信号",配合自己的判断和止损纪律使用。

第十一章 常见问题与排错

Q1: 启动后端报错 "easy-tdx 不是内部或外部命令"

说明 Python 没装好或 PATH 没配置。回到第一章 1.1 重装 Python,务必勾选 "Add Python to PATH"。如果已装,在命令行输入 pip install -e ".[web]"(在项目目录下)重新安装。

Q2: 启动前端报错 "npm 不是内部或外部命令"

Node.js 没装或没重启命令行。回到第一章 1.2 重装 Node.js,然后关闭所有 cmd 窗口重新打开

Q3: npm install 卡住不动或报错

网络问题。换淘宝镜像:

npm config set registry https://registry.npmmirror.com
然后重新 npm install

Q4: 浏览器打开 localhost:5173 显示空白或报错

检查两点:

  1. 后端窗口是否还开着?如果关了,重新跑 easy-tdx serve --port 8000
  2. 看后端窗口有没有报错。如果有红色错误,截图找老师
Q5: 回测时提示"取行情失败"或"连接通达信服务器超时"

easy-tdx 需要连接通达信的行情服务器取数据。可能原因:

  • 网络问题:换网络或等一会再试
  • 防火墙拦截:检查是否有安全软件拦截了 Python
  • 非交易时段:周末和晚上有时连接不稳定

可以换个时间再试,或者用其他股票代码试试。

Q6: 回测结果关机后就没了

这是正常的。回测结果存在后端进程内存,重启就清空。重要的策略一定要点"保存策略"存进策略库,策略库的数据存在 SQLite 文件里,重启不丢。

Q7: 评级徽章显示 "⚠ 交易样本有限" 是什么意思

这只股票/策略在回测期间交易笔数少于 10 笔。系统已经把胜率和利润因子的权重降到 0,只看净值类指标(夏普/卡玛/回撤)。长线策略常常这样,不一定是坏事。详见第七章 7.5 节。

Q8: 寻优网格点数提示超过 200

参数取值组合太多。减少参数取值的数量,比如 fast 从 10 个值减到 5 个值,或者只寻优一个参数(不勾另一个)。

Q9: 评级看起来不准,某个明显好的策略却是 C 档

评级阈值是基于金融惯例校准的,可能在某些边界情况不完美。每个维度的打分逻辑在 web-ui/src/grading/thresholds.ts 文件里,如果你懂技术可以微调。或者截图给老师反馈。

Q10: 我想用分钟线或周线回测

在行情数据区的"周期"下拉里选 MIN_5(5 分钟)、WEEK(周线)等。注意:分钟线数据量很大,回测会慢很多,新手建议只用日线(DAY)。

第十二章 重要提醒(必读)

回测 ≠ 实盘。回测 ≠ 实盘。回测 ≠ 实盘。

请把这六个字刻在脑子里。以下是新手必须知道的真相:

12.1 回测的三大陷阱

陷阱一:过拟合

寻优出来的"最佳参数"在历史数据上完美,可能只是巧合。验证方法见第五章 5.4 节(分段重跑)。

陷阱二:幸存者偏差

你现在能回测的股票都是"还活着"的股票。那些退市的、ST 的、破产的你回测不了。所以回测收益天然偏高。

陷阱三:未来函数与理想成交

回测假设你能以"开盘价"成交,但实盘中你可能买不到那个价。实盘的滑点和佣金也比回测设的高。

12.2 实操建议

  1. 先用模拟盘跑 1 个月:不要一上来就真金白银,用模拟盘验证策略实盘表现
  2. 单只仓位不超过 30%:永远留有余地,别 all in 一只股票
  3. 设止损:亏 10% 或 15% 强制走,不要扛
  4. 策略失效就停用:如果实盘连续 3 个月表现和回测差异巨大,这个策略可能已经失效
  5. 不要频繁换策略:今天用双均线,明天用 MACD,后天用布林带,最后一定亏。选定一个,严格执行

12.3 这个工具能帮你什么,不能帮你什么

能帮你不能帮你
验证一个策略在历史数据上是否有效 预测未来(未来不可预测)
对比多个策略哪个更适合某只股票 告诉你哪只股票会涨(没人能知道)
找到相对合理的参数区间 找到"绝对最佳"的参数(不存在)
评估风险(最大回撤、波动率) 消除风险(风险永远存在)
建立纪律性的交易习惯 替代你自己的判断和止损

12.4 最后的话

easy-tdx 给了你一把尺子,让你不再凭感觉炒股。但尺子本身不会替你赚钱,赚钱靠的是纪律和耐心

用这个工具找到 1 到 2 个你理解、能拿住的策略,严格执行,长期坚持。这比追逐"收益最高的策略"重要 100 倍。

市场永远在变,工具会迭代,策略会失效。不变的是:不懂不投、分散风险、严格止损、长期主义

祝你在市场里活得更久,走得更远。