文章目录

  • 定义
    • Definition of alpha
    • Efficient-Market Hypothesis (EMH)
    • IC information coefficient
    • 指标
  • Alpha种类:
  • 一个好的alpha标准
    • 软指标
      • 风险层面的评价 @Page74
    • 硬指标
  • Alpha的构建过程
  • Alpha修正技巧
    • 数学技巧:
  • Alpha注意事项
  • 为什么你的α\alphaα知道的人越少越好?
  • 风险分析 @12 The relationship between alpha and portfolio risk @ 13 Risk and Drawdowns
    • 降低风险的策略:
  • 技术面技巧
  • 基本面技巧 @ 7 Fundamental Analysis
  • 可以寻找的数据源
  • 好的资料书籍

Igor Tulchinsky是worldquant的创始人,从苏联逃到美国,在Mellinium内部做了几年后成为PM,创造出独有的量化公司组织形式

本书针对如何寻找、评价、优化α\alphaα进行了描述,同时给出了一些简单的alpha例子,基于WebSim给出了许多API介绍。

知乎某同人也有阅读笔记,链接如下:https://zhuanlan.zhihu.com/p/93618059


定义

Definition of alpha

  1. α\alphaα是一组数学公式,计算机代码及参数的集合,通过对于历史数据的应用实现对金融工具未来的预测
  2. α\alphaα是对于每种金融工具未来收益值得预测
  3. α\alphaα基于基本面的表达观点

Efficient-Market Hypothesis (EMH)

  • weak:当前的价格已经将过去的公开信息反映出来
  • semi-strong:过去的和当前的公开信息已经表现在价格之上
  • strong:无论公开还是非公开信息已经全部表现在价格之上了

IC information coefficient

correlation of predicted return and realized return (对于个股的预测准确度)
IR=IC×sqrt(breadth)IR = IC \times sqrt(breadth)IR=IC×sqrt(breadth)

指标

  • booksize:总的资金量,对于WebSim中,赚到的和赔了的钱均会被补偿,即不存在利滚利的现象,每天资金重新注入
  • PbL: profit and loss:
    dailypnl=∑(position×DailyReturn)daily pnl = \sum (position \times Daily Return)dailypnl=∑(position×DailyReturn)
    dailyreturn=closetcloset−1−1daily return = \frac{close_t}{close_{t-1}} - 1 dailyreturn=closet−1​closet​​−1
  • Annual Return: 因为多空策略,因此booksize减半
    Annualreturn=AnnualizedPnL/HalfBookSizeAnnual return = Annualized PnL / Half BookSize Annualreturn=AnnualizedPnL/HalfBookSize
  • Sharpe:
    sharpe=E(return)std(return)=256×IR=256×E(DailyPnl)std(DailyPnl)sharpe = \frac{E(return)}{std(return)} = \sqrt{256} \times IR = \sqrt{256} \times \frac{E(Daily Pnl)}{std(Daily Pnl)}sharpe=std(return)E(return)​=256​×IR=256​×std(DailyPnl)E(DailyPnl)​
  • Max Drawdown: 最大回撤
  • Profitable days:盈利天数占比
  • Daily turnover: ratio of the value traded over the shares held。由于多空策略,volume要除以二
  • Profit per traded:
    PnLDollarsTraded\frac{PnL}{Dollars Traded}DollarsTradedPnL​

Alpha种类:

  • intraday, daily alphas, weekly/monthly根据不同频率划分
  • 技术面(Price, Volume, Vwap等信息,通常频率较高); 基本面(Financial Statement,现金流,负债表,频率通常较低);宏观经济(针对industry级别的侧重);新闻及社交媒体(市场情绪及最新消息)

一个好的alpha标准

