本文旨在向读者介绍Alpha的相关基本概念,以及寻找和检验Alpha的主要流程和方法。之前我们梳理了 WorldQuant经典读本FindingAlphas的概要以及WebSim的使用,在下篇中我们会介绍相关方法在BigQuant平台上的实现。

一、初识Alpha

1、什么是Alpha?

WorldQuant中提及的alpha是一个数学表达式,用来预测各种金融工具的未来走势。alpha同时也是对每种金融证券收益率的预测。如果用alpha反映每日每种金融证券收益率,同时每种金融证券的配置头寸比例与alpha成正比,则组合的回报率与标准差之比(也称为α的信息比率)可以达到最大化。

2、Alpha来自哪里?

如果数据永远不会改变那么就没有alpha。价格数据的变化反应并包含了信息,一个信息变化会导致alpha的变化。每个alpha都是一个表达式,其背后也对应了一个假设或者投资模式。例如:收盘价close这个alpha因子表达式,背后的假设就是股价越高未来收益越大。

市场中存在alpha是由于具有竞争目标的市场参与者之间的信息流不完善的结果。不同的短线、长线投资者之间理念不同且共存,每个投资者在市场中的行为都会合并产生模式。

因此Alpha就是一个表达式,其本质是一个信息流。如果投资组合中每只股票按照这个表达式的值作为投资权重比例并定期更新换仓就会得到一种投资策略,因此alpha也代表了一种投资模式/策略。例如:收盘价close这个alpha因子表达式,背后的假设就是股价越高未来收益越大,以此因子构建组合的权重比例起始就是定期轮仓购买高价股的投资模式/策略。

3、寻找Alpha

一个非常复杂的系统会表现出某种程度的可预测性。市场不断诞生有效的alpha(投资模式)并随着资金的介入而逐渐缩小,直到其逐渐失效。但这一过程将在市场上引入/创造其它的模式,从而诞生新的alpha。良好的样本内性能无法保证良好的样本外性能。历史数据的校验越多,对alpha的信心越大,但基本市场结构的变化也会让alpha无法继续有效。因此,需要不断在对alpha的验证和使用之间权衡和尝试。

alpha可以根据交易周期分类为

  1. 日内alpha:在某个事件后对仓位更新,例如跳空、涨停等
  2. 每日alpha:使用过去n天的数据对仓位每日更新
  3. 每周/每月alpha等,每周/每月对仓位更新

二、Alpha的来源

1、Alpha的典型来源如下:

  1. 价格/成交量
  2. 基本面
  3. 宏观数据
  4. 文本:如期刊、新闻、会议记录、社交媒体信息

2、很多学者研究并发现了一些市场上曾经有效的alpha:

Fama和French(1992)在CAMP模型的基础上增加了两个风险溢价,规模和价值,以解释股票回报率。规模效应表示较小的股票倾向于表现优于较大的股票。价值效应表示股票的市净率较高的股票在回报上有一个正的风险溢价。
Amihud和Mendelson(1986)记录了流动性较小的股票具有较高预期收益的流动性效应。
Pastor和Stambaugh(2003)专注于全市场流动性,衡量股票对总流动性的敏感性为“流动性β”。
Jegadeesh和Titman(1993)记录了股票动量效应,最近的赢家往往优于最近的输家。
考虑到这些alpha的高知名度,它们的夏普比率可能不会高,否则聪明的资金就会蜂拥而至,直到收益不再具有吸引力。

3、有时alpha不是直接从信息模型中获取:

1) 风险因素模型:通过控制风险暴露或者消除某些因素的风险暴露来提高阿尔法
2) 关系模型:某些工具可能导致或滞后于另一些工具,从而产生套利机会
3) 微结构模型

三、组合Alpha

每个回报来源都来自一个风险源,因此任何投资组合都可以被看作是风险的组合。

