【量化投资从入门到精通 #43】一条策略的完整生命周期:从数据到上线的检查清单
收官实战篇(工程化)。把前面 40+ 篇的零件——数据、信号、样本外、成本、风控——串成一条流水线,并给你一张能直接照着打钩的上线清单。
一、这个方法解决什么投资问题
很多人"回测赚翻、实盘亏惨",不是算错,而是没走完该走的步骤:漏了成本、没做样本外、没有风控、更没有"什么时候该下线"。
一篇好文章讲一个点,但真实策略是一条链。本文用京东方A 双均线,把整条链跑一遍,每过一关设一道闸门,最后落一张 8 项检查清单。
二、核心思想:策略生命周期 = 七步 + 三道闸门
① 数据 → ② 信号 → ③ 样本内选参 → ④ 样本外验证
↓
⑤ 计入成本 → ⑥ 加风控 → ⑦ 上线检查清单
每步都有"判死"的闸线(任一道不过,不准上实盘):
- 闸门1:样本外收益必须为正(否则只是拟合历史)。
- 闸门2:计入交易成本后仍为正(#31/#32 的教训)。
- 闸门3:风控必须降低回撤(#30 的纪律)。
三、实操演示
def run(kl, fast, slow, cost_bp=0, trail=None, size=1.0):
c = [r["close"] for r in kl]
mf, ms = sma(c, fast), sma(c, slow)
raw = [1 if (mf[i] and ms[i] and mf[i] > ms[i]) else 0 for i in range(len(kl))]
pos, eq, turns, peak = 0, [1.0], 0, 0.0
for i in range(1, len(kl)):
eq.append(eq[-1] * (1 + possize(c[i]/c[i-1]-1)))
if pos == 1:
peak = max(peak, c[i])
if trail and c[i]/peak-1 <= -trail: # 跟踪止损
eq[-1] *= (1 - cost_bp/10000.0); pos, turns = 0, turns+1; continue
want = raw[i-1] # 昨日信号今日执行(无前视)
if want != pos:
eq[-1] *= (1 - cost_bp/10000.0); turns += 1; pos = want
if pos == 1: peak = c[i]
return calc_metrics(eq), turns
真实输出(2026-08-06,京东方A 000725 双均线,250 根前复权 K,2025-07-28~2026-08-06):
① 数据 取到 250 根前复权日K,2025-07-28 ~ 2026-08-06
② 信号 双均线金叉持有,昨日信号今日执行(无前视)
③ 样本内 4 组参数,最优 (10,60),样本内收益 9.42%
④ 样本外 同参数样本外 35.31%,夏普 1.46,换手 2 次 闸门1 ✅通过
⑤ 成本 零成本 33.35% → 万8 32.92%(换手 4 次,吃掉 0.43%) 闸门2 ✅通过
⑥ 风控 加跟踪止损8%+半仓:18.15%,回撤 -20.87%(原 -38.68%),夏普 0.87 闸门3 ✅通过
⑦ 上线前检查清单
[✅] 信号函数只用 t≤i 的数据(无前视)
[✅] 决策与成交错开一根K线
[✅] 回测已计入交易成本
[✅] 有样本外验证结果
[✅] 计成本后仍为正收益
[✅] 有明确的风控规则(止损/仓位)
[✅] 已记录换手次数与额度消耗
[⬜] 有失效判据与下线规则
通过 7/8 项。未打勾项必须补齐后才能上实盘。
四、结果解读
- 样本外(35.31%)远好于样本内(9.42%):这次是幸运——参数 (10,60) 碰上了一段趋势行情。但绝不能因为样本外好就放松警惕,因为样本外也只有一段(#27 walk-forward 才是更稳的做法)。
- 成本只吃掉 0.43%:双均线换手极低(全样本 4 次),万 8 成本几乎无感——再次印证 #31"成本是高换手策略的杀手,低换手策略扛得住"。
- 风控把回撤砍掉近一半:−38.68% → −20.87%,代价是收益从 32.92% 降到 18.15%、夏普从更高降到 0.87。这是 #30 讲的"用收益换睡眠"的真实权衡。
- 7/8 通过但第 8 项最关键:缺"失效判据"意味着——万一因子漂移(#38)、IC 变负,你不知道何时该手动停。这一项不补,前面 7 项全白搭。
五、常见陷阱
- 只跑样本内就上:拟合历史 ≠ 能赚钱,必须样本外(#27)。
- 回测不计成本:漂亮曲线减去万 3~万 10 直接翻绿(#31/#32)。
- 没有前视防护:want = raw[i-1] 这行是生命线,写成 raw[i] 收益凭空虚高(#04/#26)。
- 有信号没风控:没有止损/仓位,一波回撤就出局(#30)。
- 上线无失效判据:这是本文唯一没打勾的项,也是最常被忽略的" Strategy 死刑条款"。
六、小结 + 下篇预告
一条策略的生命周期:数据→信号→样本内选参→样本外→成本→风控→上线清单,三道闸门任一过不了都不准实盘。京东方A 双均线实测 7/8 通过,唯一缺口是"失效判据"——它恰恰是最该补的。
下篇 #48 给整本《量化投资从入门到精通》画一张学习路线图,把 48 篇按"认知→工具→信号→策略→评价→因子→组合→专题"八阶串起来,并指给你下一步该往哪走。
免责声明
本文为量化方法教学,标的为示例,不构成投资建议,不承诺收益。投资有风险,入市需谨慎。

浙公网安备 33010602011771号