机器学习与算法交易(二): 金融特征工程与简单量化交易
金融特征工程——α因子研究
算法交易策略由信号驱动,这些信号指示何时买卖资产,以期获得相对于基准(如指数)的超额回报。资产回报中⽆法由该基准⻛险敞⼝解释的部分被称为阿尔法(alpha),因此,旨在产⽣此类⾮相关回报的信号也被称为阿尔法因⼦。数⼗年的研究积累了⼤量关于市场运作⽅式的知识,并由此揭示了哪些特征在解释或预测价格变动⽅⾯可能优于其他特征。
解释
假设你投资了一个基金,它的年回报率是 10%;但我们知道它是跟着某个市场基准(比如标普500指数)运作的,而这个基准的风险和收益特征可以解释其中的 8%。
那么: 这8% 是由市场风险因子解释的回报;剩下那无法用基准解释的额外2%,就是所谓的 “阿尔法(alpha)”。
Alpha 是资产实际回报中超出由基准风险因子(如市场波动)所能解释的那一部分收益,代表主动管理者带来的“超额回报”或“选股能力”。
从数据到信号
阿尔法因⼦是对原始数据的转换,旨在预测资产价格的变动。它们被设计⽤来捕捉驱动资产回报的⻛险。⼀个因⼦可以组合⼀个或多个输⼊(一个阿尔法因子可能是多个数据源计算而来的,比如动量因子可能用到“过去30天收益率”“成交量变化”等),但每次策略评估该因⼦以获取信号时,它都会为每个资产输出⼀个单⼀的值(但是当你用这个因子去评估某个资产时,它会输出一个明确的数值,表示这个资产当前的“买入吸引力”)。交易决策可能依赖于不同资产间的相对因⼦值,也可能依赖于单个资产的因⼦模式(可以用因子值和历史比或和其它资产的因子值比)。
产生因子的数据源多种多样,其背后的经济学理论可以是理性的,因此从⻓远来看,因⼦具有⾼回报,以补偿其在经济不景⽓时的低回报;其也可以是⾏为性的,即因⼦⻛险溢价源于代理⼈可能存在的、未被套利消除的偏⻅或不完全理性的⾏为。
为避免错误发现并确保因⼦能提供⼀致的结果,它应当具备有意义的经济学直觉,这种直觉基于各种已确⽴的因⼦类别(如动量、价值、波动率或质量)及其基本原理,这使得因⼦更有可能反映市场会为之补偿的⻛险。
阿尔法因⼦的计算规则:通过简单的算术运算(例如,变量随时间推移的绝对或相对变化、数据序列之间的⽐率,或在时间窗⼝内的聚合,如简单或指数移动平均线)转换原始市场数据、基本⾯数据或另类数据⽽产⽣的。它们还包括从价格和交易量模式的技术分析中产⽣的指标。
因子研究成果
理想世界中,⻛险因⼦之间应当相互独⽴,产⽣正的⻛险溢价,并构成⼀个完整的集合,能够涵盖所有⻛险维度,并解释特定类别资产的系统性⻛险。但在实践中,这些要求只能近似满⾜,不同因⼦之间存在着重要的相关性。
动量投资(基于趋势)
动量投资是最早出现的因子策略之一,基本做法是:买入近期表现强劲的资产,卖出表现疲弱的资产。动量策略基于一个前提:资产价格具有趋势性,即当前的涨跌会延续(表现为价格的正向序列相关性)。这一点与有效市场假说相冲突(该假说认为过去的价格无法预测未来),但实证结果表明,动量策略在现实中依然有效,并已成为许多交易系统的核心组成部分。
动量效应的成因与驱动因素
-
行为学反映:反映了投资者⾏为、持续的供需失衡、⻛险资产与经济之间的正反馈循环,或是市场微观结构。⾏为学上的基本原理反映了投资者在处理新信息时速度不同,从⽽对市场新闻产⽣反应不⾜和反应过度的偏差。在对新闻最初的反应不⾜之后,投资者往往会推断过去的⾏为,从⽽形成价格动量。恐惧和贪婪的⼼理也促使投资者增加对盈利资产的敞⼝,并继续抛售亏损资产。
-
基本面驱动:
- 风险资产和经济之间的正反馈循环:经济增⻓会提振股市,由此产⽣的财富效应⼜通过增加⽀出反馈到经济中,再次推动增⻓。
- 市场摩擦导致的持续的供需失衡:商品⽣产在适应需求变化时存在延迟。⽯油⽣产可能滞后于经济繁荣带来的更⾼需求数年之久,⽽持续的供应短缺可能引发并⽀持价格的上涨动量。
- 投资者实施模仿其⾃身偏差的策略:“⽌损不⽌盈”的交易智慧让投资者使⽤⽌损、固定⽐例投资组合保险(CPPI)、动态 Delta 对冲或基于期权的策略(如保护性看跌期权)。这些策略会产⽣动量,因为它们意味着投资者预先承诺在资产表现不佳时卖出,在表现优异时买⼊。
对于该因子有诸多衡量指标,例如下面这些:
因子 (Factor) | 描述 (Description) |
---|---|
相对强弱指数 (RSI) | RSI通过比较不同股票近期的价格变化幅度,来识别股票是处于“超买”还是“超卖”状态。高RSI(通常高于70)表示超买,而低RSI(通常低于30)表示超卖。它首先计算在给定天数(通常为14天)内,上涨日的平均价格变动 $\Delta_{p}^{up}$ 和下跌日的平均价格变动 $\Delta_{p}^{down}$,然后通过以下公式计算RSI:$RSI = 100 - \frac{100}{(1 + \frac{Δp_{up}}{Δp_{down}})}$ |
价格动量 | 该因子计算过去特定交易日内的总回报。在学术文献中,由于经常观察到的短期反转效应,通常会使用过去12个月(不包括最近一个月)的数据。然而,更短的周期也已被广泛使用。 |
12个月价格动量成交量调整 | 该指标通过将过去12个月的总回报除以这些回报的标准差来进行归一化。 |
价格加速度 | 价格加速度通过对较长和较短时期(例如1年和3个月的交易日)的每日价格进行线性回归,计算出价格趋势的梯度(经波动性调整),并比较斜率的变化作为价格加速度的衡量标准。 |
较52周高点下跌百分比 | 该因子使用最近价格与过去52周最高价格之间的百分比差异。 |
盈利预测数量 | 此指标根据共识预估的数量对股票进行排名,作为分析师覆盖度和信息不确定性的一个代表。数值越高越理想。 |
N个月评级变化 | 该因子根据过去N个月内共识评级的变化对股票进行排名,其中评级改善是理想的(无论是从“卖出”上调至“持有”,还是从“买入”上调至“强力买入”等)。 |
12个月流通股变化 | 该指标衡量过去12个月公司经拆股调整后的流通股数量变化,其中负向变化意味着股票回购,是理想的信号,因为它表明管理层认为该股票相对于其内在价值被低估,因此具有未来价值。 |
6个月目标价变化 | 该指标追踪过去6个月平均分析师目标价的变化。自然地,较高的正向变化是更理想的。 |
净盈利修正 | 该因子将盈利预测向上修正和向下修正之间的差异表示为总修正次数的百分比。 |
空头净额占流通股比例 | 该指标衡量当前被卖空的股票占流通股的百分比。卖空指投资者借入股票并卖出,期望其价格下跌后再买回以获利。因此,高水平的空头净额表明市场情绪悲观,并预示未来表现可能不佳。 |
价值因子(基本面发掘)
股价相对于其基本⾯价值较低的股票,其回报率往往会超过按市值加权的基准。价值因⼦反映了这种相关性,旨在为被低估的廉价资产发出买⼊信号,并为被⾼估的资产发出卖出信号。因此,任何价值策略的核⼼都是⼀个估算资产公允价值或基本⾯价值的模型。公允价值可以定义为⼀个绝对的价格⽔平、相对于其他资产的价差,或者资产应该交易的价格区间。
- 基本价值策略:从经济和基本⾯指标中推导出资产的公允价值,这些指标取决于⽬标资产类别。股票价值法将股价与基本⾯指标进⾏⽐较,例如账⾯价值、营业收⼊、净利润或各种现⾦流指标。
- 市场价值策略:利⽤统计或机器学习模型来识别因流动性供给效率低下⽽导致的错误定价。统计套利和指数套利是捕捉短期内暂时性市场影响回归的典型例⼦。在更⻓的时间范围内,市值交易还利⽤了股票和商品中的季节性效应。
- 跨资产相对价值策略:跨资产相对价值策略关注的是不同资产类别之间的错误定价。相对价值策略包括信⽤和股票波动率之间的交易、利⽤信⽤信号交易股票,或商品与相关股票之间的交易等。
价值因子的成因与驱动因素
价值效应的存在既有理性的解释,也有⾏为⾦融学的解释。价值效应被定义为价值股投资组合相对于成⻓股投资组合的超额回报,前者的市值相对于基本⾯较低,⽽后者的市值相对于基本⾯较⾼。
- 理性的有效市场观点:价值溢价是对更⾼实际⻛险或感知⻛险的补偿。研究⼈员提供的证据表明,与更精简、更灵活的成⻓型公司相⽐,价值型公司适应不利经济环境的灵活性较差,或者价值股的⻛险与⾼财务杠杆和更不确定的未来收益有关。价值股和⼩型股投资组合⽐成⻓股和⼤型股投资组合对宏观冲击更为敏感。
- ⾏为⾦融学的⻆度:价值溢价可以⽤损失厌恶和⼼理账户偏差来解释。由于前期收益提供了缓冲,投资者可能不太关⼼近期表现强劲的资产所产⽣的亏损。这种损失厌恶偏差会诱使投资者认为该股票的⻛险⽐以前更低,并以更低的折现率对其未来现⾦流进⾏折现。反之,近期表现不佳可能会导致投资者提⾼该资产的折现率。
这些差异化的回报预期可以产⽣价值溢价:相对于基本⾯⽽⾔市盈率较⾼的成⻓股在过去表现良好,但由于投资者对⻛险较低的偏⻅,他们未来会要求更低的平均回报,⽽价值股的情况则正好相反。
捕捉价值效应的因子
因子 (Factor) | 描述 (Description) |
---|---|
现金流收益率 | 该比率用每股运营现金流除以股价。较高的比率意味着股东能获得更好的现金回报(如果通过股息或股票回购支付,或在业务中进行有利可图的再投资)。 |
自由现金流收益率 | 该比率用每股自由现金流(反映了在扣除必要开支和投资后可供分配的现金量)除以股价。更高且不断增长的自由现金流收益率通常被视为业绩超群的信号。 |
投入资本现金流回报率 (CFROIC) | CFROIC衡量一家公司的现金流盈利能力。它用运营现金流除以投入资本(定义为总债务加净资产)。更高的回报意味着企业在给定的投入资本下拥有更多现金,为股东创造更多价值。 |
现金流与总资产比率 | 该比率用运营现金流除以总资产,表明一家公司相对于其资产能产生多少现金。与CFROIC一样,比率越高越好。 |
自由现金流与企业价值比率 | 该比率衡量一家公司产生的自由现金流相对于其企业价值(衡量为股权和债务的总价值)的水平。债务和股权价值可以从资产负债表中获取,但假设相应资产被活跃交易,那么市场价值通常能提供更准确的情况。 |
EBITDA与企业价值比率 | 该比率衡量公司的息税折旧及摊销前利润(EBITDA,可作为现金流的代表)与其企业价值的相对关系。 |
盈利收益率 | 该比率用过去12个月的盈利总和除以最后的市场(收盘)价。 |
远期一年盈利收益率 | 该比率不使用历史盈利,而是用股票分析师对未来12个月的平均盈利预测除以最新价格。 |
市盈增长率 (PEG ratio) | 市盈增长率(PEG)用一只股票的市盈率(P/E)除以给定时期内的盈利增长率。该比率通过公司的盈利增长来调整为一美元的盈利所支付的价格(由市盈率衡量)。 |
相对于行业的远期一年市盈率 | 预测相对于相应行业市盈率的远期市盈率。它旨在通过考虑行业间的估值差异来减轻通用市盈率的行业偏见。 |
销售收益率 | 该比率衡量股票的估值与其创造收入能力的相对关系。在其他条件相同的情况下,历史上销售额与价格比率较高的股票预计会有更好的表现。 |
远期销售收益率 | 远期销售额与价格比率使用分析师的销售预测,并将其合并为一个(加权)平均值。 |
账面价值收益率 | 该比率用历史账面价值除以股价。 |
股息收益率 | 当前的年化股息除以最后的收盘价。贴现现金流估值法假设公司的市场价值等于其未来现金流的现值。 |
规模效应与风险因子
规模效应是较早出现的⻛险因⼦之⼀,它与低市值股票的超额表现有关。近期的研究表明,低波动率因⼦能够捕捉到波动率、⻉塔系数或特质⻛险低于平均⽔平的股票所产⽣的超额回报。市值较⼤的股票往往波动率较低,因此传统的规模因⼦常常与较新的波动率因⼦结合使⽤。
低波动率异象是⼀个与基本⾦融学原理相悖的实证难题。资本资产定价模型(CAPM)及其他资产定价模型都断⾔,⾼⻛险应带来⾼回报(我们将在下⼀章详细讨论),但在许多市场中,⻓期以来的事实却恰恰相反,⻛险较低的资产表现优于⻛险较⾼的同类资产。
风险因子的成因与驱动因素
低波动率异象与有效市场假说和资本资产定价模型(CAPM)假设的⽭盾成因解释包含如下几种观点。
- 彩票效应:建⽴在经验证据之上,即个⼈会参与类似彩票的投注,这些投注预期损失很⼩,但潜在收益巨⼤,尽管这种巨⼤收益的概率可能相当低。如果投资者认为低价、⾼波动性股票的⻛险回报特征就像⼀张彩票,那么它可能是⼀种有吸引⼒的赌注。因此,由于投资者的偏好存在偏差,他们可能会为⾼波动性股票⽀付过⾼的价格,⽽为低波动性股票⽀付过低的价格。
- 代表性偏差:投资者会将少数⼴为⼈知的⾼波动性股票的成功外推到所有⾼波动性股票上,⽽忽略了这类股票的投机性质。投资者也可能对⾃⼰的预测能⼒过于⾃信,对于结果更不确定的⾼波动性股票,由于通过做多(即持有⼀项资产)来表达积极观点⽐通过做空来表达消极观点更容易,因此乐观主义者的⼈数可能会超过悲观主义者,并持续推⾼⾼波动性股票的价格,从⽽导致回报率降低。
- ⽜市危机期间的不同⾏为:⽜市期间,⻉塔系数的离散度要低得多,因此低波动性股票即使表现不佳,也不会差太多;⽽在危机期间,投资者会寻求或持有低波动性股票,⻉塔系数的离散度会增加。因此,从⻓远来看,低波动性的资产和投资组合表现更好。
风险因子与波动率的衡量
⽤于识别低波动率股票的指标范围很⼴,⼀端是已实现波动率(标准差),另⼀端是预测(隐含)波动率和相关性。有些⼈将低波动率操作化为低⻉塔系数。有证据表明,对于不同的指标,波动率异象都显得相当稳健。
质量因子
质量因⼦旨在捕捉那些⾼盈利、运营⾼效、安全、稳定且治理良好的公司所获得的超额回报——简⽽⾔之,就是⾼质量。市场似乎也会奖励盈利相对确定的公司,并惩罚那些盈利波动性⾼的股票。鉴于质量的主观性,主要挑战在于如何使⽤量化指标来⼀致、客观地定义质量因⼦。
基于独⽴质量因⼦的策略往往表现出反周期性,因为投资者愿意⽀付溢价来最⼩化下⾏⻛险,从⽽推⾼了估值。因此,质量因⼦在多因⼦策略中常与其他⻛险因⼦相结合,最常⻅的是与价值因⼦结合,以形成“以合理价格投资优质企业”的策略。
质量因子的重要性
质量因⼦之所以能够预示超额收益,是因为卓越的基本⾯——如持续的盈利能⼒、稳健的现⾦流增⻓、审慎的杠杆运⽤、对资本市场融资的低依赖度或较低的财务⻛险——⽀撑着对公司股票的需求,并⻓期⽀持着这类公司的股价。从公司财务的⻆度来看,⼀家优质公司通常会审慎地管理其资本,并降低过度杠杆化或资本过剩的⻛险。
投资者对质量信息反应不⾜,这与动量效应的原理相似,即投资者追逐赢家、抛售输家。同时关于质量溢价与成⻓股的情况类似,购买⼀家基本⾯强劲的公司更容易获得认可,即使其股价正变得昂贵;相⽐之下,购买波动性更⼤(⻛险更⾼)的价值股则更难⾃圆其说。
资产质量的衡量方法
因子 (Factor) | 描述 (Description) |
---|---|
资产周转率 | 该因子衡量公司利用其资产(需要资本)创造收入的效率,其计算方法为销售额除以总资产。周转率越高越好。 |
资产周转率12个月变动 | 该因子衡量了过去一年中管理层利用资产创造收入的效率变化。效率提升水平最高的股票通常被认为会跑赢大盘。 |
流动比率 | 流动比率是一个流动性指标,用于衡量公司偿还短期债务的能力。它将公司的流动资产与流动负-债进行比较,从质量角度来看,流动比率越高越好。 |
利息保障倍数 | 该指标衡量公司偿付其债务利息的难易程度。其计算方法是用公司的息税前利润(EBIT)除以利息支出。比率越高越好。 |
杠杆率 | 如果一家公司的债务远超其股权,则被视为高杠杆。债务权益比通常与公司前景成反比,杠杆率越低越好。 |
派息率 | 支付给股东的股息在收益中所占的份额。派息率越高的股票,排名越高。 |
股本回报率 (ROE) | ROE 的计算方法是净利润与股东权益的比率。历史股本回报率越高的股票,排名越高。 |
在对已被证明与不同程度的超额收益相关的阿尔法因⼦进⾏了⾼层次分类之后,我们可以开始利⽤市场、基本⾯和另类数据来开发我们⾃⼰的⾦融特征。
预测收益的阿尔法因子构建
使用Pandas和Numpy构建因子
-
步骤一:加载、切片和数据重塑
首先加载原始数据、提出假设并建立逻辑,然后按照不同类型因子的逻辑方向对数据进行提取和重构,进而通过数据处理把逻辑变成变量,并以此做验证。
案例
你先观察市场或读文献(比如 Jegadeesh & Titman 1993)发现:“过去312个月涨得好的股票,未来36个月还会涨。”这其实是个经验假设,但被大量历史数据支持。
然后构造一个数字(特征)能体现“过去表现”:过去3个月收益率?过去12个月涨了多少?过去12个月减去最近1个月,是不是开始回调?
然后进行数据处理,把逻辑变成变量,从“价格”提取出“信号”。
验证该因子是否有用:拿“动量因子”按分位数分组、计算未来收益的差值,看因子强不强、稳不稳、有没有预测力如何构思出属于自己的因子
读经典文献,理解因子的定义方式和方向;用投资逻辑反推变量,然后验证关系;模仿别人造过的因子,然后做一些微创新改造;系统读教材/学习课程,系统性理解。 -
步骤二:去噪、优化和因子完善
这一步通常通过卡尔曼滤波器、小波降噪等方法处理信号与噪声,用TA-Lib等库构建技术因子,快速生成交易信号;从而“拿现成的工具快速做技术因子”。
-
步骤三:回测、多因子研究和策略评估
这里可以用Zipline回测单因子策略;然后用Quantopian做多音字研究,对因子进行拼装和综合信号输出;进而用Alphalens 做信号质量与策略表现评估,借助不同的诊断指标进行评测,从而实现因子优化和组合