【打开量化投资的黑箱】黑箱不黑
优秀的科学家带到金融市场游戏中的,并不是他们的数学和计算技巧,而是他们科学思考的能力。
更新历史
- 2021.11.17:开始阅读
- 2021.11.18:完成读后感
- 2021.11.19:完成阅读
读后感
这本书虽然比较老,但是很多基础知识和基本思路是非常值得初学者(比如我)去了解和熟悉的。因为没有太多复杂的概念和公式,所以能够比较快速建立一个大致的知识框架,方便后面拓展。
阅读笔记
序
- 量化交易策略和主观判断型交易策略的主要差别在于策略如何生成以及策略如何实施。
- 本书主要讨论阿尔法导向的策略,指通过择时和调整投资组合中不同头寸的大小来获得回报。贝塔策略则是复制指数或者略微超出指数表现。
一 我们为何关注量化交易
- 在美国股票市场,交易的很大一部分比例是通过算法来执行的,并且这个比例在继续快速增长。
- 优秀的科学家带到金融市场游戏中的,并不是他们的数学和计算技巧,而是他们科学思考的能力。一个最伟大、第一流的 quant 会将他解决问题的系统化思考方法带入投资过程。
- 强制自己对所采用投资策略的各个方面做出更深入的思考。
- 在经过设计和严格测试以保证交易策略符合经济规律并且能够有效工作之后,quants 都会让模型自动运行而不受不必要的随意干预。
二 量化交易简介
- 交易系统一般包括三个模型:阿尔法模型(alpha model)、风险控制模型(risk model)和交易成本模型(transaction cost model),这三个模型的结果都是投资组合构建模型(portfolio construction model)的输入,投资组合构建模型最后通过执行模型(executoin model)完成任务。
- 阿尔法模型用来预测quants 准备交易的金融产品未来走势,从而获得投资回报。
- 风险模型主要用来限制quants 的风险敞口规模,这些风险因素可能不是产生赢利而是招致损失。
- 交易成本模型主要用来辅助决定为了构建投资组合而产生交易后所发生的成本。
- 以上三个模型的结果输入到投资组合构建模型,这个模型在追逐利润,限制分箱和相关成本发生之间做出平衡,然后给出一个最优的目标组合
- 两个投资组合之间的差异就是执行模型需要建立头寸用以弥补的。执行模型的算法实施必需的交易,并且以一种高效且低成本的方式来实施。执行模型还需要一些其他的输入信息,比如交易执行的迫切性和当前市场流动性撞库等。
- 上述模型结构并不是一成不变的
- 数据是 quant 额血液,决定着策略实施的各个方面
- quants 需要使用市场数据并通过研究来检验自己的想法是否正确。一旦找到了令人满意的策略,则将策略构成一个量化交易系统。这些交易系统将情绪化的反应从投资过程中清除,取而代之的是按照纪律严格执行经过测试和检验有效的思想。
- 并不能简单认为量化最小化了人工因素在交易的重要性,人类的活动包括:思想的提出、策略的测试和检验,以及确定哪个策略需要实施、交易哪些品种、交易速度等方面等问题。
- 交易成本模型有助于决定策略的正确换手率,而风险控制模型则辅助从策略,能够避免错误的头寸敞口
三 阿尔法模型
- 阿尔法指扣除市场基准回报以后的投资回报
- 追求阿尔法回报的策略,本质上就是投资组合的资产配置决策及设置其头寸规模的择时决策。这种策略的核心思想就是,没有永远好的金融产品也没有永远差的金融产品
- quants 构建预测并用来完成择时的软件就是阿尔法模型
阿尔法模型的类别:理论驱动和数据驱动
- 理论驱动:较常见,在观察市场的基础上,提炼出他们认为能够解释所观察到的现象的一般性模型,然后用市场数据进行严格的检验,判断这个理论解释是否有效并符合市场情况
- 数据驱动:较少,认为借助于正确的技术,人们能够从数据中识别出某种行为模型,专注于使用数据分析来揭示那些不能凭借直觉直接发现的市场行为
理论驱动模型
- 可以相对简单地划分为 5 大类(和主观判断型交易者所采用的策略几乎是一样的)
- 趋势型 trend:价格相关数据
- 回复型 reversion:价格相关数据
- 价值型/收益型 value/yield:基本面数据
- 成长型 growth:基本面数据
- 品质型 quality:基本面数据
基于价格相关数据的策略
价格相关数据是指交易所发布的有关金融产品的不同价格信息或者诸如交易量的其他信息。quants 希望预测价格走势并从中赢利,依赖两种现象:
- 趋势的持续 -> 趋势跟随策略或动量策略
- 趋势的反转 -> 均值回复策略
趋势跟随
- 趋势跟随策略的依据原理是,市场可能在一段时间内会一直朝着某个方向运动,因此可以识别出这种趋势并乘机盈利。
- 趋势之所以可能存在,其背后的经济学原理可以这样解释:市场参与者需要慢慢星辰对金融产品价值的共识
- 博傻理论(greater fools theroy):因为人们本身相信存在趋势,因此会倾向于追涨杀跌,这种交易力量就推动形成了趋势。关键是能否找到人接盘。
- 趋势跟随者一般都会寻找比较显著的方向性运动
- 一种定义趋势的方法是用移动平均线交叉(moving average crossover)来判断,即一个短周期指标(比如 60 天平均)和一个长周期指标(比如 200天平均)进行比较。当短周期指标在长周期指标下方,则可以认为市场将会开始出现下跌,反之则将开始出现上涨
- 伴随趋势跟随策略巨额回报的还有巨大的风险,这个策略的回报波动性太大
均值回复
- 为了博取价格将朝着与之前趋势相反方向运动的机会
- 支持均值回复的理论解释认为,价格波动围绕着一个引力中心,我们能够识别出这个中心并且也能够判断出波动复读多大,从而可以从中获利。
- 流动性需求可能导致买者和卖者之间的力量在短期内失衡,出现金融产品被超买(over-bought)或超卖(over-sold)
- 市场产于这并不知道别人的看法和行动,当他们提交订单驱动价格向新的均衡水平运动时,可能在某些时候会出现超额供给和超额需求,因此价格出现过度反应
- 最著名的均值回复策略可能是统计套利,这种策略基于如下思想:相似的两支股票的价格如果出现了偏离,那么终究会收敛回去。这让我们更多关注某个公司相对于另一个公司价值是高估了还是低估了。
基于基本面数据的策略
价值型/收益型
- 市盈率(price-to-earnings, P/E)是重要的指标,quants 一般用倒数,即 E/P,也为称为盈利收益率(earning yield)
- 价值型策略的基本原理是,金融产品的收益率越高则价格越便宜
- 当基于一个相对价差来操作时,即同时买入价值相对低估的股票而卖出相对高估的股票,这种策略称为携带交易(carry trade)
- 很多投资者都在努力寻找度量“便宜”的方法,比如息税折旧前收益(EBITDA)对企业价值(EV)的比率,也被称为市净率(book value to price)
- 采用价值型策略的量化股票交易者一般都是寻找相对更便宜的股票,而不是简单地判断某个给定的股票是便宜还是贵。这种策略通常也称为量化股票多空策略(quant long/short, QLS)
- 假设:更高市净率的股票在接下来的时间将比更低市净率的股票有更好的表现
成长型
- 希望根据历史上观测到的关于资产的某些变量的增长来对未来进行预测
- 度量增长的指标有 PEG 比率,指价格除以盈利增长,或者是市盈率除以每股盈利增长率。该指标是对未来价值的一个较好度量,因为它包含了对增长的预期和对价值的预期,并比较这两者从而判断给定资产在正或者负的增长水平下,定价是否合理。
品质型
- 在其他条件相同的情况下,持有高品质的金融产品是更高的选择
- 合理性在于:本金安全的重要性至上
数据驱动模型
- 很多高频交易者偏好采用纯经验的数据挖掘方法来设计短期交易策略。成功的策略并不需要关心市场行为背后的经济理论和逻辑,因为在以分钟甚至更短时间来计量的情况等下,几乎没有什么理论可以解释市场行为的逻辑基础,因此纯粹经验的方法反而可以战胜理论驱动的方法,并且在这个时间尺度下,有丰富的数据可以用用来检验统计结果。
- 采用数据挖掘策略还有一个不足,即可信度检验(dubious exercise)。输入的数据可能掺杂了很多噪声,导致一些错误信号,从而将数据挖掘策略带入数据陷阱。
策略的实施
不同的实施策略差别很大,主要有以下 6 点:
- 预测目标:到底预测什么
- 模型可以预测方向、幅度、运动的持续时间,以及预测的置信度和概率
- 信号强度(signal strength)是量化交易模型重要的概念,指更大的期望回报或更高的可能性。在给定置信水平下,期望回报越大则信号强度越大;同样,在给定预期回报下,置信度越大则信号强度越大。
- 投资期限
- 分钟策略和小时策略间的差异会比三个月策略和六个月策略间的差异更大一些
- 高频交易(high-frequency)指预测期限不超过当日收盘
- 短线策略(short-term)倾向于持仓一天到两周
- 中线策略(medium-term)从数周到数月不等
- 长线策略(long-term)数月甚至更长
- 投资结构
- 多数采用更大规模的分组而不是简单的配对
- 分组也同样需要构建理论基础,可以基于统计技术或者借助直觉(比如按照基本面的产业门类分组)
- 投资范围
- 倾向于流动性好的交易标的,因为交易成本可控
- 需要大量高质量数据,在富有流动性和发达的市场更容易获得
- 偏好哪些比较容易用系统化模型来预测的金融产品。(比如生物科技很多 quant 不考虑,因为很容易受政府政策影响
- 模型设置
- 机器学习技术主要用于寻找量化模型的最优参数设置,其算法主要是用更智能且更科学的方法检验多种潜在可能的参数,同时不又不会出现过拟合(overfitting)
- 运行频率
- 频繁运行模型将导致大量的交易,也就是更高的佣金和手续费等交易成本
- 模型运行太少,也会增加成本并冲击市场,也可能会错过市场
混合型模型
- 最高级也最成功的 quant 倾向于采用多种不同的阿尔法策略
- 对预测进行混合一般有三种方法:线性模型、非线性模型和机器学习模型
四 风险控制模型
- 风险管理并不只是规避风险或者减少损失,它是为了提高回报的质量和持续性,而对敞口(exposure)实施有目的的选择和规模控制。
- 风险管理通过减少回报的波动带来更重要的效益,并且可以降低发生巨大损失的可能性
- 有很多限制头寸规模的量化风险控制模型,区别围绕以下方面:
- 如何看待头寸规模限制水平
- 风险怎么度量
- 头寸规模限制水平用于何处
- 限制头寸规模的方式主要有两种:严格的约束条件和惩罚
- 严格的约束条件就是卡阈值,如:不论信号多么强烈,不能超过投资组合 3%
- 惩罚一般根据习惯和偏好,以及结合数据给出参数
- 度量风险大小一般有两种:
- 纵向:通过计算不同种类的金融产品的回报随着时间推移的标准差,得到不确定性概念,通常称为波动率,波动率越大,市场呈现的风险就越大
- 横向:给定的投资范围中,度量不同金融产品之间的相似性,通常计算在给定的时间段内相关金融产品的横截面的标准差(cross-sectional standard deviation)。标准差越大,基础性金融产品的波动性能为就越多样。波动越大,市场的风险越小(可以分散投注);反之则越大
五 交易成本模型
- 背后的思想是,任何交易都要花费成本,除非有一个非常好的理由,否则没有人会去交易
- 交易成本主要有三个方面:佣金和费用、滑点(slippage) 以及市场冲击
- 佣金和费用是支付给经纪人、交易所和监管者的
- 花点指的是交易者在决定交易开始到订单实际上被执行这两个时间段之间的价格变化
- 市场冲击:当交易者买入一种金融产品时,交易者的订单可能会导致价格上涨;如果交易者卖出,则价格下跌。在订单规模很小时,价格通常在最优的买卖价之间波动。然而,大订单引起的价格波动是巨大的
- 交易成本模型有 4 种基本类型:
- 常数交易成本模型
- 线性交易成本模型
- 分段线性交易成本模型
- 二次型交易成本模型
六 投资组合构建模型
投资组合模型的目标是决定要持有的投资组合,这一过程大部分基于期望回报、风险控制和交易成本之间的平衡。过于强调机会可能导致投资毁于被忽视的风险,过于强调风险则可能会因为忽视机会而表现不佳,过于强调交易成本则会使得交易者僵化地持有现有头寸,而不考虑合理的承担更新投资组合的成本,从而导致投资组合长期不变
- 基于规则的投资组合构建模型:共同挑战是如何解释驱动他们背后的经济原理和规则的合理性
- 相等头寸权重:通过平均来避免模型带来的选择误差,最简单但不一定最差
- 相等风险权重:波动性越大,头寸越小
- 阿尔法驱动的权重:模型预测越大就头寸越大,风险较高(尤其是趋势反转的时候)
- 决策树权重(模型)
- 投资组合最优化工具
- 诞生标志:哈里·马科维茨发表的《投资组合选择》(Portfolio Selectoin)论文中提出的均值方差优化模型(mean variance optimization)
- 核心理论:现代投资组合理论(modern protfolio theory, MPT),因为投资者本能地规避风险,所以如果两项资产的风险程度不同但是具有同样的回报,那么投资者会选择风险较低的资产。只有能够获得超额回报作为补偿,他们才会承担额外的风险,因此引入了风险调整回报(risk-adjusted return)的概念
- 均值方差优化:输入均值和方差,输出一系列对应于每个风险程度上回报最高的投资组合
- 均值是待评估资产的回报期望
- 方差是每项资产的风险期望
- 计算结果一般是考虑持有的各种资产回报的标准差
- 还需要考虑这些资产的期望相关系数矩阵(expected correlation matrix)
- 使用这些输入信息,最优化工具给出一组不同风险程度下期望回报最高的投资组合,也就是有效边界(efficient frontier)
- 为什么叫最优化,因为他们寻找目标函数(objective function)的最大值
最优化工具的输入
- 期望回报
- 期望波动率
- 最常用的方法是随机波动模型(stochastic volatility models)
- 波动率预测基本观点:波动率的高水平波动期紧随着低水平波动期(即存在某种可预测的波动率周期),同时伴随偶然的跳跃(某种随机和非可预测的部分,jumps)
- 广义自回归条件异方差技术(generalized autoregressive conditional heteroskedasticity, GARCH)
- 期望相关性
- 不同时期两个金融产品关系的度量值可能非常不稳定,甚至从长期来讲都不可靠
最优化技术
- 无约束条件的最优化:可以把投资组合全部配置在单个金融产品上
- 有约束条件的最优化:约束条件可能包括头寸限制,但一个问题是,如果无约束最优化工具选择了一个无法接受的解决方案,那么约束条件增加到什么程度,才会对投资组合起作用呢?
- 布莱克-莱特曼最优化方法:提出了整合投资者期望以及对这些期望的置信度的方法,并且将期望值和历史数据的相关信息综合考虑。来自1992 年《金融分析师杂志》(Financial Analysts Journal)
- 格里诺德-卡恩方法:最优化因素投资组合,瞄准如何建立信号的组合。好处是因素投资组合的数量是可管理的,通常不超过 20 个。来自《积极投资组合管理》(Active Portfolio Management)
- 重新取样的效率:理查德·米肖(Richard Michaud) 在 《有效资产管理》(Efficient Asset Management) 中提出,解决对估计偏误过度敏感的问题(均值方差最优化工具对诸如期望的微笑扰动这类误差极端敏感,最终会导致准备构建的投资组合出现巨大变动)。用蒙特卡洛仿真技术重新提取数据样本,以减少输入到最优化工具数据的固有估计误差
- 基于数据挖掘的最优化方法:监督学习或者遗传算法,目前越来越主流
投资组合构建模型的输出
输出结果是一个目标投资组合,即每个头寸和各个头寸的目标规模。将目标投资组合与现有投资组合进行比较,它们的差异就是交易者所要做的。
七 执行模型
- 一般使用电子化交易进行,因为高频交易人工无法胜任
- 积极主动还是消极被动
- 大订单和小订单
- 明订单和暗订单
- 机器学习技术在高频交易中比较成功,原因可能是因为日内数据量很大 + 短时间交易行为很难被动量和均值回复思想所描述
八 数据
- 基本的数据类型有两种:价格相关数据和基本面数据
- 基于价格的相关信息的交易策略要快于哪些基于基本面信息的交易策略
- 数据来源
- 交易所:价格、成交量、成交时间、持仓量、空头持仓量、订单簿数据
- 监管者:各公司财务报表、大股东持仓报告、内部人员交易
- 政府:宏观经济数据,例如就业率、通货膨胀率和 GDP 数据
- 公司:财务公告和其他方面的公告(如分红的变化)
- 新闻机构:新闻稿或新闻报道
- 专门的数据供应商
- 可能出现的问题
- 数据缺失:进行预估
- 数据错误:单位错误,奇异点过滤器(spike filter)
- 前视偏差(数据泄露)
九 研究
- 表现良好的量化投资都有一个共同的特征:在研究中坚持科学的方法
- 交易思想的常见来源:
- 市场的观察
- 学术文献
- 学习其他量化交易者
- 主观判断型交易者的教训
- 如何评价模型好坏
- 累计盈利曲线
- 平均回报率及其随时间变化
- 峰谷间的最大损失
- 预测力:相关系数的平方,表示用于预测的量能够解释需要预测的量的变差程度。换句话说,就是目标变量的变差被信号解释的程度。一般来说到 0.05 已经非常令人兴奋了
- 胜率/盈利时间占比
- 对时间延迟的敏感度
- 对参数设置的敏感性
- 是否过拟合
- 样本外检验:用样本外数据计算相关系数的平方,看和预测力部分是否接近
十 量化交易策略的固有风险
- 模型风险:策略无法准确描述、匹配或预测它试图利用的现实市场现象的风险
- 模型风险的来源
- 建模的不适宜性(the inapplicability of modeling)
- 对一个特定问题错误地使用定量建模
- 对某一特定问题误用了一个非常有效的技术(即在前提假设不成立的情况下使用对应技术)
- 模型的错误设置(misspecification)
- 执行错误(implementation errors)
- 建模的不适宜性(the inapplicability of modeling)
- 市场逻辑变更风险
- 外部冲击风险
- 扩散风险或者同质投资者风险:大家用相同策略也会带来风险
- 如何监测风险
- 敞口监测工具
- 赢利和亏损监测工具
- 执行监测工具
- 系统性能监测工具
十一 对量化交易的批评:确保如实记录
这一章里的内容,随着时间推移,已经不重要的
十二 评价宽客和量化交易策略
- 量化交易基金经理的策略一般是被当做最高机密的
- 投资资源的过程包含六个主要部分(及对应重要问题)
- 研究和发展策略
- 怎样提出关于量化交易策略的新想法
- 怎样测试这些想法
- 如何判断一个策略是否有效
- 数据来源、收集、整理和管理
- 使用什么样的数据
- 怎样存储数据,为什么这样存储
- 怎样整理数据
- 金融产品的选择和结构安排
- 阿尔法模型是理论驱动还是数据驱动
- 选择的是哪一种阿尔法策略(如趋势型、回复型、价值型/收益型、成长型或品质型)
- 采用的是多品种的相对投注还是单品种的绝对投注
- 如果是相对的,相对均值是什么
- 投资期限有多长?投资范围什么
- 怎么组合不同的阿尔法模型
- 构建投资组合
- 怎样构建一个投资组合
- 你的头寸限额是多少,为什么这样设置
- 构建投资组合时输入的是什么
- 构建投资组合想要达到的目标是什么(即什么是你的目标函数)
- 执行
- 使用哪一种交易成本模型,为什么
- 怎样执行交易的,人工还是算法
- 订单执行算法是如何构建的(明单还是暗单,主动的还是被动的)
- 风险控制和监测
- 风险控制模型考虑到哪些因素,为什么
- 你的各种风险限额是多少,为什么这样设置
- 什么情况下会干预自己的模型
- 你在运行过程中监测什么
- 研究和发展策略
- 对细节把握越多,可能就越厉害