软指标

  • idea比较单纯和简单
  • 数学表达和代码比较典雅
  • 对于数据的变化和参数的变化比较鲁棒
  • Drawdown的时间比较短
  • 它近期的收益比以前更高
  • margin要求比较高,这样对于交易手续费会比较低(即收入远大于交易手续费)
  • 在多个universe(TOP3000, TOP2000)均有效
  • 在不同的地区的市场上均有效
  • IR/tvr越大越好,不会受到市场短期的冲击
  • 可解释性:要避免alpha构建的时候将不同单位的东西加起来,比如volume + price没有解释意义
  • 对极端市场情况的高适应性,能够对压力测试表现良好
风险层面的评价 @Page74
  • 策略垂直于某些风险空间,这样的策略无论风险如何冲击都不会影响到策略的收益
  • 一个好的alpha能够在多个行业、多只股票上都表现优秀(降低个股或个别行业风险
  • 一个好的alpha需要对收益的各个Quantil有着好的预测性,高收益高alpha,低收益团体中alpha均值较低。如果只在某些Quantile中表现较好,或者头部Quantile表现较差,我们可能需要重新调整alpha,或者(逼不得已)缩小universe。

硬指标

  • drawdown要小于10%
  • IS的sharpe表现较好,在worldquant内部,只有sharpe达到2.5以上才值得上交。 Sharpe描述了策略的confidence interval
  • OS的表现同样较好
  • 和现有alpha表现不同,即alpha信号及Daily PnL的correlation均比较小(<0.7)
评价 Delay 1 Sharpe Delay 0 Alpha Sharpe
极佳 > 4.5 > 6.0
很棒 > 3.5 > 5.25
>3.0 >4.5
一般 > 2.5 > 3.95
较弱 > 1.0 > 1.0
较差 < 1.0 < 1.0

Sharpe定义可以理解为年化的information ratio,关系可以定义为Sharpe=252IRSharpe = \sqrt{252}IRSharpe=252​IR

Alpha的构建过程

收集、理解数据数据;获取关键信息;阅读论文->形成Idea->转换为数学表达式->通过operation对源Alpha进行装饰,增强鲁棒->测试

Alpha修正技巧

  • 如果不想持仓的股票,最好把值设置为Nan,否则作Neutral的时候,0可能会被算入
  • 市场中性,行业中性来避免市场风险、行业风险
  • 使用ranking来避免数值的极端性
  • 对于同样有效的信号,Universe越大,IR表现就越好,通常IR和交易产品种类的开方数值成相关性
  • 利用人为的Prior降低fitting的程度

数学技巧:

- Fisher Transform formular,将数据强行拉到normal的形状
- Z-score,减去均值除以方差
- truncation
- winsorizing (trancate by quantile)
- ranking后重新线性变换[0,1],使得alpha更加stable,也可以缩小数值上的巨大差异。例如将correlation换成spearman模式
- Quantile分组,对Quantile进行回归或者approximation能够让结果更加稳定
- 低通和高通(Butterworth, 1930)使得平滑或者高频
- moving average, decay来使得曲线变平滑,降低noise的影响,降低tvr

Alpha注意事项

  • 一定要避免过拟合,减小搜索空间,加入惩罚正则
  • 对于outlier一定要谨慎处理
  • 回测陷阱,回测假设市场流动性是无穷的,交易是免费的
  • 交易中换手率的成本一个是在于交易费用,另一个是spread cost,也就是高低价格必须一方妥协才能真正成交,大的换手率对于流动性好的股票还可以接受,但是对于小盘流动性差的(特指美股,中国的中小盘交易流动性依然很好
  • 仅仅通过correlation来判别相似度可能会有错觉,因为规模很大的随即走势,也可以有将近0.2以上的correlation
import numpy as np
import seaborn as sns
data = np.random.normal(size=[10000,1000])
corr = np.corrcoef(data)
np.max(corr[np.where(corr<0.9)])ANS: 0.179
  • 做out sample测试的时候有两个误区:

    1. 使用更新的数据作为训练集,使用老数据作为测试集:错误在于过去的一些经验和知识,或者信号可能已经在未来被发掘了,这样的测试有数据泄露的嫌疑,正常应该是用过往的历史数据来测试更新近的数据
    2. 使用一部分instrument作为训练集,使用剩下一部分作为测试集:错误在于instruments之间是相互correlated(例如行业之间走势相同),策略的训练也有数据泄露的嫌疑
  • 同data不同的idea还是很经常会有高的corr,因此有时候要多用小众数据

  • 自动搜索的alpha的时候,测试集不宜太古老,因为市场风格在随时间变化

  • 对于自动搜索的alpha一定要对它进行鲁棒测试:不同的时间,不同的时常,不同的subset of data,不同的行业和区域,每一个输入都应该有比较高的贡献值,否则也存在overfit的可能性

为什么你的α\alphaα知道的人越少越好?

  • 如果市场完全有效,则一切信息均会表现在市场价格上面,那么就不存在α\alphaα,正因为市场配置的无效使得alpha存在。公开可套利的alpha会使得市场配置更加有效,而这个alpha也会随之失效
  • 市场资本是有限的(即市场深度,或者说流动性),对于单一alpha涌入资金增加会使得每单位资本的盈利能力下降
  • 去除市场已知风险, less beta, more alpha
  • PM的策略来源于:1)因子择时,2)将风险暴露在别人还不知道的领域,因此不会被冲击