两个投资组合的业绩差异来自于它们所利用的风险来源和回报的数量,以及它们在每个来源上的相对权重。每个alpha提供了一个新的收益来源,并进一步稀释了投资组合的风险负荷(假设它与投资组合中的风险正交),从而降低了这些单个风险中任何一个对投资组合产生重大影响的可能性。

理想的投资组合将保持对任何一个广为人知的风险因素(Beta)的零负荷,以及对他所能发现的尽可能多的未知因素(Alpha)的非零负载。而搜索新alpha的过程中,需要不断拷证alpha的稀缺性/背后的逻辑/规模和持久性。

任何阿尔法或投资组合的风险都可以通过多样化来降低。值得注意的一点是,任何一个好的阿尔法都是试图分别选择赢家和输家去做多头和做空。但它并不总是100%的准确性。如果投资标的范围不够大应该做好止盈止损的预案。

此外,基本数据通常表现出明确的季度周期,而且价格量是统一的,如果模型包含来自许多不同类别的数据,则显着增加了模型的复杂性,并且模型变得更容易受到数据中的噪声的影响。

四、评价alpha

1、评价单一Alpha的质量好坏标准:

  1. 表达式简单;
  2. 具有良好的样本内sharpe;
  3. 对于数据和参数的微小变化不敏感;
  4. 适用于多个市场;
  5. 适用于多个地区;
  6. 最近的收益曲线创新高;
  7. 通常可以使用信息比率(alpha的平均值/标准差)来粗略评估其预测能力;
  8. 使用保证金(投资金额/交易数量)粗略衡量alpha对交易成本的敏感度,较高的保证金意味着不受交易成本影响。

2、评价单一Alpha的失效:

  1. 回撤超过正常水平
  2. 夏普比率下降

3、评价某个Alpha在一个Alpha组合中的价值:

检验alpha是要看它为交易带来多少的风险调整后利润,实践中很难精确衡量,因为很难将利润准确地归因给各alpha,但我们可以通过与其它alpha的相关性来检验其价值。

五、Alpha的研究过程

1、开发Alpha

阿尔法逻辑→数据形式的信息→想法→数学表达式→应用操作→最终稳健的α→转换为金融工具中的头寸→检查历史损益,其他性能度量(信息比、周转率、回撤等)。

  1. 首先确定表达式
    选取流动性最高的3000只股票作为研究范围
    转换为金融工具中的头寸,根据alpha进行头寸的确定方式如下:
    Final_alpha_stock = (alpha_stock/sum_of_alphas_of_all_stocks)
  2. 然后回测收益率曲线,并计算信息比率

2、检验Alpha

检查alpha的健壮性主要考察:

  1. 高样本内信息比
  2. 良好的样本外信息比
  3. 最大回撤、回撤时间等方面
  4. 每日成交量,用来衡量调整投资组合的速度
  5. 总收益/交易总额,用来衡量每交易1元钱所得的利润
    一个好的alpha应该尽可能地分布在尽可能多的行业上,而不是过于集中。此外分层回测也是检验alpha的一个好方法,可以辅助我们查看alpha的头部或者尾部的预测能力。如果多空收益大部分来源于头部分组的盈利,那么如果头部分组收益下降就可能对此阿尔法的性能造成较大的影响。

但是,我们不应该仅仅根据历史测试模拟结果来做判断。原因有以下几点:

  1. 当前的市场与历史时期不一样,市场规则可以改变,投资主体、新理论、新技术也会发生变化。因此, 测试周期越长越好,这是不一定正确的。
  2. 模拟假设可能不是真实的。交易过程可能会影响市场,需要支付交易成本或佣金。在评估模拟结果时,对这些数字的合理估计至关重要。
  3. 可能的前瞻性偏见。 如果你看到有人追随趋势并获利,那么你可以测试趋势跟踪模型,也许你可以得到一个很好的历史模拟。 没有更好的理解,你可能会或可能不会在未来的投资中获利。
  4. 过度优化。 有时候会看到很好的模拟结果,可能只是随机误差或噪声,但没有预测能力。在更长的历史中测试模型,在更广泛的市场中测试模型,都有助于降低过度拟合的风险。不幸的是,在现实世界中,存在着限制。没有一个系统的方法来提高夏普比率。要么没有足够长的可用历史数据,要么市场发生了变化,历史也发生了变化。与机器学习模型类似,如果alpha的参数较少,模型对参数变化的敏感性较低,这有助于降低过度拟合的风险。
  5. 敏感性测试和显着性测试是很重要的。 一个好的α信号应该对噪声不敏感。测试稳健性的最常用技术包括对不同时间段、不同持续时间、随机数据子集、每个股票部门等的数据进行测试,我们对那些对这些输入变化不敏感的信号更有信心。另一方面,每个输入数据都应该对结果作出重大贡献。检验显着性的最简单方法是删除一个输入变量,并检查结果是否有显着变化。如果每个输入变量都做出了重大贡献,则我们更好地信任信号。

