1. 绩效归因基础:什么是交易执行绩效归因?为什么做归因?核心概念与术语
1.1 先聊聊我为什么重视这件事
做量化交易这些年,我见过太多人盯着账户盈亏看。赚了就觉得策略牛,亏了就骂市场烂。
说实话,这种思维方式很危险。你想想看,一个策略赚了钱,到底是选股选得好,还是执行时运气好?亏了钱,是策略逻辑错了,还是交易成本吃掉了利润?
我个人习惯,每天收盘后必做一件事——把今天的交易拆开来看。哪个环节贡献了收益,哪个环节在拖后腿。这就是绩效归因的雏形。
核心定义:交易执行绩效归因,就是把你的交易结果拆解成不同因素的贡献。它回答一个关键问题——钱是怎么赚的,又是怎么亏的。
1.2 为什么非做归因不可?
我刚开始做量化时,踩过一个坑。策略回测年化30%,实盘跑了一个月,只有8%。我当时差点把策略扔了。后来做了归因分析才发现——策略本身没问题,是执行端出了问题。滑点太大,冲击成本太高。
你看,不做归因,你根本不知道问题出在哪。具体来说,归因能帮你解决三件事:
- 识别瓶颈——到底是策略逻辑不行,还是执行拖了后腿?
- 优化方向——该改进算法交易,还是调整信号频率?
- 风险控制——哪些交易行为在悄悄侵蚀收益?
说白了,归因就是给你一面镜子。让你看清自己的交易行为,而不是被盈亏数字蒙住眼睛。
1.3 核心概念与术语
这部分我尽量讲得接地气一些。很多术语听起来高大上,其实没那么复杂。
1.3.1 执行缺口(Implementation Shortfall)
这是最核心的概念。什么叫执行缺口?就是「理想交易」和「实际交易」之间的差距。
举个例子:你看到某只股票现价10元,决定买入。但等你的订单成交时,价格已经变成了10.05元。这0.05元就是执行缺口的一部分。
我的经验:执行缺口可以拆成两部分——延迟成本(等待成交时的价格变动)和冲击成本(你的订单本身推高了价格)。我见过很多新手只盯着佣金,其实这两块才是大头。
1.3.2 滑点(Slippage)
滑点就是预期成交价和实际成交价的差值。它和执行缺口很像,但更聚焦在「价格差异」上。
嗯,这里要注意:滑点不一定是坏事。有时候你买在更低点,卖在更高点,那就是正滑点。但大多数时候,滑点是负的——你在为流动性买单。
1.3.3 市场冲击(Market Impact)
你的订单本身会影响市场价格。买盘大了,价格被推高;卖盘大了,价格被打压。这就是市场冲击。
我做过一个测试:同样一个订单,拆成10笔小单和一次性大单执行,成本能差3倍。所以大资金做交易,必须考虑冲击成本。
1.3.4 延迟成本(Delay Cost)
从你做出决策到订单真正执行,中间有时间差。这个时间差里,价格可能已经变了。这就是延迟成本。
高频交易里,延迟成本是致命的。但做日频策略,延迟成本反而没那么可怕——有时候等一等,反而能拿到更好的价格。
1.3.5 机会成本(Opportunity Cost)
这个有点反直觉。机会成本不是「你亏了多少」,而是「你本来可以赚多少但没赚到」。
比如你计划买入某只股票,但因为各种原因没成交。结果这只股票当天涨了5%。这5%就是你的机会成本。
避坑指南:我曾经太执着于降低执行成本,结果错过了很多机会。记住——归因分析不是让你追求零成本,而是帮你找到「成本」和「机会」之间的平衡点。
1.4 知识体系总览
下面这张图,是我自己梳理的绩效归因知识框架。你可以把它当成一张地图,后面每章都会对应到其中的某个模块。
1.5 一个简单的归因示例
光讲理论太枯燥。我拿一个真实案例给你看看。
假设你计划买入1000股某股票,决策时价格是10.00元。最终成交情况如下:
| 项目 | 数值 | 说明 |
|---|---|---|
| 决策价格 | 10.00元 | 你做出买入决定时的价格 |
| 第一笔成交 | 500股 @ 10.02元 | 延迟了2秒,价格涨了0.02 |
| 第二笔成交 | 500股 @ 10.05元 | 你的买盘推高了价格 |
| 平均成交价 | 10.035元 | (10.02+10.05)/2 |
| 执行缺口 | 0.035元/股 | 10.035 - 10.00 |
这个0.035元的执行缺口,可以进一步拆解:
- 延迟成本:0.02元/股(第一笔的延迟)
- 市场冲击:0.03元/股(第二笔被推高的部分)
- 但注意:第一笔成交后,价格从10.02涨到10.05,其中0.01元可能是市场自然波动,不全是你的冲击
我的建议:刚开始做归因,别追求太精细。先把执行缺口算清楚,再慢慢拆。一口吃不成胖子,归因分析也是。
1.6 归因分析的层次
归因不是一次性的工作。我个人习惯分三个层次来做:
- 交易层面——每一笔订单的执行质量如何?滑点大不大?
- 策略层面——这个策略本身赚不赚钱?执行有没有拖后腿?
- 组合层面——整体组合的收益来源是什么?哪些因子在贡献?
这三个层次,后面我会逐章展开讲。今天先把基础打牢。
最后提醒一句:归因分析不是万能的。它告诉你「发生了什么」,但不总能告诉你「为什么发生」。别过度解读数据,也别忽视数据。保持怀疑,但保持开放。
公众号:蓝海资料掘金营,微信deep3321