很多朋友看到朋友圈晒出的“年化58%,最大回撤7%”这类曲线,第一反应都是问:这策略还有没有名额?我做量化这些年收到过太多类似的私信,每次我都先问一句:这个收益是从哪儿赚来的?对方的回答基本都是“策略厉害”“模型准”之类的。实际上,那些真正能在长时间尺度上跑到年化50%以上的复杂策略,背后玩的远不是“预测得更准”,而是另一套逻辑。这篇文章我想把这件事拆开聊清楚。
这不是一篇劝退文,也不是什么“高收益都是骗局”的警告帖。量化交易策略本来就分很多流派,有些策略的收益逻辑是扎实的,只是它赚的钱和你以为的钱不是同一个币种。搞明白这些之后,你再看那些漂亮的回测曲线,就能一眼分辨出哪些是值得继续研究的真东西,哪些只是参数凑出来的幻象。
1. 年化50%+只是结果,市场在奖励什么才是关键
1.1 你以为的Alpha,很可能只是Beta的另一种写法
做量化的人每天张嘴闭嘴Alpha、Beta,但真正看策略报告的时候,有相当一部分人把这两个概念混在一起。Beta就是市场整体涨跌给你的暴露收益,大盘涨10%,你满仓持有不动也有10%。Alpha是你通过选股、择时、风控等主动操作,在同样的市场暴露下多赚出来的那部分。
但很多回测报告里的“年化50%”,本质上只是某个时间窗口内市场风格的集中兑现。打个比方,2019年到2020年那一轮核心资产牛市,一个简单的“买入高ROE白马股、每月调一次仓”的策略,回测出来的年化收益可以非常惊人。它是Alpha吗?不是,它暴露在“大盘成长”这个风格因子上,那几年恰好是这类股票的Beta爆发期。等风格一反转,同一条策略曲线就会变得很难看。
我拆解过不少网上的“神策略”,第一步先把净值曲线和中证500、沪深300、国证2000这些基准指数做回归,再把常见的风格因子(市值、估值、动量、波动率)一起放进去回归,结果大多一目了然:所谓Alpha,大部分被几个风格因子解释掉了,剩余的真实Alpha窄得可怜。真正的超额收益,是在剥离掉这些风格暴露之后仍然显著为正的部分,那才考验建模功力。
1.2 那些藏在收益背后的“风险溢价”
市场为什么愿意给某些策略持续发钱?经济学里的解释是风险溢价——你承担了某种大多数人不愿意承担的“脏风险”,市场用超额收益来补偿你。这句话要反复读,因为几乎所有长期有效的策略都可以归类到某个风险溢价里。
举几个常见的:
- 小市值溢价:小股票流动性差、公司治理风险高、研究覆盖少,机构资金很难大仓位买进去,所以愿意给承担这些风险的人更高的潜在回报。
- 低波动异象:波动率低的股票长期收益反而跑赢高波动股票,因为散户偏爱“刺激”的彩票型股票,把它们的价格买贵了,低波动股票反而被低估。
- 反转效应:短期内涨多了的股票容易被过度追捧,跌多了的容易被过度抛弃,做反转就是在赚这种情绪矫正的钱。
- 期限结构溢价:期货市场上远月合约和近月合约之间的价差,反映的是持仓者对未来的供需预期分歧,做跨期套利赚的是预期差修正的钱。
这些都可以用一个表列清楚:
| 收益来源 | 赚的是谁的钱 | 最大风险 |
|---|---|---|
| 小市值溢价 | 机构因容量限制放弃的定价空间 | 流动性踩踏,退市风险 |
| 低波动异象 | 偏好彩票型股票的散户 | 风格持续漂移时间过长 |
| 短期反转 | 追涨杀跌的情绪盘 | 动量极端行情中被打爆 |
| 期限结构溢价 | 套期保值者付出的贴水/升水 | 基差不回归、逼仓 |
理解了风险溢价,你就明白那些高收益复杂策略的底层资产是什么了。它们不是靠“模型能看见别人看不见的东西”赚钱,更多时候是靠“承担了别人不愿意承担的风险”赚钱。只不过复杂策略用统计模型把这种风险承担包装得没那么容易看出来。
1.3 加了杠杆的年化,和你想的年化不是同一种东西
还有一种常见的障眼法:杠杆。如果一个策略底层资产的年化收益是20%,波动率10%,那么用3倍杠杆,在不考虑融资成本的情况下,年化收益可以做到60%。看收益率很美,但最大回撤也被同步放大。
问题在于,真实杠杆交易是有成本的,还有保证金追缴和流动性踩踏问题。市场上绝大多数“年化50%+”策略并不是因为选股能力真的那么强,而是内嵌了杠杆——无论是直接融资融券,还是通过期货、期权等衍生品实现的风险暴露放大。
判断策略含不含杠杆有个简单办法:看它的净值波动率。如果一个股票多头策略年化收益50%,年化波动率却只有10%以下,那基本可以确定它加了杠杆,或者它在用衍生品做收益增强。波动率数字不会骗人,它是收益最诚实的影子。
用凯利公式的视角看这个问题更清楚:一个策略的最优仓位取决于胜率和赔率,而不是收益本身有多高。如果你的资金曲线波动太大,哪怕最终年化漂亮,中间的账户回撤也足以让你在黎明前被震动出局。所以做量化的人常说:先比回撤,再比收益;收益是亏出来的经验,回撤才是活下来的本钱。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 高收益策略的真实骨架:价差回归、流动性提供与状态决策
2.1 统计套利:赚的是定价错乱的钱
有一类策略极受量化圈推崇,叫统计套利。它的核心不是预测资产往哪儿走,而是赌“价格的偏差会回归”。两个同为银行股的股票,历史上价差一直围绕一个均值波动,某天因为一个突发的情绪事件,价差被瞬间拉大到正常水平的3倍标准差,统计套利就会买入被错杀的那只、卖出被高估的那只,赌价差回归到合理区间。
这类策略之所以能长期存在,是因为市场里永远有其他参与者因为风控、流动性、情绪等因素,不得不以“错误”的价格成交。统计套利干的事情就是站在对面接走这些错误定价的单子,等错价恢复后赚差价。
西蒙斯和他的文艺复兴科技公司,被报道最多的部分就是这类玩法。准确说,大奖章基金早期很大一块收益来自于高频的统计套利和市场微观结构交易——它们并不试图预测明天的涨跌,而是捕捉日内极短时间内价格的错价和订单流的不平衡。这种策略的容量有限,但对模型和数据的要求极高,属于典型的“赚辛苦钱”,只是这份辛苦是用机器替代了人。
2.2 高频做市:不预测方向,只赚流动性差价
另一类策略是高频做市,它的收益模型更直白:挂买单和卖单,赚买卖价差。你买入时成交在卖一价,卖出时成交在买一价,中间那个差价就是做市商的毛利。做市策略每个单笔赚得很少,但依靠极高的周转频率和极低的手续费率,累积起来的利润也很可观。
这类策略对速度和基础设施的要求高得离谱,服务器要托管在交易所机房同一栋楼里,行情到柜台的时间要精确到微秒。所以它不适合普通个人交易者直接上手,但它的逻辑值得所有人借鉴:做市商从来不问“股票要涨还是要跌”,只关心“我提供的这200毫秒流动性,该收多少成本”。
在这个层面上,很多“年化50%+”的真相就是高频周转的复利。高频策略单位时间内的胜率可能只有55%到60%,但架不住一天可以做几百个来回,长期积累下来收益曲线会非常平滑。反过来,如果你看到一个低频策略(比如月度调仓)也能跑出年化50%且回撤极小,那就得追问:这么低频的频率,凭什么能在这么长的时间里持续战胜市场?答案通常是:它承担了某种未在报告中列出的风险,或者干脆就是数据出了问题。
2.3 事件驱动与机器学习:从找规律到找弱关联
再往“复杂策略”方向走一步,就是事件驱动和多因子机器学习的混合体。事件驱动的收益来源是公司公告、行业政策、指数调整等特定事件发生后,资产价格需要一段时间才能充分反映信息,策略在这个“反应不足”的窗口里建仓,赚的是信息传播速度的差价。
机器学习模型的加入,实际上是把这个过程自动化了。传统多因子模型靠人来研究“市盈率对收益有没有影响”“营收增速能不能预测上涨”,机器学习则直接说:我不用你告诉我哪些因子有用,我直接把几百个行业指标、量价指标全扔进模型,让算法自己去拟合。
这类模型确实能捕捉到许多人工很难发现的非线性关系,这也是为什么现在AI量化成为热点。但问题是,数据里的弱关联很容易被过度挖掘。如果训练数据不够长、市场结构发生改变,那些拟合出来的关联就会瞬间失效。圈里有句玩笑话:机器学习最大的本事,是把训练集上的噪音也学得和信号一样像。这句话一点都不夸张。
2.4 当交易变成马尔可夫决策过程:调仓和风控的AI化
再深入一层,近年来不少团队把强化学习和马尔可夫决策过程(MDP)引入仓位管理和风控环节,这也是“量化交易助手Kronos”这类工具走红的原因之一。传统多因子选股回答的是“买什么”,MDP框架则延伸了一步:给定当前持仓状态、市场状态、账户风险限额,每一步该如何调仓,才能让长期累计收益最大化。
在这个框架下,交易被建模成一个马尔可夫决策过程:状态(state)是账户当前持仓和市场特征,动作(action)是加减仓或调整个股权重,奖励(reward)是扣除交易成本和风险惩罚后的收益变化。策略每走一步,都在尝试最大化未来的累计奖励。训练时一般会用历史数据模拟大量交易轨迹,让模型学会在“什么时候该果断调仓”和“什么时候该安静拿着”之间做权衡。
这里需要提醒一句:MDP模型在学术上很漂亮,在实盘里却极难训练,主要难在奖励函数的设计——如果只把收益率当奖励,模型会倾向于冒巨大风险追求极端收益;所以通常要在奖励函数里加入回撤惩罚项、仓位限制项,把模型的“胆子”约束在风控框架内。同时,状态转移概率在金融市场里是不稳定的,今天学到的规律明天可能就变了。这也是为什么真正成熟的团队宁可用MDP辅助调仓,也不会把整个交易决策完全交给一个端到端的强化学习模型。
3. 回测曲线越漂亮,越要小心这几道“吃钱”的关卡
3.1 过拟合与“回测工程师”:可以设计出任何你想要的曲线
我见过最离谱的一个策略,在参数优化之后夏普比率做到8以上,年化收益接近200%,回撤基本贴着零轴。开发者很兴奋,觉得找到了圣杯。我让他把优化参数的搜索范围打开看了一下,好家伙,模型里光移动平均周期就有从3到250天的200多组候选,再加上ATR止损倍数、持仓上限、调仓频率等变量,总参数组合超过50万个。
在50万个参数组合里,必然存在极少数在一段历史数据上表现完美的组合——这不是模型发现了规律,而是它恰好记住了那一段历史的每一个噪声。这在量化里叫过拟合,圈内管这种流程叫“回测工程师”:给你足够多的参数,我能在任何一段历史行情上设计出任何一条你想要的收益曲线,包括负收益的。
要识别过拟合,最简单的办法是做参数敏感性测试。一个真正稳健的策略,参数在合理范围内变动时,收益表现不应该发生剧烈变化。如果你的策略把MACD快线周期从12改成13,年化就从50%掉到10%,那它就不是一个策略,只是一个精致的曲线拟合工具。
3.2 数据坑:幸存者偏差和未来函数怎么悄悄抬高收益
比过拟合更隐蔽的坑,藏在数据里。最常见的是幸存者偏差——当前还在正常交易、数据完整的股票,会被纳入股票池;而已经退市、被ST、因为财务造假崩盘的股票,因为数据缺失会被自动剔除。这会导致选股策略在回测里永远选不到那些后来暴雷的股票,收益自然被系统性抬高。
我自己处理数据时就特别注意这一点:股票池必须是动态的,应当包含“当时存在”的全部股票,包括那些后来退市的。用今天的存量股票池回测过去10年的历史,等于开了一双能看到未来的眼睛,收益高得毫无意义。
另一个数据坑是未来函数。用财报数据做因子时,财报发布日期和报告期截止日之间有数周到数月的时间差。如果策略在5月1日使用一季报数据调仓,而实际一季报可能4月底才陆续披露,数据对齐稍有马虎,就会出现在财报还没公布时就用上了财报数据的“穿越”问题。处理办法是在回测引擎里加一个“数据发布日期”字段,所有因子取值只在发布日期之后才允许被使用。
3.3 成本、滑点与策略容量:真实收益最容易在这里打折
假设一个策略年化收益50%,月度调仓一次,全年换手率大约1000%左右(十次全仓换手)。如果双边交易成本是千分之三(佣金加印花税加冲击成本),一年的成本损耗大约是10%。如果策略做的是周频调仓,换手率更高,成本损耗会更惊人。
来看一张估算表:
| 调仓频率 | 年换手率(估算) | 双边成本0.1%损耗 | 双边成本0.3%损耗 | 双边成本0.5%损耗 |
|---|---|---|---|---|
| 月度调仓 | 约10倍 | 约1% | 约3% | 约5% |
| 周频调仓 | 约50倍 | 约5% | 约15% | 约25% |
| 日频调仓 | 约250倍 | 约25% | 约75% | 亏损 |
很多回测框架默认手续费率是万分之二、滑点设为零,这样的设置放到高频模型上会严重失真。年化50%里如果扣掉真实成本只剩10%,那策略的实际竞争力和回测报告展现出来的完全不是一个量级。
策略容量同样关键。一个日均交易额只有5000万的小市值股票模型,策略资金如果增加到5000万,单笔冲击成本会显著上升,原本的Alpha可能瞬间被自己的交易磨损掉。判断容量有一个粗糙的经验法则:策略资金量不要超过其持仓标的日均成交额的1%到2%,超过这条线后回测结果基本不作数。
3.4 拥挤度与收益衰减:热门策略的寿命比想象中短
复杂策略还有一个反直觉的特征:知道的人越多、使用的人越多,收益衰减得越快。统计套利之所以有效,是因为市场上错误定价的订单有限,当大量资金都跑去接错价单时,错价在几毫秒内就被抹平,后来者的毛利空间消失。
过去几年小市值因子就是典型的例子:当越来越多的量化私募用中证1000、中证2000的小市值股票做增强后,这个因子的超额收益明显下降。不是因为逻辑错了,而是因为拥挤了——挖掘同一个矿的人太多,矿就会被挖浅。你今天看到的一个年化50%的复杂策略,很可能只是某个曾经有效的因子正在被资金快速填平的最后窗口,等你的资金真正建好仓,窗口可能已经关了。
所以评估策略时,我习惯加一步“拥挤度体检”:看策略持仓的股票池规模、看同类风格基金的规模变化、看策略收益在近半年是否已经出现明显衰减。如果一个策略只在过去的回测里赚钱,而在最近的实盘或仿真里收益显著缩水,那就不能再用历史曲线说服自己了。
4. 拆解复杂策略的实操方法:从回测报告反推交易逻辑
4.1 先做收益归因,把“市场行情贡献”和“策略真实贡献”分开
遇到一份漂亮的策略报告,我的第一个动作不是看代码,而是把它的净值曲线下载下来,跑一遍收益归因。取策略的每日收益率序列作为因变量,把几大宽基指数收益率、风格因子收益率作为自变量,做一次多元线性回归。
回归结果里最有价值的三个数字是:R方有多大,说明策略收益有多少能被市场风格解释;因子系数显著不为零的那些,告诉你这个策略暗地里押注了哪些方向;残差项的标准差,才是策略真正“独特”部分的波动。
如果回归出来的R方超过0.7,说明这个策略本质上是一个加了风格的指数增强基金,只是用了更复杂的工具包装。这时候你不需要研究它那些花哨的模型,只需要评估它暴露的主要风格因子未来还有没有延续性就够了。真正值得深入研究的,是那些R方低、残差项依然有稳定正收益的策略——它们才可能藏着别人没看到的市场微观结构优势。
4.2 分市场环境回测:牛市里跑出的高收益参考价值有限
我拆解策略的第二个习惯,是把回测区间拆成几段市场环境分别看:大涨段、大跌段、震荡段、结构分化段。方法不难,可以用宽基指数的均线和波动率给时间段做标记,也可以手工挑几段标志性的行情年份。
这样拆分后,很多策略的原形会立刻显现。有些策略的收益几乎全部集中在指数上涨期,下跌期和震荡期都在磨损资金,这种策略本质上就是“牛市Beta加了一点逆向抄底择时”,它的年化50%很大程度来自过去十年恰好牛长熊短的市场结构。另一些策略则在震荡市和熊市里也能贡献稳定正收益,只是牛市里跑不赢指数——这类策略才是真正的全天候工具,值得花更多时间研究。
4.3 逐笔检查交易流水,看清楚钱到底从哪里来
拆解策略最笨但最有效的方法,是打开交易流水记录,一笔一笔看它到底在做什么样的交易。你需要关注的字段包括:每笔交易的持仓周期是几天、买卖时的价格相对当天均价偏离多少、单笔交易的盈利分布是又长又细还是又短又粗。
从交易流水里能看出三个信息:第一,策略的真实持仓周期是不是和报告里说的一致,有些自称“中低频基本面”的策略实际在偷做日内T+0,这意味着它对执行系统的要求比想象中高得多;第二,单笔盈利的分布形态,如果盈利主要来自少数几笔极端行情的交易,而大多数交易都是小亏,那这个策略其实是负偏度收益,靠小概率大赚覆盖频繁的小亏,心理承受门槛非常高;第三,交易标的的流动性曲线,有没有出现过单笔成交占当日成交量比例过高的记录,如果有,实盘里这笔单子根本不可能按模拟价成交。
4.4 用框架做一次带成本的快速压力验证
如果你手头拿到的是Python代码或者策略描述,建议用现成的量化框架做一次快速验证。微软开源的Qlib是个不错的选择,它自带数据清洗、因子计算和回测模块,社区里还有很多现成的AI策略示例可以直接跑。
用Qlib做压力验证时,有三个地方要手动加严:一是交易成本设置,不要用默认的低费率,建议按你实际开户的佣金加滑点来设;二是涨跌停限制,股票涨停时买不进、跌停时卖不出,很多回测框架不处理这个细节,会凭空增加收益;三是停牌处理,持仓股票停牌期间无法卖出,但部分回测引擎会默认你调仓成功,这也是收益虚高的来源。
跑完对比一下:加上这些真实约束后,策略的年化收益还剩多少?如果从50%掉到20%,说明这个策略的真实收益大量建立在“交易能完美成交”的假设上,实盘执行难度极大。如果还能维持在35%以上,那起码说明策略的逻辑具备实盘基础,可以进入下一轮更细致的打磨。
5. 面对年化50%+的策略,普通人该守住的原则
5.1 讲不清“赚谁的钱”,默认它是过拟合
判断一个复杂策略值不值得跟踪,第一个面试题永远是:请用三句话说清楚,你的策略赚的是谁的钱,凭什么你能赚到这笔钱。如果你听到的答案是“模型预测准”“AI发现规律”“大数据分析”这类空泛说法,基本可以认定这不是一个成熟策略。
真正能长期存在的策略,赚的都是某类参与者系统性让渡的利益:追涨杀跌者贡献反转收益、过度自信者贡献了超额交易成本、被迫平仓者贡献了流动性溢价、套期保值者贡献了期限结构贴水。这些利益来源都对应着一类具体行为的对手方,也对应着策略的风险边界。如果对方说不清这个链条,那回测曲线大概率只是历史数据的一次漂亮拟合。
5.2 任何策略先过成本与容量测试,再谈实盘
我见过非常多个人交易者,拿着一个回测年化80%的策略冲进实盘,三个月后亏损离场,然后得出“量化没用”的结论。问题不在量化,在于他们跳过了成本与容量测试这一步。
建议把测试拆成三道过滤网:第一道,把手续费调到真实水平,把滑点设置为0.1%左右,看收益还剩多少;第二道,把策略的资金规模扩大10倍再做一次回测,观察收益衰减幅度;第三道,把回测区间缩短到最近一年,看看策略在最近的市场结构下有没有失效。三道测试都过关,才值得动用真实资金去做小仓位仿真。这里的核心思想是:回测里赚到的钱只有一部分真正属于你,另一部分属于交易成本和服务商。
5.3 用最大回撤和最长亏损期评估策略,不要用年化收益
人的心理承受能力是评估策略前必须诚实面对的参数。一个最大回撤50%但年化80%的策略,和专业交易者实际能拿到手的收益是两回事。回撤到30%时你会开始怀疑模型,回撤到40%时你会手动干预,回撤到50%时你很可能已经割肉离场,正好把肉割在最低点。
评估策略时应该同时看四个数字:年化收益、最大回撤、夏普比率(或卡玛比率)、最长亏损期。如果一个策略的最长亏损期超过半年,哪怕它的长期年化很漂亮,也不适合作为个人交易者的主力策略,因为等待是一种真实的成本,它会消耗纪律和信心。我自己更看重卡玛比率,也就是年化收益除以最大回撤,数值大于1的策略才有资格进入实盘观察名单。
5.4 借鉴策略的因子和思路,而不是直接抄作业
最后一条经验送给想从复杂策略里学到东西的朋友:别急着原样复现代码,先提炼思路。看到一个高收益策略,你至少可以问三个问题:它主要用了哪类因子?它在什么市场状态下最赚钱?它做了什么样的风险过滤?
把这些答案拆解出来,融进自己的交易体系里。比如你看到一个事件驱动策略收益很好,你不需要完全照搬它的公告抓取系统,但你可以开始关注自己持仓标的的业绩预告窗口;比如你看到一个基于MDP的仓位管理模型,你不需要训练一个强化学习智能体,但你可以把“扣掉交易成本和回撤惩罚后再优化仓位”的思路用在你自己现有的策略上。好的策略代码往往不好抄,因为背后对数据细节的处理需要大量工程积累,但它的思想和风险意识一定可以学。
如果你问我这些年看下来最重要的经验是什么,我会说:那些长期保持高收益的策略,没有一个是靠“预测更准”活下来的,它们要么在承担某种被低估的风险,要么在赚取某种被忽视的市场摩擦,要么在做着极致的成本和执行管理。理解这一点,比找到任何一份“年化50%+”的代码都有价值。