此外,当样本外Alpha的数量增加时,样本外的测试也可能有偏差。单alpha水平上的样本外性能可能由于检验数据不足而导致验证是不充分的。

3、改进Alpha

  1. 去除原始数据的异常值
  2. 改变数据表达方式
    例如: 将一个绝对数量含义的变量转化为当前值与其历史值的比值,用来表示该变量的变动
  3. 数据的中性化处理
    通常市场风险和行业风险是最大的风险,我们通过中性化保证每个行业内的alpha总和为0,同时保证全市场的所有股票alpha的总和为0,这样可以有效消除市场风险和行业风险从而降低最大回撤,提高信息比率。此外通过采用alpha值的rank可以进一步提高信息比率。如果换手率偏高,可以通过利用衰变(时间尺度上的长周期均匀化)在一个时间窗口内平均这个alpha。
  4. 提高alpha的鲁棒性
    排序:使用因子的排序将原始alpha转换到[0,1]区间
    分位数:使用因子分位数
    Fisher变换:将原始alpha转换为近似服从正态分布。
    Z变换:将原始alpha转化为零均值和单位标准差的分布。

4、Alpha研究中的算法技术

  1. AdaBoost
    在α研究中,我们经常处理弱分类器/预测器,通过对弱学习者学习适当的加权函数,可以在很多情况下利用机器学习的概念,从几个弱学习者中培养出一个强学习者。
  2. 数字滤波
    α研究还涉及时间序列数据的处理。从数字信号处理中提取的时间序列可以有效地去噪时间序列数据,并将时间序列分解为趋势和周期分量。 最简单和最广泛使用的数字滤波器是简单的移动平均线;数字滤波的另一个流行应用是将时间序列分解为趋势和周期分量。趋势提取涉及抑制高频分量(低通滤波),而周期提取涉及抑制低频分量(高通滤波)。
  3. 特征提取
    α研究的另一种感兴趣的技术是特征提取。 诸如主成分分析(PCA)/聚类之类的算法有助于减小特征空间的维数。

六、WebSim平台

