近期,我围绕动量因子构建了多个量化策略,但实际操作中收益和回撤都不尽如人意。于是,我在社区发帖分享了自己的回测情况,有人推荐我阅读了一本相关的书籍,以下是我的新视角解读。

简而言之,该策略旨在利用动量因子发掘上升趋势明显的股票,买入并持有,直至趋势结束,以期在牛市中获得超额收益。

作者选用标普500作为股票池,其逻辑是:一只股票能够被纳入指数,往往是因为其过去的价格走势强劲。而当股票被从指数中剔除时,通常是因为其价格表现不佳,市值跌落至要求之下。这使标普500指数在某种程度上自然地具备了动量策略的特征。

关于动量效应,作者解释说,一只股票在经历一段时间的价格上涨后,继续上涨的概率通常大于下跌的概率。而且,作者不仅通过计算股票的年化收益率来作为动量因子筛选股票,还设定了一些附加条件,例如:

以下是一个扩展后的

股票价格必须高于其100日均线。若非如此,则说明其不符合动量标准。因为在上涨市场中,表现优异的股票价格通常会远高于其100日均线。但在熊市或市场转换期,上涨股票较少,这一规则有助于避免买入横盘或下跌的股票。

同时,作者提醒注意价格缺口。若某股票在过去90天内价格缺口超过15%,则取消其买入资格。因为如果不排除这一情况,可能会误买入非真正的动量股票,比如短期冲击可能导致股价大幅波动,即使对年化收益率进行了修正,也可能无法抵消这一影响。

动量因子的应用本质上是一种趋势跟随策略,而该策略的弊端及补偿方案,原书中也有所提及:在市场横盘整理或快速切换方向时,趋势跟随者可能会亏损。在某些市场或行业,这种现象可能持续多年,甚至长达十年。因此,趋势跟随策略的核心在于多元化,通过同时交易多种不同类别的资产,以提高成功概率,并用盈余资金弥补在某一资产类别上的损失。

这一观点在实际回测中也得到了验证,策略收益基本未能跑赢大盘。

以下是策略优化后的流程图,以及核心算法的介绍:

股票排名以稳步上升的股票为筛选目标,不仅要求收益可观,还要尽可能平稳。主要依据两个指标:股票年化收益和波动率。年化收益通过指数回归计算日涨幅得出,波动率则通过r-squared判定系数衡量价格序列与回归直线的拟合程度。最终将二者乘积作为股票评分。

头寸规模的计算引入了ATR(平均真实波幅)指标,用于衡量股票价格波动。根据ATR和风险因子设定头寸规模,并设定阈值,以减少换手率和避免过多小额交易。

本次回测复制了原书策略,以沪深300代替标普500,未针对A股市场做调整。牛市中表现尚可,但在熊市和震荡市需结合其他策略进一步优化。

作者关于参数优化的观点令人印象深刻:不应过分追求精确数字,而应深入思考策略理念。过度优化可能导致策略失去健壮性。从这一角度看,我对动量策略的表现感到满意。