公式评测与回测

公式评测(也叫「系统测试」或「回测」)是把交易系统公式丢给历史数据,模拟买卖,看这套规则在过去能赚多少、亏多少、最大回撤多大。本章把回测的设置、运行、报告解读讲清。

交易系统公式

回测的对象是交易系统公式,用 BK / SK / SP / BP 等指令发出买卖信号:

指令含义
BK买开(多头开仓)
SK卖开(空头开仓)
SP多头平仓(卖平)
BP空头平仓(买平)
BPK平多反手开空
SPK平空反手开多

股票只做多,所以基本只用 BK(买入)和 SP(卖出)。

{ 双均线交易系统 }
MA5  := MA(CLOSE, 5);
MA20 := MA(CLOSE, 20);

BK(CROSS(MA5, MA20));      { 5 上穿 20,买开 }
SP(CROSS(MA20, MA5));      { 5 下穿 20,卖平 }

A 股只能做多且 T+1,回测要在系统设置里选「单向」+「T+1」,否则结果会偏离实盘。

打开公式评测

菜单 分析 → 公式评测(部分版本叫「系统测试」),打开评测向导。

主要步骤:

  1. 选公式:选一个交易系统公式(带 BK/SK/SP/BP 的)。
  2. 选股票 / 板块 / 周期:单股票、自定义板块、全市场;日 K / 周 K / 分钟 K。
  3. 设时间区间:起止日期,建议至少 3~5 年覆盖牛熊。
  4. 设交易参数:开仓手数、信号生效方式、滑点、手续费、T+1 / T+0。
  5. 运行 → 出报告。

关键交易参数

参数推荐值说明
信号生效收盘价 / 次日开盘价收盘价模型偏乐观;次日开盘价更接近实盘
滑点1~2 个最小变动价位实盘成交价比信号价差
手续费0.025%~0.03% 双边券商佣金,部分场景还要加印花税 0.1%(卖方)
印花税卖出 0.05%2023 年起下调为 0.05%,回测要以最新规则为准
T+1开启A 股当日买不能当日卖
开仓资金总资金的 50%~100%看自己的仓位管理规则

滑点和手续费是新手最容易忽略的——回测里少设这两项,结果会比实盘好 30%~50%。

报告核心指标

同花顺评测报告里最重要的几列:

指标含义看法
总收益率区间内总盈亏百分比必须为正,且高于沪深 300 同期
年化收益率折算到年的复利收益长期 > 15% 算不错
最大回撤历史最高点到后续最低点的跌幅< 20% 比较健康
胜率盈利交易数 / 总交易数不是越高越好,看盈亏比
盈亏比平均盈利 / 平均亏损> 1.5 算理想
交易次数区间内总交易次数太少(< 30)样本不足;太多(> 500)手续费吞噬利润
夏普比率风险调整后收益> 1 算可接受,> 2 优秀

详细资金曲线

评测报告里有资金曲线(资金随时间的变化),是判断策略稳健性的最重要图表:

  • 平稳上行:好策略。
  • 阶梯式跳升:依赖少数几次大盈利,运气成分大。
  • 剧烈波动:风险大,可能扛不住实盘心理压力。
  • 长期横盘:策略失效或参数过紧。

把同一策略在 2018(熊)、2019~2020(牛)、2022(熊)、2023(震荡)都跑一遍,看曲线在不同市场环境下是否稳定。

参数敏感性测试

把关键参数(如均线周期 N)在一个范围内扫一遍,看收益和回撤怎么变化:

{ 参数:N 5 60 20 }
MA_N := MA(CLOSE, N);
BK(CROSS(CLOSE, MA_N));
SP(CROSS(MA_N, CLOSE));
  • N = 5/10/20/30/60 各跑一次,记录年化和最大回撤。
  • 如果 N 稍稍变化收益剧烈波动(比如 N=20 收益 50%,N=21 收益 -10%),说明过拟合,未来大概率失效。
  • 选「参数附近都稳定赚钱」的参数区间,而不是「单点最优」的参数。

常见回测陷阱

  1. 未来函数:用 ZIG / PEAK / TROUGH / BACKSET / REF(X, -1) 等会让回测神准。本书所有示例都避开这些函数。
  2. 收盘价模型:用收盘价信号 + 收盘价成交的回测最乐观,实盘要切到「次日开盘价」更接近真实。
  3. 未设手续费:年化 50% 的策略,加上 0.1% 双边成本可能直接变负。
  4. 过拟合参数:在历史数据上挑出最优参数,未来大概率失效。看参数附近的稳定性,不看单点最优。
  5. 样本不足:3 个月回测的「年化 200%」毫无意义,至少要 3 年以上覆盖牛熊。
  6. 幸存者偏差:回测当下的沪深 300 成分股,是过去涨上来的票,已退市的票不在内——结果会偏乐观。

实战:双均线策略完整回测

{ 公式名:双均线交易系统 }
{ 参数:快线 1 60 5;慢线 10 120 20 }
MA快 := MA(CLOSE, 快线);
MA慢 := MA(CLOSE, 慢线);

BK(CROSS(MA快, MA慢));     { 金叉买 }
SP(CROSS(MA慢, MA快));     { 死叉卖 }

评测设置:

  • 标的:沪深 300 ETF(510300)或个股
  • 周期:日 K
  • 区间:2018-01-01 ~ 2024-12-31(7 年覆盖牛熊)
  • 信号生效:次日开盘价
  • 手续费:0.03% 双边 + 印花税 0.05%
  • T+1:开启

跑完后看:

  • 总收益率 vs 沪深 300 同期 → 是否有超额
  • 最大回撤 → < 25% 算可接受
  • 交易次数 → 30~100 算合理
  • 资金曲线 → 是否平稳

把快线从 5 扫到 20,看收益和回撤怎么变化——稳定性比单点收益更重要。

评测通过后的下一步

  1. 模拟盘跑 1~3 个月:用模拟资金实盘下单,验证信号触发是否符合回测。
  2. 小资金实盘 3~6 个月:1~2 万本金实盘,验证滑点、流动性、心理压力。
  3. 逐步加仓:模拟 + 小资金都验证通过,再上更大资金。

回测只能证明「过去」,不能保证未来。任何策略上线后都要持续监控,遇到失效立刻停。

读完本章,同花顺公式开发从入门到回测的闭环就齐了。后续可结合本书其他平台章节,迁移到 通达信文华 WT8 等环境,或转向 PTrade 这类 Python 量化平台,做更复杂的策略。