WebSim™是一种专有的基于Web的仿真平台。使用WebSim™,用户可以根据他们的交易策略创建alpha。然后,这些想法通过WebSim™网站提交,并根据实际历史数据进行反向测试,以确定应用于过去市场时期的效果。为了避免必须处理结构化编程语言,实现了一个简单的命令行来输入alpha表达式。如下图所示:

  1. 输入测试的alpha表达式
  2. 选择市场标的范围:WebSim™仅交易流动股票。 WebSim™提供TOP3000,TOP2000,TOP1000等标准Universe。OP3000是一组3000只股票,在三个月内流动性最高; TOP2000是一组2,000只股票,在过去三个月内流动性最高。
  3. 设置Delay: 延迟是指相对于决策时间的数据可用性。延迟1(默认设置)表示alpha将使用昨天的数据(价格等)。延迟0意味着alpha将使用今天的数据。
  4. 设置Decay: 在过去的n天中,它通过将今天的值和前一天的衰减值结合起来,来执行线性衰减函数。它形成以下函数:
    Decay_linear (x, n) = (x[date] * n x[date - 1] * (n - 1)… X[date - N - 1]) / (n (n - 1)… 1)
  5. 设置中性化: 中性化是一种使我们的市场/行业/子行业中立的操作。
    当选择“Market”时,它做以下操作:
    alpha = alpha – mean(alpha)
    基本上,它使α向量的均值为零,因此对市场没有净头寸,也就是说,多头头寸完全抵消空头头寸,使我们的战略保持市场中性。当选择“行业”或“子行业”时,alpha首先按对应的行业或子行业分组,并且在每个组内进行中性化操作。
  6. 设置最大权重限制:默认为0,表示对个股的仓位没有限制。
  7. 设置单位检查 :这可确保单位量纲在表达式中匹配。假设alpha是一个无意义的数学表达式,例如:adv20 + close。可以通过打开“单元检查”设置在WebSim™内部检查alpha,该设置检查相应的单位量纲是否匹配。
  8. 模拟持续时间: 这表示需要回溯测试的历史数据长度。
  9. 代码语言: 要输入单行alpha表达式,请选择“表达式”。要使用Python脚本输入alpha,请选择“Python”。
  10. 运行并查看结果,WebSim™将获取alpha模拟的结果并立即显示它们供用户查看,如下图所示

    可以立即看到此alpha策略的整体PnL,夏普比率和每日周转等因素,以确定α的有效性。
    PNL : 盈亏(也称pnl)是头寸和交易产生的货币(这意味着你在一年中损失或赚的钱),以美元表示。
    每日_PNL=(头寸*每日_回报)的总和,这里没有考虑手续费,且不考虑复利效果,即假设每日的盈亏为单利方式计算。
    每日换手: 它表示交易的频率。它可以定义为交易价值与持有股票的比率
    每美元交易的利润: 它衡量您的交易的盈利程度。每交易的利润= PnL /美元交易。这个数字不考虑交易成本
    夏普比率 : 在观察到的时间段内Sharpe = Avg(返回)/ Std_dev(返回)。
    最大回撤: 最大峰值到谷值回报的绝对值

累积利润图由两个图组成,一个用于PnL与时间,另一个用于夏普比率与时间。表格中显示每年的模拟结果和整个模拟持续时间的累积结果。

一个好的阿尔法将持续增加的盈利和较高的年回报率、夏普比率、利润百分比和每美元交易所得利润。而且,更重要的是,它不应该在累积利润图中有很大的波动。如果图表的曲线波动较大,尽管回报率很高,但不会认为alpha值足够好。
WorldQuant认为对于日内 alpha而言,其夏普应该大于3.95;对于延迟1 日的alpha而言,其夏普应该大于2.5。最大回撤应小于10%。

总结: 本文介绍了alpha的相关知识以及WorldQuant的WebSim测试平台,阐述了alpha开发、测试与改进过程中的流程和方法,下篇我们将讲述如何在BigQuant平台上实现相似的因子开发功能。

前往BigQuant——人工智能量化平台实现!

