量化投资和非量化模式不冲突,反而可以相互借鉴,得到更好的结果
更新历史
- 2021.11.21:开始阅读
读后感
本书正在阅读中…
阅读笔记
序:通向量化投资之路并不平坦
量化投资没有确切的定义,它泛指通过数学分析、挖掘价格波动规律,或者通过对相关宏观经济、财务数据、量价关系、资金交易等数据进行建模,寻找数据之间的关系,以获得稳定利润为目标,持续计算生成定量化的投资信号,并通过计算机严格执行。
与传统的“主观分析+手工下单交易”的区别:
- 业绩稳定
- 概率取胜可精确回测
- 严谨且执行力强
量化投资和非量化模式不冲突,反而可以相互借鉴,得到更好的结果。
一 量化投资入门建议与行业概况
学习路线图
- 体会各类资产的择时模型,激发学习兴趣。在单一时间序列模型上,动量容易被均线类、突破类模型捕捉
- 克服编程语言障碍(对于程序员来说这一点可以忽略)
- 探索股票和期货波动特征,尝试较为复杂的股票和期货模型。因为股票和期货有足够的容量可以交易,且杠杆率可控,资金安全有保障
- 做足单因子分析工科,然后切换到多因子学习。观察因子值对于个股收益率的描述能力,重点分析 IC 和因子收益单调性,以便发现高质量的 Alpha 收益(超额收益)因子。在多因子阶段需要注意:做好数据处理工作,让模型更加简单有效和安全、易解释,对算法知识可以浅尝辄止,因为可供调用的算法包很多。
如何达到稳步上升的资金曲线
- 基于强壮稳健的投资逻辑。
- 不断产生假设,反复提出各种投资逻辑,并设定严格的回测条件,证实和证伪你的假设
- 阅读大量金融服务行业研究报告也是策略开发的思路来源
- 模型对应不同样本有盈利的共性,且模型参数有限、有效、有合理参数解释
- 基于时间的玫瑰。坚守自己的模型,保持强大的连续性和投资定力,这在一定程度上比开发更先进的模型更重要
- 基于多资产多策略配置。国家的货币总量是逐步递增的,这是经济正常上行的必然结果,其反应在日常生活中的表现是资产价格上涨和货币购买力缓慢降低
有保留地相信回测结果
- 量化投资的危险之处在于,目标函数在推动你从数据里挖出黄金,也在放大噪声的影响力,所以到了某个奇怪的交易规则设置临界点下,模型由噪声主导,得到的完全都是幸存者偏差
- 我们要相信回测结果,在一定程度上也要尝试走在市场前面,预判性地应对风险
绩效评估常见指标和方法
- Sharpe Ratio 夏普比率
- 目的是计算投资组合每承受一单位总风险,会产生多少的超额报酬
- 优点是不仅考虑收益,还考虑每次的波动率(回撤幅度),可以同时对策略的收益与风险进行综合考虑
- 公式:(策略年化收益率 - 无风险回报率) / 策略回报标准差。这里的标准差就是净值在这段时间内的标准差
- Alpha 阿尔法
- 投资中面临着系统性风险(Beta)和非系统性风险(Alpha),Alpha 是投资者获得与市场波动无关的回报
- 公式:Alpha=Rp-[Rf+βp(Rm-Rf)],含义是 策略年化收益率 - [无风险利率 + β x (基准或市场年化收益率 - 无风险利率)],这里需要先计算 beta
- Beta 贝塔
- 表示投资的系统性风险,反映了策略对大盘变化的敏感性
- 计算公式:策略每日收益与基准或市场每日收益协方差 / 基准或市场每日收益方差
- Annualized Returns 策略年化收益率
- 表示投资期限为一年的预期收益率
- 公式:(策略最终价值 / 策略初始价值 - 1)/回测交易日数量 x 250
- Benchmark Annualized Returns(基准年化收益)是将策略收益换成市场收益
- Max Drawdown 最大回撤比率。计算公式 max(1 - 策略当日价值 / 当日之前资金最高价值)。另外还需要注意最大回撤持续时间,表示多久能重回净值最高点,一般夏普比率高,最大回撤持续时间就短
- Sortino 索提诺比率。
- 表示策略每承担一单位的下行风险,将会获得多少超额回报
- 公式:(策略年化收益率 - 无风险回报率) / 策略下行波动率
- 可以看作是夏普比率在衡量对冲基金/私募基金时的一种修正方式
- 下行波动率(Downside Risk) = 当(今日或本阶段策略收益率 - 平均收益率)为负时的波动率
- 波动率 = sqrt((收益率 - 平均收益率)^2 x 250 / (当前策略运行天数 - 1))
- Information Ratio(IR) 信息比率
- 用于衡量单位超额风险带来的超额收益,越高越好
- 公式:(策略年化收益率 - 基准年化收益率) / 策略与基准每日收益差值的年化标准差
- 更适合评估单一股票市场内的每一个交易策略
期货量化交易的重要指标
- 收益风险比
- 公式:年度收益 / 全段最大资产回撤
- 表示了一个策略的风险控制和收益平衡能力,越大说明同收益的前提下风险越低
- R 平方值
- 交易盈亏曲线拟合的趋势线与收益曲线之间的相关系数的平方
- 值趋近于 1
- 平均资产回撤
- 计算公式:资产回撤总金额 / 资产回撤计数(都是以超过最大回撤基准线以上的回撤来计算的前 N 个最大回撤)
- N 一般设定为 5,表示考虑亏损最严重的 5 次的平均回测
- 调整收益风险比
- 公式:年度收益 / 平均资产回撤
- 其可信度强于收益风险比(就是第一个)
- TB 系数
- 公式:(平均利润 x 平均利润 x 交易手数)/(平均盈利 x 平均亏损)
- 一个自定义绩效评价指标,有一定参考价值(考虑了交易手数)
- 头寸系数
- 公式:收益风险比 x R 平方值 x 置信度 / 最大资产回撤
- 收益风险比间接考虑了最大回撤
- R 平方值间接考虑了平均回撤
- 置信度间接考虑了交易次数
- 置信度
- 公式:1 - 1 / sqrt(交易次数)
- 在同等利润或者夏普比率下,越高的绩效置信度说明实盘阶段该绩效保持不变的可能性越高
绩效永远不仅只评估收益,而且还评估风险情况。想要走得远,就要特别关注风险控制能力。
二 快速驾驭编程语言支持
主要是介绍 Python 和聚宽平台上的函数,常用函数:
get_index_stocks
获取某个指数的成分股名单数据get_fundamental
获取基本面财务数据attribute_history
获取历史数据get_current_data
获取当前时间的个股信息get_security_info
获取单个标的的基本信息
三 股票期货择时交易模型
ETF 二八择时法则,跑赢基础股票指数
- ETF 基金在股票市场中生命力持久,本质原因是它剥离了个股特质风险,通过获得市场系统性风险反而降低了个股选择的难度
- 从时间序列量价分析的角度看,个股的时间序列噪声高、随机性强,不容易获得主趋势(信号),反而容易被次级趋势和微弱趋势(噪声)所困扰,通过择时等方法跑赢大盘不容易,也会带来过大的波动性(回撤风险)
- 从长周期来分析,股价是围绕其基本面价值上下波动的,研究表明市场上存在单一股票价格噪声,而基本面的变化取决于经济环境特别是经济结构调整与经济周期轮动,所以个股代表了经济的各个领域,互相叠加后最终波动主趋势得以呈现
- 选择 ETF 的持有标的,要注重差异性,比如做两个标的的轮动,一定要在基本面或者逻辑方面形成显著差异
具体代码
1 | # 导入函数库 |
Aberration 系统,长期活跃于期货市场
- 是一套古老而简单的趋势类突破系统,由 Keith Fitschen 于 1986 年发明
- 实际上是布林带系统的突破式应用,是中低频中长线持仓的一套模型
- 基于布林带的突破模型,一定是低胜率的模型,但又可以赚钱,就一定是一个高盈亏比的模型,以此来对冲低胜率带来的反复亏本
- Aberration 的核心构成是一条均线,加上、下两个轨道,轨道宽度是 N 倍标准差
- 交易规则是,当价格突破上轨时做多,当价格回到中轨时平仓;反之,当价格突破下轨时做空,当价格回到中轨时平仓
- 通过 ATR 适应波动率止损。
- 计算 ATR 首先要计算出 TR 值,也就是单个 K 线上的真实波动量
- TR 等于 “最高价- 最低价”和“最高价-昨收”和“昨收-最低价”,这三个值的最大值
- 然后将 N 个周期的 TR 值做移动平均即可。如果 N 较小,ATR 反应敏锐,但也意味着噪声较高;如果 N 较大,则 ATR 反应较慢,但也更稳定
低价股+逆向双均线模型,初步探索个股特征
- MACD 的本质是两条 EXPMA 均线通过二次平滑得到,即由快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线 DIF,再用 2 乘以(快线 DIF 减去 DIF 的 9 日加权移动均线 DEA)得到 MACD。可视化效果好
- 交易逻辑为
- 通过短期均线上穿上期均线(金叉),视为买入股票信号,全市场扫描符合该条件的股票买入
- 在买入时做一些过滤,选择低价股买入,“低价”在 A 股本来就是一个有效因子
- 双均线仅提供入场点,不提供出场点,出场由硬止损和追踪止损完成
- 个股上的动量因子并不强烈,市场充满 了对于趋势交易者特别是按照均线类模型入场的交易者的绞杀
- 散户交易者中大量存在的迷信指标(均线类动量指标)和市场实际情况发生了较为严重的偏差
- 必须仔细检测你的交易思路是否正确
1 | # 导入函数库 |
AMA 自适应均线系统捕捉价格启动机会
- 传统均线模型在震荡阶段价格反复向上、向下触碰均值,所以造成单均线交易法反复发出信号,亏损较为严重。
- 双均线交易法在一定程度上有所改进,但依然在此阶段有较大亏损
- 考夫曼自适应移动均线 KAMA 基本上是大家认为比较理想的均线系统
海龟交易法则
- 海龟交易法则不仅从模型原理上容易理解,而且提供了一套完整的模型+风险控制+资金管理思路
- 针对期货
四 基本面和基本面交易模型
股票模型思路形成与常见问题
- 一个策略开发者,首先应该通过长时间在 A 股市场的交易行为,逐步感知市场参与者的风险偏好、资金流动规律。然后建立基本假设,比如假设市场偏好高业绩的股票,或者价格波动的规律偏向趋势性或反转性。最后通过撰写模型,逐一验证自己的假设。在测试模型的过程中,还要再度观察自己的假设是否合理,模型收益来源是否获得合理解释
- 以 PDCA(Plan Do Check Action)科学管理方法建立模型
- Plan 通过经验和观察,得到初步观察
- Do 设计模型思路,撰写源码,验证假设
- Check 观察交易情况,分析绩效报告
- Action 调整逻辑,再次进入模型迭代环节
- 可能会导致幸存者偏差的问题
- 经济结构或市场结构过度调整:类似小市值这样的表象因子需要慎重考虑,因为这个因子的有效和失效,都伴随着市场结构和监管方式的随时变化
- 建模数据不足,或模型错误处理数据
- 因子超额收益不纯净:回测结果需要人工复盘观察,以股票模型为例:某些时段投资组合中的某个股票上涨原因并不是某因子能够解释的,也许是资产重组或者消息刺激等巧合导致的,这种情况要逐一排除,才能得到稳健的模型和参数
小市值二八过滤止损模型
具体代码
1 | # 导入函数库 |
PEG 价值选股模型,复制彼得·林奇投资路径
- 任何一家公司股票如果定价合理的话,市盈率就会与收益增长率相等
- 静态 PE = 股价 / 年报每股收益(EPS)
- 动态 PE = 股价 x 总股本 / 下一年净利润(需要预测)
- PEG = PE/净利增长率 x 100
- 如果 PEG > 1 则股价被高估,如果 PEG < 1 则被低估
1 | # 导入函数库 |
技术指标测试平台
- 技术指标分析法(Technical Indicator)是证券投资中一种重要的操作方法,从传统交易方法来看,这是技术分析法的一个重要分支,但这些技术指标本质都是价量关系的数学表达,只不过公式不同,侧重点不同
- 技术分析法的重要理论奠基——道氏理论(Dow Theory)认为市场行为包容一切,即所有的基础事件、经济事件、社会实践等最终都会反映到价格和成交量变化中来。这种分析法不建议再针对基本面做任何建模,因为除了量化分析之外的工作都是无效的
- 使用 TA-Lib 进行相关计算
- 关键之处在于交易规则,可以用金叉、死叉方法买入。但为了得到指标值对于股票涨跌力度的解释,更倾向于得到指标值之后,直接以此对股票排序,然后买卖股票
- 一些重要的技术指标:MACD、布林带、RSI、CCI、MTM、KDJ、CMO、OBV、CORREL 等
- 指标必须和止损、大盘判断、个股特指等因子完整地结合,才能具备一定的生命力
动量效应和反转效应
- 在较为成熟的市场上,反转效应较强,或者说换手率过高的、投资标的选择自由的市场(特别是 A 股市场),反转效应显得更有优势
- 虽然市场存在信息不对称,但是信息传导的速度过快,经常导致套利空间被压缩,在动量能够被观测到的时候,已经变成了反转
- 大部分 A 股投资者不关心公司的基本面,其核心原因是 A 股定价和基本面关系较弱,而和资金推动力关系较强,且行业未形成垄断格局