量化交易实战 · 第 2 期

止损为什么越止越亏?

仓位、ATR 与 Kelly 公式 · position sizing

止损 8 次、赚 1 次,本金没了 40%——错不在止损,在仓位。止损位放哪是 ATR 的事,该下多少仓是 Kelly 的事。先算仓位再算止损,顺序反了你就是给交易所打工。
⏱ 约 11 分钟 🎯 做量化、被仓位坑过的开发者 📦 源:abu 教程 §4 仓位与滑落仓位

01一个反共识:先算仓位,再算止损

新手下单的顺序通常是:选标的 → 看图定止损位 → 看心情下仓。这个顺序错得离谱——

止损位由市场决定(ATR),仓位由你自己决定(Kelly)。顺序应该是:先定"这次最多亏多少"(风险预算)→ 算止损位(ATR)→ 反推仓位。这样无论止损多远,单次亏损都在你预算内。

顺序反了会怎样?你把止损位定得很近("我要小止损"),但仓位是满仓——结果一个小波动就触发止损,连止 8 次本金没了 40%。这就是"越止越亏"的真相。

先算仓位再算止损,
顺序反了你就是给交易所打工。
灏天文库 · 量化交易实战 P.05

02两条公式:Kelly 给仓位,ATR 给止损

整门仓位管理就两条公式:

f* = p − (1−p)/b    (Kelly 仓位比例)
止损位 = 入场价 − k × ATR    (ATR 止损,k 常取 1.5~3)

其中 p = 胜率,b = 赔率(盈亏比,赚的金额/亏的金额),f* = 最优仓位占总资金比例,ATR = 真实波动幅度均值。Kelly 给的是"长期复利最大化"的仓位,实操通常用半 Kelly(更稳)。

下面这个计算器把两条公式接起来:输入你的胜率/赔率/本金/ATR,直接给你仓位和止损位。

🧮 仓位计算器(Kelly + ATR)
输入你的策略参数,实时算出 Kelly 仓位、止损位、单次最大亏损。
元
(0~1,0.45 即 45%)
(盈亏比,2 即赚2亏1)
元
元(标的波动)
(1.5~3)
Kelly 仓位比例 f*
—
建议仓位金额(半 Kelly)
—
止损位(入场 − k×ATR)
—
单次最大亏损(占本金)
—
满仓
100%
全 Kelly
—
半 Kelly(推荐)
—

03为什么用半 Kelly:复利与破产的边界

Kelly 公式给的是"长期复利最大化"的仓位,但它有个前提:你的胜率 p 和赔率 b 必须估计准确。现实中你永远高估自己——你以为胜率 50%,实际可能 40%。这时全 Kelly 仓位会让你破产。

所以实操几乎都用半 Kelly(f*/2):牺牲一点复利速度,换来对估计误差的容错。一条经验法则:

Kelly 给的是上限,
不是命令。
灏天文库 · 量化交易实战 P.06

04带走这套清单

✅ 仓位管理 6 条可执行规则

  1. 顺序:先定单次最大亏损(≤2% 本金)→ 算 ATR 止损位 → 反推仓位。
  2. 用 Kelly 算上限,用半 Kelly 下单:f* = p − (1−p)/b,实操下 f*/2。
  3. 止损位用 ATR 不用固定点数:ATR×(1.5~3),波动大止损远、仓位自然小。
  4. 单次风险封顶 2%:无论多有把握,一笔交易亏不到总资金的 2% 以上。
  5. f* 为负立即停手:期望为负的策略,止损再好也是慢性失血。
  6. 定期重估 p 和 b:胜率会随市场状态漂移,每季度用新数据重算一次。
先算仓位再算止损,
顺序对了,止损才不亏人。
灏天文库 · 量化交易实战 P.07