风险分析 @12 The relationship between alpha and portfolio risk @ 13 Risk and Drawdowns

  • 对于构建的alpha,需要明确或大致知道风险暴露和收益程度
  • 恐惧对市场的影响远大于贪婪,因此跌快涨慢
  • 对于同一个策略有太多人用的时候风险增加,因为当同策略撤资的时候,如果资金量越大,越难以以高价格撤出来
  • 对于一个alpha,也要大致明白他的容量,如果太多资金注入一个前人未知的风险区,也让这个alpha本身成为了风险,也可能使得alpha失效
  • 一个好的alpha需要护城河,不能是一个对于新手来讲就很intuitive的东西,否则失去了意义

降低风险的策略:

- 扩大universe来分散风险
- 降低每一只股票上的风险最大暴露
- 降低每一个行业上的风险暴露
- 降低在广为人知的alpha上的暴露
- 降低全市场的风险暴露

技术面技巧

  • 放量的增跌往往对信号有确认作用
  • 技术面往往是在择时入场,这样的策略往往是喜好Risk的,只有高的波动才有较高的收益
  • 趋势效应的原因可能是:1)信息的滞后性,2)从众性,3)人们不愿意调仓

基本面技巧 @ 7 Fundamental Analysis

  • liquid assets与liability之间的比值来判断公司的还债能力
  • 长期债务越少越好
  • 基本面分析通常要和行业内部进行比较
  • reserve accounts下降,inventory上升,accounts receivables上升都是预警信号
  • 看到企业的增速时,还要考虑增速的质量,Free Cash Flow的保证才是一个健康的增长(Sloan et al. (2011)),Cash Flow对于预测企业健康成长更改有用
  • 财报里面角标的数量(footnote)也可能反映企业的好坏,过多的脚标可能是企业在隐藏什么
  • 一个财报或者基本面数据的影响时间可能在60天左右
  • 对于这类alpha,coverage可能比较小
  • 对于分析师数据要小心使用,分析师可能会有幸存者偏差、有从众性、有滞后性、对市场有偏好。但是我们可以从研报中得到分析师的思考逻辑,对于其他行业中是否同样适用。分析师的整体风格偏向乐观,往往对市场有高估情绪

可以寻找的数据源

  • Price, Volume等
  • 基本面财报
  • google trend

好的资料书籍

  • Robust Statistics by Peter J. Huber (2004)
  • Returns to buying winners and selling losers: implications for stock market efficiency, Jegadeesh, 1993
  • SSRN





