④你的系统怎么看市场《系统化交易》读书笔记
你的系统怎么看市场
读《系统化交易》第三部分:框架(中)——第七章、第八章
上一篇聊了框架的骨架(第五章)和金融工具的选择(第六章)。这次进入框架里最核心的两个模块——预测和综合预测。
如果把整个交易系统比作一个人,框架是骨骼,金融工具是肌肉,那预测信号就是眼睛和耳朵——它负责感知市场,告诉你”现在该做多还是做空”。而综合预测就是大脑——它把眼睛、耳朵、鼻子收集到的信息综合起来,做出一个统一的判断。
这两章是整个框架中最”技术”的部分,涉及不少公式和参数。但卡佛写得很清楚,核心思想其实很简单:用标准化的数字来表达你对市场的看法,然后把多个看法组合成一个最终判断。
– – –
第七章:预测——你的眼睛怎么看市场
预测是什么
卡佛在这一章开头就给出了定义:预测是一个标准化的数字,用来表达你对某个资产未来价格走势的看法。
注意两个关键词:”标准化”和”数字”。
“标准化”意味着不管你看的是螺纹钢还是美元日元,不管你看的是日线还是周线,预测值的含义都是一样的。+10在螺纹钢上的含义,跟+10在美元日元上的含义,是完全可比的。
“数字”意味着你的看法必须是量化的。你不能说”我觉得螺纹钢要涨”,你得说”我对螺纹钢的预测是+12″。前者是主观的、模糊的,后者是客观的、精确的。
卡佛定义的预测范围是-20到+20。正数表示看多,负数表示看空,0表示中性。绝对值越大表示信心越强。+20是极度看多,-20是极度看空。大多数时候,预测值会在-20到+20之间波动,很少触及边界。
– – –
为什么要标准化
你可能会问:为什么要搞一个-20到+20的范围?直接用涨跌百分比不行吗?
卡佛解释说,标准化有两个关键好处:
可比性。 不同品种、不同规则产生的预测值可以直接比较。如果你对螺纹钢的预测是+15,对铁矿的预测是+5,你一眼就能看出你对螺纹钢更有信心。
可组合性。 如果你有多个预测规则(趋势跟踪、均值回归、Carry),标准化后的预测值可以直接加权平均,得到一个综合预测。如果不用标准化,趋势跟踪输出的是”涨10%”,均值回归输出的是”RSI=30″,Carry输出的是”利差2%”——这三个数字根本没法直接加在一起。
卡佛的标准化方法是:先把原始预测值转换为Z分数(减去均值,除以标准差),然后乘以一个缩放因子,映射到-20到+20的范围内。 这样不管原始预测值的量纲是什么,标准化后的含义都是一样的。
– – –
EWMAC:卡佛的主力规则
卡佛在这一章详细介绍了他最常用的预测规则:EWMAC(指数加权移动平均线交叉)。
EWMAC的本质就是趋势跟踪,但用的是指数加权移动平均线(EWMA)而不是简单移动平均线(SMA)。两者的区别在于:SMA对过去N天的数据给相同的权重,而EWMA对最近的数据给更高的权重,对远期的数据给更低的权重。这使得EWMA对价格变化的反应更灵敏。
EWMAC的计算方式是:用一条快速EWMA减去一条慢速EWMA,得到一个差值。如果差值是正的(快速线在慢速线上方),说明价格在上涨趋势中,预测值为正;如果差值是负的(快速线在慢速线下方),说明价格在下跌趋势中,预测值为负。
卡佛建议使用多组不同速度的EWMA参数。比如:
• 快速:2日/8日交叉(捕捉短期趋势)
• 中速:4日/16日交叉(捕捉中期趋势)
• 慢速:8日/32日交叉(捕捉长期趋势)
• 更慢:16日/64日交叉
• 极慢:32日/128日交叉
• 最慢:64日/256日交叉
为什么要用多组参数?因为不同速度的参数捕捉不同时间尺度的趋势。 快速参数对价格变化反应灵敏,但容易被假信号干扰;慢速参数更稳定,但反应滞后。把它们组合在一起,可以在灵敏度和稳定性之间取得平衡。
卡佛还特别强调了一点:每组参数都需要做波动率调整。 原始的EWMA差值会受到资产波动率的影响——波动率高的品种,差值天然就大;波动率低的品种,差值天然就小。如果不做调整,你的预测值就不能跨品种比较。卡佛的做法是把EWMA差值除以波动率,这样消除了波动率的影响,得到一个可比较的标准化预测值。
这一步看起来简单,但非常关键。很多人在做趋势跟踪的时候,直接用原始的均线差值来判断信号强度,结果发现不同品种之间的信号强度完全不可比——螺纹钢的差值动辄几十个点,而豆粕的差值可能只有几个点。做了波动率调整之后,这个问题就解决了。
EWMAC的速度选择
卡佛在这一章花了不少篇幅讨论EWMAC的速度选择问题。他说,选择什么样的EWMA参数(快速多少天、慢速多少天),本质上是在选择你想要捕捉什么速度的趋势。
快速参数(比如2/8)捕捉的是短期趋势——价格在几天内的动量。这种信号反应灵敏,但噪音也多。慢速参数(比如64/256)捕捉的是长期趋势——价格在几个月内的方向。这种信号更稳定,但反应滞后。
卡佛建议同时使用多组参数,从快速到慢速都覆盖。他在自己的系统中使用了大约10组不同的EWMAC参数。这样做有两个好处:
更全面的趋势捕捉。 不管市场是出现短期快速趋势还是长期缓慢趋势,总有一组参数能捕捉到。
天然的分散效果。 不同速度的参数之间的相关性不是1——短期趋势和长期趋势有时候会背离。这种低相关性让综合预测更稳定。
卡佛还提到了一个很有意思的观察:慢速参数的夏普比率通常比快速参数高。 原因是慢速参数交易频率低,成本少,而且长期趋势比短期趋势更容易被捕捉。但慢速参数的回撤期也更长——它需要更长时间才能确认一个趋势的形成和结束。
所以卡佛的建议是:不要只用快速参数或只用慢速参数,而是快慢搭配。快速参数帮你抓住短期机会,慢速参数帮你稳定长期收益。两者互补。
– – –
预测值的截断
卡佛在这一章还讲了一个很重要的细节:预测值的截断(Capping)。
虽然预测值的理论范围是-20到+20,但在实际计算中,原始预测值可能会超出这个范围。卡佛建议把超出范围的值截断到±20。
为什么要截断?因为极端预测值意味着极端仓位。 如果你的预测值是+50,按照后面的仓位计算公式,你可能需要持有正常仓位2.5倍的合约。这太激进了——一旦预测出错,亏损会非常大。
截断到±20意味着:你的最大仓位是正常仓位的1倍。 这是一种内置的风险控制机制——不管你对市场多有信心,你的仓位都不会超过某个上限。
卡佛说,很多人觉得截断会”浪费”那些极端信号。但实际上,那些极端信号往往是最不可靠的——它们通常出现在市场剧烈波动的时候,而剧烈波动的时候恰恰是最容易出错的时候。截断是一种保守的做法,但长期来看,保守往往比激进更赚钱。
– – –
预测的平滑
卡佛建议对预测值做平滑处理。也就是说,不要直接使用当天计算出来的原始预测值,而是把它跟前几天的预测值做一个加权平均。
为什么要平滑?因为减少不必要的交易。 如果你的预测值今天是+15,明天变成了-5,后天又变成了+12,这种剧烈波动会导致你频繁地来回交易,产生大量交易成本。平滑之后,预测值的变化会更平缓,交易频率也会降低。
卡佛建议的平滑方法是:今天最终预测 = 0.8 × 昨天最终预测 + 0.2 × 今天原始预测。 也就是说,今天的预测值只有20%来自新数据,80%来自之前的预测。这使得预测值的变化非常平缓,大幅降低了交易频率。
但平滑也有代价:反应速度变慢。 如果市场突然出现一个大趋势,平滑后的预测值需要更长时间才能达到最大值。卡佛说,这是一个需要权衡的问题——平滑太多会错过趋势,平滑太少会产生太多交易。0.8/0.2是他经过大量测试后找到的一个比较好的平衡点。
– – –
其他预测规则
除了EWMAC之外,卡佛还在这一章介绍了其他几种预测规则:
突破(Breakout): 如果价格突破了过去N天的最高价,产生正预测;如果跌破了过去N天的最低价,产生负预测。这种规则不需要计算均线,更简单直接。卡佛说,突破规则在趋势明显的市场中表现很好,但在震荡市场中容易被假突破打脸。
Carry: 对于期货,Carry预测基于期限结构——如果一个品种处于现货溢价(backwardation)状态,做多有正的Carry收益,产生正预测;如果处于期货溢价(contango)状态,做多有负的Carry收益,产生负预测。对于外汇,Carry预测基于利差——买入高息货币,卖出低息货币。
动量(Momentum): 计算过去一段时间的累计收益率作为预测信号。表现好的品种产生正预测,表现差的品种产生负预测。卡佛建议使用12个月的动量作为预测信号,这跟学术文献中的”动量因子”一致。
卡佛说,这几种规则各有优劣,没有哪一个是”最好”的。最好的做法是把它们组合起来使用。 这就是第八章的内容。
预测规则的选择:理念为先
卡佛在这一章反复强调一个原则:选择预测规则的时候,先想清楚它的经济学逻辑。
比如趋势跟踪的逻辑是”市场对新信息的反应存在滞后”——不是所有交易者同时看到消息,信息传播需要时间,这导致价格会沿着一个方向持续运动一段时间。这个逻辑是有经济学基础的,所以趋势跟踪是一个值得信赖的规则。
比如Carry的逻辑是”风险溢价”——持有高风险资产应该获得更高的预期收益,否则没有人愿意承担额外风险。这个逻辑也是有经济学基础的。
但如果你说”我发现7日RSI大于70的时候做空能赚钱”,卡佛会问:这个规则背后的经济学逻辑是什么?为什么70这个数字有意义?为什么是7日而不是5日或10日?如果你答不上来,那这个规则很可能只是在拟合历史噪声。
卡佛说,他见过很多人开发预测规则的方式是:拿一堆指标,跑各种参数组合,看哪个回测结果最好就用哪个。这叫”数据挖掘”——从数据里挖规律。问题是,你在足够多的数据里总能找到”规律”,但那些”规律”大多数是偶然。
正确的做法是反过来:先有理念,再用数据验证。 你先想清楚”为什么这个规则应该有效”,然后用数据去验证你的假设。如果数据支持你的假设,那这个规则就值得使用。如果数据不支持,那不管回测结果多好看,你都应该放弃它。
– – –
资产配置投资者和半自动交易者怎么办
卡佛在这一章末尾还讨论了两类”特殊”投资者的预测方式:
资产配置投资者: 不预测价格,所有品种的预测值始终为+10。这意味着他们始终做多,不做空,不做择时。卡佛说,即使你完全不做价格预测,光是把资产配置系统化(用框架来管理仓位和风险),就已经比大多数投资者强了。
半自动交易者: 可以在系统预测的基础上叠加自己的主观判断。比如系统预测是+10,但你通过基本面分析认为应该更看多,你可以把预测调整到+15。但卡佛建议,主观调整的幅度不要超过系统预测的50%——否则你的主观判断会压过系统信号,系统化就名存实亡了。
– – –
第八章:综合预测——把多双眼睛看到的合在一起
为什么需要综合预测
如果你只用一个预测规则(比如只有EWMAC),那综合预测就是那个规则的输出,不需要额外处理。但如果你有多个预测规则(趋势跟踪+Carry+动量),或者同一个规则的多组参数(EWMAC-2/8 + EWMAC-4/16 + EWMAC-8/32),你就需要把它们组合成一个统一的预测值。
为什么要组合?因为不同规则在不同市场环境下表现不同。 趋势跟踪在趋势市里赚钱,在震荡市里亏钱;Carry在稳定市场里赚钱,在恐慌市场里亏钱。如果你只用一种规则,你的资金曲线会非常颠簸。但如果你把多种规则组合在一起,一种规则亏钱的时候,另一种规则可能正在赚钱——你的资金曲线就会平滑很多。
卡佛说,综合预测的核心思想就是:多元化的预测比单一预测更可靠。 这跟投资组合的道理是一样的——分散投资降低风险,分散预测也降低风险。
– – –
加权方法一:等权重
最简单的方法:每个预测规则给相同的权重。 如果你有三个预测规则(趋势跟踪、Carry、动量),每个权重就是1/3。最终预测 = (趋势跟踪预测 + Carry预测 + 动量预测) / 3。
如果你用的是同一个规则的多组参数(比如6组EWMAC参数),每组权重就是1/6。最终预测 = 6组预测值的算术平均。
卡佛说,等权重是他最推荐的方法。原因很简单:它没有任何需要优化的参数。 没有参数意味着没有过拟合的风险。虽然等权重不是”最优”的(在历史数据上可能不是表现最好的),但它是最”稳健”的(在新数据上表现最稳定)。
这跟他在第二部分批评均值-方差优化的逻辑是一致的:追求”数学上的最优”往往会导致过拟合,而”足够好”的简单方法往往更可靠。
– – –
加权方法二:波动率倒数加权
稍微复杂一点的方法:根据每个预测信号自身的历史波动率来分配权重。 波动率高的信号(预测值起伏大)给低权重,波动率低的信号(预测值起伏小)给高权重。
为什么这样做?因为波动率高的信号意味着”不确定性大”——它的预测值经常大幅变动,你对它的信心应该更低。波动率低的信号意味着”更稳定”——它的预测值变化平缓,你对它的信心应该更高。
具体做法是:计算每个预测信号的历史波动率,取倒数,然后归一化(让所有权重加起来等于1)。波动率最低的信号获得最高权重,波动率最高的信号获得最低权重。
卡佛说,这种方法比等权重稍微好一点,但改善幅度不大。如果你不想增加复杂度,等权重就够了。
– – –
加权方法三:优化权重
最”高级”的方法:通过历史回测,找到一组权重使得综合预测的表现(比如夏普比率)最优。
这听起来很诱人——用数据说话嘛。但卡佛对这种方法持谨慎态度。他在第二部分已经详细讨论过优化的陷阱:你优化出来的权重可能只是在拟合历史噪声。在样本内看起来完美的权重,在样本外可能表现很差。
卡佛说,如果你一定要用优化权重,必须遵守以下规则:
• 使用样本内数据优化,样本外数据验证
• 对权重做敏感性分析——小幅改变权重,看结果会不会剧烈变化
• 设置权重的上下限——不要让任何一个规则的权重超过50%或低于5%
• 如果优化结果跟等权重差距不大,直接用等权重
卡佛的原话大意是:如果优化出来的权重跟等权重差不多,那优化就是浪费时间。如果差距很大,那你应该怀疑优化结果是否过拟合了。
加权方法的实操选择
卡佛在这一章给出了一个很实用的建议:如果你不确定用哪种加权方法,就用等权重。
他说,他见过太多人在加权方法上纠结——花几周时间测试各种优化算法、各种约束条件、各种样本内外划分——最后发现优化出来的权重跟等权重差别不大,或者差别大的那部分恰好是过拟合的。
等权重的好处不仅仅是”简单”,更重要的是它没有自由度。没有自由度意味着没有任何可以被优化、被过拟合的变量。你不需要担心”这个权重是不是拟合了历史噪声”——因为根本没有权重可以拟合。
卡佛还提到了一个很有意思的实验。他把等权重跟各种优化方法做了对比测试,用了几十个品种、十几年的数据。结果发现:在样本内,优化方法确实比等权重好;但在样本外,等权重的表现跟优化方法差不多,甚至更好。
这个结论太扎心了。你花了大量时间精力去优化,最后发现还不如什么都不优化。这跟他在第二部分批评均值-方差优化的逻辑完全一致:数学上的”最优”不等于实践中的”最优”。
相关性对综合预测的影响
卡佛在这一章还讨论了一个很重要的问题:规则之间的相关性如何影响综合预测的效果。
如果你的多个规则之间相关性很高(比如多组EWMAC参数之间),那综合预测的分散化效果就很有限——因为它们大部分时间都在说同一件事。如果你的规则之间相关性很低(比如趋势跟踪+Carry),那综合预测的分散化效果就很显著。
卡佛给出了一些经验数据:
• 同一个规则的不同参数(比如EWMAC-2/8和EWMAC-4/16):相关性约0.7-0.9
• 趋势跟踪 vs Carry:相关性约0.0-0.3
• 趋势跟踪 vs 动量:相关性约0.3-0.6
• Carry vs 动量:相关性约0.1-0.3
从这些数据可以看出:趋势跟踪和Carry之间的相关性最低,它们的组合效果最好。这跟第二部分讲的”正偏度策略+负偏度策略组合”的逻辑是一致的。
卡佛的建议是:如果你只能选两种规则,选趋势跟踪+Carry。如果你能选三种,再加上动量。这三种规则之间的相关性足够低,能提供良好的分散化效果。
我的教训:太多规则反而更差
读完这两章,我想起自己做CTA的一段经历。有一段时间,我疯狂地往系统里加规则——EMA交叉、MACD、RSI、布林带突破、ATR通道、动量……最后系统里塞了十几个规则,每个规则都有自己的参数。
结果怎么样呢?综合预测值大部分时间都在±5之间晃悠——因为十几个规则的意见互相抵消了,最后得到一个”不痛不痒”的信号。仓位因此很小,收益也很小。
后来我读了卡佛的书才明白:规则不是越多越好。 如果你的规则之间高度相关(比如EMA交叉和MACD本质上都是趋势跟踪),那加再多规则也不会增加多少信息量,反而会让信号变得模糊。正确的做法是选择少数几个逻辑独立的规则(趋势+Carry+动量),让它们各司其职。
我现在用的系统只保留了三个规则:一组EWMAC参数做趋势跟踪,一个Carry规则做期限结构,一个12个月动量做动量信号。三个规则,等权重,简单明了。实盘效果比我之前那个”十几个规则大杂烩”好得多。
– – –
分散化乘数
卡佛在这一章还介绍了一个很重要的概念:分散化乘数(Diversification Multiplier)。
当你把多个预测规则组合在一起的时候,由于规则之间的相关性不是1(它们不是完全同步的),综合预测值的波动率会比单个规则的波动率低。这意味着综合预测值的平均绝对值会比单个规则小。
打个比方:如果你有三个规则,每个规则的预测值平均绝对值都是10,但它们之间的相关性只有0.5,那综合预测值的平均绝对值可能只有7左右。这意味着你的仓位会比预期的小——你实际上在”浪费”一部分预测能力。
分散化乘数就是用来修正这个问题的。它把综合预测值乘以一个大于1的系数(通常在1.0到1.5之间),让它的平均绝对值回到预期水平。
具体怎么计算?卡佛给出的公式是:
DM = 1 / sqrt(1 + (N-1) × avg_corr)
其中N是规则数量,avg_corr是规则之间的平均相关性。取倒数后就是分散化乘数。
举例:如果你有6个EWMAC规则,它们之间的平均相关性是0.7,那DM = 1 / sqrt(1 + 5 × 0.7) = 1 / sqrt(4.5) ≈ 0.47。取倒数 ≈ 2.12。这意味着你需要把综合预测值乘以2.12,才能让它跟单个规则的平均预测强度相当。
卡佛说,分散化乘数是一个经常被忽略但非常重要的步骤。如果你不做这一步,你的综合预测值会系统性地偏低,导致你的仓位系统性地偏小。虽然仓位小意味着风险小,但也意味着收益小——你可能因此错过了本应获得的收益。
– – –
综合预测的截断
跟单个预测值一样,综合预测值也需要截断到±20。
但卡佛在这里做了一个区分:单个预测值截断到±20是在标准化之后做的,综合预测值截断到±20是在加权平均和乘以分散化乘数之后做的。
这意味着:即使每个单个预测值都没有触及±20的边界,综合预测值在乘以分散化乘数之后也可能触及边界。这时候截断就起作用了——它限制了你的最大仓位。
卡佛说,截断是一种”安全阀”。它确保不管你的预测有多激进,你的仓位都不会超过某个上限。这种保守的做法可能在某些时候让你少赚一点,但在极端情况下能救你的命。
– – –
预测的更新频率
卡佛在这一章还讨论了一个实际问题:预测值应该多久更新一次?
他的建议是:每天更新一次。 收盘后计算当天的预测值,跟之前的预测值做平滑,然后用于第二天的交易决策。
为什么不更频繁?因为EWMAC和大多数规则都是基于日线数据的,日内更新没有意义。而且更频繁的更新会导致更频繁的交易,增加成本。
为什么不更少?因为如果你一周才更新一次,你可能会错过重要的市场变化。比如周三出现了一个重大利空,价格暴跌,但你的预测值要等到周五才更新——这两天你就暴露在不必要的风险中。
卡佛说,日频更新是一个比较好的平衡点。对于使用更长时间参数(比如64/256)的规则,你甚至可以每周更新一次,因为这种规则本身变化就很慢。
– – –
第七章+第八章到底在说什么
第七章(预测):用标准化的数字(-20到+20)来表达你对市场的看法。EWMAC是主力趋势跟踪规则,配合Carry和动量使用效果更好。
第八章(综合预测):把多个预测规则的信号组合成一个统一的判断。等权重是最简单也最稳健的加权方法,分散化乘数修正组合后的信号衰减。
这两章加在一起,解决的是”怎么看市场”的问题。第七章教你怎么生成信号,第八章教你怎么把多个信号组装在一起。
读完这两章,我最大的感受是:卡佛对”简单”的执着到了极致。 他的主力规则是EWMAC——本质上就是两条均线的交叉。他的加权方法是等权重——什么都不优化。他的平滑系数是0.8/0.2——一个固定的数字。整个预测系统里几乎没有需要优化的参数。
这跟很多量化团队的做法形成了鲜明对比。很多团队在预测信号上花大量精力——用机器学习、用深度神经网络、用几百个因子——最后得到一个在回测中表现惊艳但实盘一塌糊涂的”黑箱”系统。
卡佛的做法恰恰相反:用最简单的规则,最少的参数,最透明的逻辑。他说,一个好的预测系统应该能用一张纸写下来,让一个不懂编程的人也能理解。 如果你需要一台电脑才能解释你的系统在干什么,那它可能太复杂了。
这让我想到一个朋友跟我说的话:”我花了一年时间用LSTM做趋势预测,最后发现效果还不如EMA交叉。” 当时我觉得他在开玩笑,现在看来,卡佛早就给出了答案——简单就是力量。
卡佛还说了一句话,我觉得特别适合总结这两章:你的预测系统不需要比别人的好,它只需要足够简单、足够透明、足够稳定。 因为交易是一个长期游戏,决定你最终收益的不是你某一年的夏普比率有多高,而是你的系统能不能在十年二十年里持续运行下去。
一个简单的、你能理解的、你能信任的系统,比一个复杂的、你搞不清楚的、你只能”相信”的系统,有价值一万倍。
下一篇进入第九章和第十章,讲波动率目标和持仓规模——也就是”买多少”的问题。
– – –
附录:第七、八章核心概念速查
预测值:-20到+20的标准化数字。正=看多,负=看空,0=中性。绝对值=信心强度。
EWMAC:指数加权移动平均线交叉。快速EWMA – 慢速EWMA = 原始预测。多组参数捕捉不同时间尺度的趋势。
波动率调整:原始预测值除以波动率,消除品种间波动率差异,实现跨品种可比。
预测截断:超出±20的部分截断。限制最大仓位,内置风控。
预测平滑:最终预测 = 0.8 × 昨天 + 0.2 × 今天。降低交易频率,代价是反应变慢。
突破规则:价格突破N天最高/最低价时产生信号。简单直接,容易被假突破干扰。
Carry预测:基于期限结构(期货)或利差(外汇)。现货溢价=正预测,期货溢价=负预测。
动量预测:过去12个月累计收益率。表现好=正预测,表现差=负预测。
综合预测:多个预测的加权平均。等权重最稳健,优化权重有过拟合风险。
分散化乘数:修正组合后信号衰减的系数。规则越多、相关性越低,乘数越大。
资产配置投资者:所有品种预测值恒为+10。不做择时,只做配置。