寻找市场中的Alpha(上):WorldQuant的阿尔法设计理念相关推荐

  1. 寻找市场中的Alpha—WorldQuant的阿尔法设计理念(上)

    本文旨在向读者介绍Alpha的相关基本概念,以及寻找和检验Alpha的主要流程和方法.在上篇中我们梳理了 WorldQuant经典读本FindingAlphas的概要以及WebSim的使用,在下篇中我 ...

  2. 寻找市场中的Alpha-WorldQuant功能的实现(下)

    导语:本文介绍Alpha的相关基本概念,以及寻找和检验Alpha的主要流程和方法.在上篇中我们梳理了 WorldQuant经典读本FindingAlphas的概要以及WebSim的使用.作为下篇,我们 ...

  3. 从两万亿医疗市场中寻找IT商机

    从两万亿医疗市场中寻找IT商机 挂号有自助挂号机,病历有电子病历,取CT片子也不用跑了,放射科直接通过PACS发给临床医生.IT给医疗带来诸多便利,更多的IT厂商开始关注医疗市场里的商机. 尽管挂号依 ...

  4. 当小牛正面杠上爱玛雅迪,二轮电车市场中谁主沉浮?

    2021年10月11日,小牛电动公布的第三季度销售数据中显示,第三季度两轮电动车销量持续增长,售出397079辆,同比增长58.3%:另外,第三季度中小牛继续拓展零售网络覆盖范围,截至9月底小牛在国内 ...

  5. 艾永亮:为什么国内品牌很难在市场中生存下去

    2020年对于许多人来说是沉重的开始,不少人纷纷表示怀念过去,还记得每年大家在双十一.双十二.黑五时的狂欢,如今却只能"窝里宅",老师变成主播,工作靠自律. 每年的双十一让消费者的 ...

  6. 机器人企业如何在激流勇进的市场中,深耕落地,突出重围?

    目前,人工智能产业还处于弱人工智能阶段,机器人还是比较新兴的产品,如何把它的量产建立起来并深入落地应用,这些都是机器人相关企业需要重点考虑的问题. 那么,对于产品和技术类公司,需要把握住哪些趋势和要点 ...

  7. 将产品在移动应用市场中推向成功的十点建议

    1.有明确的核心价值 毋庸置疑,这是最基本也是最重要的一点.如果你的应用没有明确的核心价值和需求用例,不能帮助人们解决特定的问题,那么在把这个所谓的"产品"提交到App Store ...

  8. Nat. Mach. Intell. | 基于深度强化学习寻找网络中的关键节点

    今天给大家介绍哈佛大学Yang-Yu Liu课题组和加利福尼亚大学洛杉矶分校Yizhou Sun课题组发表在nature machine intelligence上的一篇文章"Finding ...

  9. 当下网络营销市场中为何企业可通过网络营销提升自我价值?

    在当下网络营销市场中越来越多的企业选择通过借助网站建设的力量实现企业线上营销获益,网络营销属实是当下企业展开线上营销不可或缺的一种营销推广模式,广受众多中小企业的欢迎.网络营销的开展可以为企业带来更多 ...

最新文章

  1. 标准浏览器的选择器封装
  2. 老牌医药收割AI红利:先投个15亿美元抢中国人才
  3. Day 15:Meteor —— 从零开始创建一个 Web 应用
  4. Hybrid app 学习资料收集
  5. html怎么帮图片占位,css+html实现Skeleton Screen 加载占位图动画效果(带动画)
  6. 中国移动上市第二日逼近破发线
  7. java数字类型_Java数据类型
  8. JavaScript事件处理程序的3种方式
  9. BOOST 线程完全攻略 - 扩展 - 可被关闭的线程类
  10. 互联网产品的测试策略应该如何设计?
  11. “System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生...
  12. Python深度学习基于PyTorch (附完整PPT下载)
  13. 30 个数据工程必备的Python 包
  14. cadence导生产文件_写了个Allegro导出bom和坐标文件的教程, 用于JLC的S - 电子制作(ElecDIY)版 - 北大未名BBS...
  15. Windows取证一
  16. 3d vision可以卸载吗_3D Vision是什么
  17. 关于goole IO大会发布的android M和android studio1.3的更新
  18. Python变量和基本数据类型
  19. 「需求分析」用户故事和用例是一回事吗?
  20. alpine linux系统操作

热门文章

  1. OE链面临区块链生态新机遇
  2. CAPL入门:结合panel面板实现按钮触发功能
  3. LDAP 和 LDAP3 的对比、接口调用(1)
  4. 南京大学软件质量研究所
  5. 2019天梯赛第四次训练赛
  6. matlab中设置不同的点的形状,matlab点的形状
  7. w ndows平板插sim卡,HUAWEI MateBookE怎么插入sim卡上网和接收短信?
  8. EXCEl 时间戳转换为日期格式
  9. 使用正则表达式 匹配 HTML 标签内的内容
  10. ACL的配置以及翻转掩码