[读书笔记]Finding Alphas相关推荐

  1. 《Deep Learning With Python second edition》英文版读书笔记:第十一章DL for text: NLP、Transformer、Seq2Seq

    文章目录 第十一章:Deep learning for text 11.1 Natural language processing: The bird's eye view 11.2 Preparin ...

  2. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第六章 纹理 Texturing

    写在前面的话:因为英语不好,所以看得慢,所以还不如索性按自己的理解简单粗糙翻译一遍,就当是自己的读书笔记了.不对之处甚多,以后理解深刻了,英语好了再回来修改.相信花在本书上的时间和精力是值得的. -- ...

  3. 【Python自然语言处理】读书笔记:第五章:分类和标注词汇

    jupyter 版请见我的github:https://github.com/JackKuo666/Python_nlp_notes [Python自然语言处理]读书笔记:第五章:分类和标注词汇 本章 ...

  4. 《计算之魂》读书笔记 04

    <计算之魂>读书笔记 04 1.4 关于排序的讨论 [1.4.3]针对特殊情况,我们是否还有更好的答案? [附录]为什么排序算法的复杂度不可能小于 O(nlogn)O(nlogn)O(nl ...

  5. 计算复杂性读书笔记(一): 判定问题,P,NP

    2019独角兽企业重金招聘Python工程师标准>>> 计算复杂性读书笔记(一): 判定问题,P,NP    比特猪   quanzz1129@gmail.com 首先是版权声明,版 ...

  6. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第五章 着色基础 Shading Basics

    写在前面的话:因为英语不好,所以看得慢,所以还不如索性按自己的理解简单粗糙翻译一遍,就当是自己的读书笔记了.不对之处甚多,以后理解深刻了,英语好了再回来修改.相信花在本书上的时间和精力是值得的. -- ...

  7. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  8. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  9. 《编程匠艺》读书笔记

    <编程匠艺>读书笔记之一 <编程匠艺>读书笔记之二 <编程匠艺>读书笔记之三 <编程匠艺>读书笔记之四 <编程匠艺>读书笔记之五 <编 ...

最新文章

  1. linux使用遇到的一些小问题
  2. 20172313 2017-2018-2 《程序设计与数据结构》第十周学习总结
  3. 更改Tomcat虚拟内存大小
  4. Google Chrome浏览器可能在您不知情的情况下破坏了您的测试
  5. mysql分区表达式_怎么定义 mysql hash分区使用的用 户定义的表达式
  6. 泰晤士计算机排名2021,THE2021年世界大学专业排名-计算机
  7. Django 分页器 缓存 信号 序列化
  8. python 多分类 recall_sklearn多分类问题
  9. Ubuntu镜像下载地址:Ubuntu-14.04/16.04/18.04
  10. 树莓派学习(二):摄像头模块的安装和使用
  11. python调用百度AI语音识别
  12. C语言用结构体实现串口协议
  13. Linux 音频系统简析
  14. 抚躬自问,我该怎样总结我的Q3?
  15. Graphics2D进行后台绘图
  16. python自动群发_python---自动群发邮件
  17. 人体相关的中日英表达
  18. 巴比特 | 元宇宙每日必读:杭州亚运会组委会将发售“亚运在中国”系列数字藏品;“戏曲元宇宙”戏曲元宇宙”是啥?怎么建?...
  19. 网络营销十道“羊皮卷”
  20. python量化 双均线策略(金叉死叉)

热门文章

  1. 99%的人投资区块链项目亏钱, 都犯了这6大致命错误!
  2. H5实现一键复制微信并打开微信跳转好友添加页
  3. 【21天转型区块链】DAY2
  4. 【游戏算法】2D游戏中聚光灯效果
  5. HoloView 在 jyputer lab/notebook 不显示总结
  6. 卖一次淫,帮助一名失学儿童--看完…
  7. linux 判断u盘 硬盘坏道,u盘怎么检测硬盘坏道
  8. 7 士兵排队---PTA(排序+中位数)(C++)
  9. 如何让你的网站排名靠前
  10. 朋友圈广告投放优势及广告投放案例分享