你的策略回测下来年化 20%,你照着做了半年,结果是负的。
你回去检查信号,一条条对,信号全都对。该买的时候你买了,该卖的时候你卖了。
差别藏在别的地方:回测里你以收盘价成交,实盘你追了两个价位;回测里止损总能在止损价成交,实盘有两次滑了不少;有一次你只成交了一半仓位,就那么放着了。
一个正期望值的策略,被执行成了负的。
第五篇讲了订单类型,第六篇讲了首次建仓的仓位公式。但入场之后的事,这份手册一直没写:
- 要不要加仓?加多少?什么时候加是计划,什么时候是自欺?
- 止损什么时候该动?移到成本价是不是免费的?
- 为什么回测里的成交价和实盘对不上?
- 只成交了一半怎么办?断线的时候我的止损还在吗?
这些属于执行层:策略告诉你做什么,执行层决定你实际做成了什么。它介于机制层和策略层之间——它不需要预测未来,但它能把一个正期望值的策略执行成负的。
本文仅用于记录和普及基础知识,不构成投资建议。
一、加仓:三种形态,一种数学上必然爆仓
「加仓」这个词涵盖了三种完全不同的行为,它们的风险结构差别极大。
形态一:摊平亏损(Averaging Down)
价格下跌后买入更多,降低平均成本。
买入 100 股 @ $50 成本 $50
跌到 $40,再买 100 股 成本 $45
看起来的好处:回本只需要涨到 $45,而不是 $50。
打个比方
摊平亏损像在一个正在往下沉的位置上继续搬东西进去。
你的理由是"这里东西更便宜了"。这话没错。但你没注意到另一件事:你原本给自己定的"最多损失多少",被你悄悄改掉了——而且是在你已经被证明看错的时候改的。
⚠️ 这一节最需要停一下的地方在这里:“摊平"和"计划内的分批建仓"在盘面上长得一模一样——都是价格跌了之后买更多。区别不在动作上,在动作什么时候被决定的。
计划内分批 入场之前就写好了:跌到 X 加第二笔,跌到 Y 加第三笔
摊平亏损 跌了之后才决定加 —— 而"跌了"正是你判断被否定的证据
同一个动作,一个是执行计划,一个是放弃计划。 事后光看成交记录,你分不出自己做的是哪一个——这就是第九篇为什么让你把"这次加仓是不是计划里写的"单独记一栏。
实际发生的事:
回到第六篇的公式。你原本设定的单笔风险是账户的 1%,仓位是按这个算出来的。加仓一倍之后:
仓位翻倍 → 同样的价格变动,亏损翻倍
→ 你事后把单笔风险从 1% 改成了 2%
而这个修改,是在你已经被证明判断有误的时候做出的。
关键问题不是「摊平对不对」,而是:
这次加仓,是入场前计划里写好的,还是因为它跌了?
第九篇讲过,这是交易日志里最该记录的一栏。计划内的分批建仓(下一节)和亏损后的临时加码,形式上都是「跌了买更多」,但一个是执行计划,一个是放弃计划。
形态二:马丁格尔——算术上必然爆仓
每次亏损后加倍下注,指望一次盈利收回全部损失。
连亏 n 次的累计损失:
R × (1 + 2 + 4 + ... + 2ⁿ⁻¹) = R × (2ⁿ − 1)
用 1% 起步:
| 连亏次数 | 累计损失(占账户) |
|---|---|
| 3 | 7% |
| 5 | 31% |
| 6 | 63% |
| 7 | 127% → 爆仓 |
连亏 7 次就完了。
那连亏 7 次有多容易?用第六篇第四节的方法算,500 笔交易中至少出现一次连亏 7 笔的概率:
| 胜率 | 概率 |
|---|---|
| 50% | 约 85% |
| 40% | 约 99.6% |
马丁格尔不是「风险高」,是「在足够多的交易次数下,爆仓是必然事件」。
它之所以有迷惑性,是因为在爆仓之前,它的胜率极高、收益曲线极平滑——这正是第十篇讲的左偏分布,只是更极端。任何展示马丁格尔策略盈利曲线的截图,都只是在告诉你「那次还没发生」。
形态三:金字塔加仓(盈利后加仓)
只在盈利时加仓,且每次加的量递减,同时上移止损。
关键约束是:
加仓后的最坏情况,不能差于加仓前。
⭐ 反过来的形状叫倒金字塔(越跌加得越多),它必然违反这条约束——因为它让最大仓位落在最坏的价格上。这是定义决定的,不是执行问题。倒金字塔是「左侧交易」的标准加仓方式,展开见第 36 篇。
一个算例:
初始仓位:100 股 @ $50,止损 $47
风险 = 100 × $3 = $300
价格涨到 $55,止损上移到 $52
原仓位此时锁定盈利 = 100 × ($52 − $50) = +$200
加仓 50 股 @ $55,止损同为 $52
新仓位风险 = 50 × $3 = $150
最坏情况(全部止损在 $52):+$200 − $150 = +$50
加仓之后,最坏结果仍然是盈利。 这是金字塔加仓与摊平亏损的根本区别:前者用已实现的优势买入更多风险,后者用未被证实的判断追加风险。
注意它的代价:加仓拉高了平均成本,一次正常回撤就可能把整个仓位(包括原本盈利的部分)扫掉。所以「止损同步上移」不是可选项,是这个方法成立的前提。
二、分批建仓与分批出场:它改变什么、不改变什么
分批是执行层最常被讨论的技巧,但它的作用经常被误解。
它不改变什么
分批建仓不改变期望值。
如果你的策略在某个价位有正期望值,那么一次全买和分三次买的期望收益是一样的(忽略成本差异)。分批不会凭空创造优势。
而且它增加了交易成本:三次买入 = 三次价差 + 三次手续费(第八篇)。
它改变什么
1. 降低了单点执行风险。 你不会把全部仓位押在某一个可能很糟的成交价上。
2. 降低了方差。 平均成本更接近区间均值,结果分布更集中。
3. 心理上更容易执行。 这一条不该被轻视——按第七篇,行为与结构优势是个人唯一可靠的优势来源。一个你能坚持执行的方法,胜过一个理论更优但你做不到的方法。
分批出场
同样的逻辑反过来,但多一层权衡:
分批止盈 → 锁定部分利润,降低回撤痛苦
→ 但同时削减了大盈利的尾部
按第六篇,正期望值策略的收益经常集中在少数几笔大盈利上。系统性地提前止盈,会砍掉那部分尾部,而它可能恰恰是你全部利润的来源。
这是个真实的权衡,没有标准答案。但你应该知道它有代价,而不是把「落袋为安」当成显然正确。
三、止损的动态管理
保本止损不是免费的
把止损移到成本价,感觉上「这笔交易已经无风险了」。
代价是:成本价附近往往是正常波动会反复经过的区域。 把止损放在那里,你会被大量本来能盈利的交易扫出局。
它削减的同样是右尾——因为大盈利通常需要先穿越一段回撤。
同样是权衡,同样需要知道它有成本。一个折中是:等价格走出足够距离(例如 1R 以上)再移动止损,而不是一有浮盈就移。
追踪止损的参数
第五篇讲了机制,这里是参数权衡:
追踪距离太窄 → 被正常波动反复扫出
追踪距离太宽 → 回吐大量已有利润
一个不含预测的处理方式:按波动率设置(例如若干倍 ATR),而不是按固定百分比。这样在高波动期自动放宽,低波动期自动收紧——它用的是第七篇里证据最强的那个规律(波动率聚集),而且只用来做风险管理,不用来判断方向。
⚠️ 唯一的硬规则
止损只能向有利方向移动,永不向不利方向移动。
第六篇写过,这里再写一次,因为它是执行层最常见的致命错误。向不利方向移动止损,等于事后把单笔风险改大——而且是在你已经错了的时候。
四、从信号到成交:回测和实盘的差距在这里
这是「回测很好、实盘就亏」的一个纯执行层来源,独立于第七篇讲的那六种统计偏差。
滑移链条
① 信号在价格 P 出现
② 你(或程序)观察到 → 有延迟
③ 决策 / 下单 → 有延迟
④ 订单到达交易所 → 有延迟
⑤ 撮合成交 → 价格已经是 P'
多数回测框架默认在 ① 的价格成交。实盘拿到的是 ⑤。
影响有多大,取决于周期
| 周期 | 滑移影响 |
|---|---|
| 日线 / 周线 | 通常可忽略 |
| 小时级 | 需要计入 |
| 分钟级 | 显著 |
| 秒级以下 | 决定性(第七篇:不要在速度上竞争) |
怎么测量它
不要估计,要记录:
每笔交易记录:信号价、实际成交价、两者之差
一段时间后统计:平均滑移、最差滑移、滑移与波动率的关系
然后把这个数字放回回测里重跑
如果加上真实滑移后策略就不赚钱了,那它本来就不赚钱——你只是之前不知道。
这一步能省掉的钱,通常比任何策略优化都多。
五、仓位的生命周期:一个状态机
⭐ 状态机的价值就在于回答那个问题:这一步是计划里写好的,还是因为它跌了? 把仓位的每一步都定义成状态之间的合法转移,“临时改主意"这个动作就没有落脚的地方了。
把前面几节组织成可执行的形式。每个仓位在任何时刻都处于一个明确的状态,每个状态有明确的规则:
【计划中】
└─ 已写下入场价、止损价、目标价、仓位大小(第九篇)
↓ 触发入场
【已建仓】
└─ 止损:初始位置,不动
└─ 允许的操作:无(等待)
↓ 浮盈 ≥ 1R
【已保本】
└─ 止损:移至成本价或以上
└─ 允许的操作:按计划金字塔加仓(第一节的约束)
↓ 浮盈 ≥ 2R
【尾仓管理】
└─ 止损:改为追踪(按 ATR)
└─ 允许的操作:分批止盈
↓
【已了结】
└─ 填写日志,重点是「是否按计划执行」
这个状态机的价值不在于具体的阈值(1R、2R 都是示例,不是推荐),而在于:
每个状态下「允许做什么」是提前定义好的。 你在持仓时不需要做决策,只需要执行当前状态的规则。
这正是第九篇那句话的实现:在平静时立规则,在激动时执行规则。
六、Maker 还是 Taker:一个执行决策
第二篇讲了两种角色,这里是选择标准。
用限价单(Maker)的代价:可能不成交
用市价单(Taker)的代价:价差 + 滑点 + 更高费率
判断依据是不成交的机会成本:
| 情况 | 建议 |
|---|---|
| 入场,价格不敏感 | 限价,不成交就算了 |
| 入场,错过就没了 | 权衡;但要问:一个必须立刻成交的机会,还是机会吗 |
| 止损出场 | 不要犹豫——第五篇:一个糟糕的成交价好过没有执行的保护 |
| 止盈出场 | 限价 |
中间那行值得多说一句:如果你的策略依赖「必须在这一秒成交」,那它对滑移极度敏感,而按第四节,滑移是实盘和回测差距最大的一项。这类策略在纸面上和实盘上可以是两回事。
另外回顾第二篇:撤单重挂 = 回到队尾。 频繁调整挂单价格在流动性好的品种上代价很高。
七、异常处理:手册里最实际的一节
这些情况一定会发生,而且通常在最糟的时候。提前想好,比临场处理好得多。
部分成交
你计划买 100 股,只成交了 60 股。
⚠️ 你的止损单数量必须跟着改。 挂着 100 股的止损单而实际只持有 60 股,在合约上会让你凭空得到一个反向仓位(第五篇:这就是 reduce-only 存在的原因)。
处理:确认实际持仓 → 调整止损数量 → 决定剩余部分是补齐还是放弃。
断线时有持仓
最关键的一个问题:你的止损单在服务器端还是客户端?
✅ 挂在交易所的条件单 → 你断线它照样执行
❌ 软件本地的条件单 → 你断线它就不存在了
很多交易软件的「本地条件单」需要程序保持运行。这一点必须在你还没持仓的时候就搞清楚,而不是断线之后。
原则:任何过夜或长时间持有的仓位,止损必须在交易所侧。
交易所维护 / 停牌
- 加密:平台会公告维护窗口,期间无法操作但标记价格和强平机制可能仍在运行
- 美股:停牌期间订单不执行,复牌可能跳空(第三篇)
两种情况下你都失去了控制权。这是「仓位大小要与你能承受的失控程度匹配」的另一个理由。
下错单
多输一个零、买卖搞反、张数当成币数(第五篇的检查清单第 3 条)。
发现下错单,立刻按错误处理,平掉。
不要因为「反正已经买了」就把一个操作失误转成一个仓位。它不在你的计划里,它没有止损,它的大小是随机的——它符合所有你应该避免的特征。
重复下单
网络超时后重试,可能造成重复委托。下单失败时先查询实际状态,再决定是否重发。 这对写程序的人尤其重要。
八、这一篇的结论
- 加仓有三种,风险结构完全不同。 核心问题永远是:这次加仓是计划里写好的,还是因为它跌了?
- 马丁格尔在算术上必然爆仓:1% 起步,连亏 7 次即归零;而 500 笔交易中出现连亏 7 次的概率,50% 胜率下约 85%,40% 胜率下约 99.6%。
- 金字塔加仓的成立前提是止损同步上移,使加仓后的最坏情况不差于加仓前。
- 分批建仓不改变期望值,它改变的是方差、单点执行风险和你能否坚持执行。它增加成本。
- 保本止损和分批止盈都不是免费的——它们削减的是收益分布的右尾,而正期望值策略的利润往往就集中在那里。
- 止损只能向有利方向移动。 这是执行层唯一的硬规则。
- 信号价 ≠ 成交价。 记录并统计真实滑移,放回回测重跑。加上滑移就不赚钱的策略,本来就不赚钱。
- 用状态机管理仓位:每个状态下允许做什么提前定义好,持仓时只执行不决策。
- ⚠️ 搞清楚你的止损单在服务器端还是客户端。 过夜仓位的止损必须在交易所侧。
- 下错单立刻平掉,不要把操作失误转成一个没有计划的仓位。