码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
打开量化投资的黑箱
以遵守纪律的、可重复的、保持一致的方式做事情是很有用的。
本书主要集中讨论阿尔法方向的策略,通过择时和调整持仓头寸进而获利。
第一章 关注
量化交易
的原因
文艺复兴科技公司 – 大奖章基金、长期资本管理公司(LTCM)、全球阿尔法基金
算法执行(algorithmic execution):在电子化市场中,投资者的买卖行为是通过计算机软件实现的。
经典策略[[统计套利]],其中最为经典的当属配对交易。^
针对行业跑一下行业指数与个股的价差比例,如果有相关性高的,可以通过价差比例的异常,寻找统计套利机会
^
深度思考的益处
风险的正确度量和错误度量
认为没有足够能力预测市场运行的方向的的,都会度量市场风险敞口程度(利用净头寸或者贝塔系数度量),通过平衡多空头组合以使得风险暴露处在较低的水平。
遵守纪律
亏损时要止损,盈利时要让利润奔跑
第二章 量化交易简介
量化交易系统的典型结构
[[交易系统模块]]:[[阿尔法模型]]、[[风险模型]]、[[交易成本模型]]
[[投资组合构建模型]]
[[执行模型]]
数据和研究
除了阿尔法模型部分,量化交易系统的其他很多部分也值得深入理解和评估。
第三章 阿尔法模型
[[阿尔法模型]]:用于表述投资者的盈利能力,或者投资者得到的与市场波动无关的回报,或仅仅是由投资策略所带来的价值。
给出阿尔法的一种非常规定义:
在交易中关于买卖时机把握和持有头寸选择的技巧
所有成熟的阿尔法模型都有一定的局限性,在一定范围内可以对未来的情形有着精确的预测效果。
两类阿尔法模型:理论驱动型和数据驱动型
理论驱动型:通过观察市场行为,寻找可能用来解释这些行为的普适性理论,再根据市场数据来检验理论是否可以有效解释市场行为。
理论驱动型阿尔法模型
[[理论驱动型交易策略]]可以划分为六类:[[趋势型]]、[[均值回复型]]、[[技术情绪型]]、[[价值型/收益型]]、[[成长型]]、[[品质型]]
值得注意的是,这些交易策略,和追逐阿尔法收益的主观判断型交易者所使用的策略完全相同。
[[趋势型]]和[[均值回复型]]策略依赖于价格数据;
[[技术情绪型]],少见,基于价格的第三类型策略;
[[价值型/收益型]]、[[成长型]]、[[品质型]]策略均基于基本面数据。
基于价格数据的交易策略
试图预测两种现象:1、已有的趋势是否会延续;2、目前的趋势是否会反转。
1、前者称为[[趋势跟随策略]]或[[动量策略]]
2、后者称为[[反趋势策略]]或[[均值回复策略]]
1、[[趋势跟随策略]]
基本假设:在一定时间内市场通常是朝着同一方向变化
[[趋势跟随策略]]最典型的例子是期货交易行业的CTA策略。
趋势跟随策略的收益极其不稳定。
2、[[均值回复策略]]
基本理论:认为价格围绕其价值中枢而上下波动。
趋势跟随和均值回复并不一定冲突。趋势通常是长期的,而短期内容着趋势小范围波动,两种策略经常会组合使用。
[[统计套利策略]]:价格出现背离的类似股票的价差终究会缩小到合理区间范围。
^
选取类似的股票,对于均线价格的价差做成line,寻找标准差越小的,可以用这个策略。**得用到统计学了**
^
^
还可以以自身均线的价差,做均值回复
^
3、[[技术情绪型策略]]
常见指标有交易价格、交易量以及波动性指标。没有明确的经济理论支持这类策略。
[[隐含波动率]]可以作为市场情绪的风向标
[[高频交易]],通过观察[[限价指令簿]]的形态,如相对于最优买入/卖出价的买卖单量,买方和卖方出价的规模,以及买入卖出报价单的总量等。
大部分策略都将其作为反向指标使用。意思是正面信息反而是预示反向的形态。
依托基本面数据的策略
通常分三类:价值型、成长型、品质型
1、价值型/收益型
市盈率(P/E):每股市价比每股收益
倾向于使用市盈率倒数(E/P),称为盈利收益率
。因为如果亏损或者收益为0,则会让数据产生歧义。
价值型策略的基本理念是:收益率越高,价格越低。
注意需要把数据加工成更加规范、更便于使用的变量,从而可以更加便利的用于系统化的交易软件。
价值型投资策略认为,市场倾向于高估高风险资产的风险,而低估低风险资产的风险。
利差交易(carry trade):在同一相对水平上,买入估值过低的证券并卖出估值过高的证券。
价值型交易带给投资者安全边际
寻找指标来度量“便宜”:如息税折旧及摊销前利润对企业价值的比率;每股账面净值对股价的比率(
账面收益率–使用率高
)。(FAMA)
[[量化多空策略]]:QLS,寻找相对价值较低的股票,而不是评估某只股票是便宜还是贵。
[[展期收益]]:roll yield,指在未来某天到期的期货合约价格和现货价格之间的价差。([[现货溢价]]:基本上就是期货贴水产生的展期收益为正;[[期货溢价]]:基本上是期货升水导致的展期收益为负)
2、成长型
成长型策略试图通过对所考虑资产以往的增长水平进行分析而对未来的走势进行预测。
成长型策略认为,在其他条件都相同的情况下,应该买入价格正在快速上涨的产品而卖出价格涨幅较慢甚至负增长的产品。
指标:市盈率与增长比率,PEG
价格的上涨通常都是存在趋势的,价格上涨最快的产品通常会比同类产品更具优势。
3、品质型
在其他条件相同的情形下,最好买入或持有高品质的产品而做空或减少持有低品质的资产。
品质型策略看中资金的安全性,而成长型和价值型策略对这一点没有予以重视。被称为安全投资转移策略。
衡量资产质量的指标可以分为五大类:
杠杆比率:卖出高杠杆比率的公司买入低杠杆比率的公司,更可靠。
收入来源多样性:多种潜在增长渠道的公司比单一公司质量要高。(收入波动率,更倾向波动率低的股票)
管理水平:买入具有好的领导团队的公司
欺诈风险:买入欺诈风险低的公司(量化股票多空策略中的
收益质量
指标)
收益质量指标用于度量公司真实收益(自由现金流)与财报的每股净收益之间的接近程度。–^
还是要看,如何看报表
^
情绪型策略
品质型策略的收益随时间波动很大,而且极度依赖于宏观市场环境。
数据驱动型阿尔法模型
两大优势:数据挖掘更具有技术挑战性,竞争者少;可以分辨出一些无法用目前理论解释的市场行为。
高频交易中多有成功案例。
当历史数据支持某种交易策略时,模型便选择进行该交易,否则便不选择该种交易。
1、如何定义“目前的市场环境”
2、寻找“相似”模式使用什么搜索算法
3、如何确定历史数据的回溯时间段
实时策略
一套实施策略值得深入探讨的有很多方面,包括预测目标、投资期限、投注结构、投资范围、模型设定和运行频率。
预测目标
模型可用于预测方向、幅度、运动的持续时间,或者概率或置信度。
信号强度:以期望收益或置信度进行定义,如果保持置信水平不变,期望收益越高,信号强度越强。或者保持期望收益不变,置信水平越高,信号越强。
投资期限
高频交易策略:预测期限不超过当前交易日。
短线交易策略:倾向于持仓一天到两周。
中线策略:预测期限几周到几个月。
长线策略:通常持仓几个月以上。
投注结构
小类配对和大类配对的预测
大部分分组方法,无论使用统计技术还是依靠直觉,都会面临着因为市场机制的变化而导致产品间关系发生重大变化的风险。
首先利用板块对股票进行分组,然后利用动态的统计学方法来改进这些分组,以更好的反映股票间近期的相关关系。
投资范围
具有偶发性的事件,如新药的批准或拒绝,对股价产生剧烈的波动,因此不受量化欢迎。
模型设定
[[机器学习]]方法可用于判断量化交易模型中参数的最优设定。
[[重拟合]]:使用更近期的数据测试,用于对模型进行调整。
条件变量
修正型条件变量:通常基于某种给定的信号,根据该信号的特征而发生变化。比如资金管理、风险管理等规则。
辅助条件变量:要求多种信号达成一致从而触发交易。
运行频率
策略的多样性
^
令人难以置信的注重细节,不知疲倦的提出恰当的问题并找到最佳解决方案
^
混合型阿尔法模型
进行混合预测的3种常用量化方法:[[线性模型]]、[[非线性模型]]、[[机器学习模型]]
阿尔法模型的任意有效组合都会比单个阿尔法模型的效果要好。
线性模型
使用线性模型第一步是给每个阿尔法模型分配权重,通常通过[[多元回归分析]]来实现。
把每个阿尔法模型的产出乘以对应的权重再加起来,就可以得到组合预测或得分。这种组合可以用来指导如何构建目标投资组合。
非线性模型
用于预测目的的变量之间是不独立的或变量间的关系是随时间变化的。[[条件模型]]和[[旋转模型]]是两类主要的非线性模型。
小结
《信号与噪声》
贝叶斯统计学是统计学中的重要分支,特别重视“先验”信息。
频率统计学是另一个重要分支
第四章 风险模型
控制风险规模
通过约束或惩罚加以限制
硬性约束:设定风险线,比如强行规定头寸规模
[[惩罚函数]]:只有在阿尔法模型带来的收益显著增大的情况下才允许仓位超过临界水平。
度量风险
第一种:通过纵向方式来度量不确定性,计算不同时期各个产品收益的标准差来度量风险。称之为[[波动率]]
第二种:在给定产品范围内对各种金融产品表现的相似水平进行测量,通常是计算在给定事件所有相关金融产品的[[横截面标准差]]
这个概念为[[离散]],也可以使用给定范围内金融产品的相关系数或协方差来度量。
其他方法:[[信用价差]]、[[信用风险互换]]、[[隐含波动率]]
限制值的适用范围
仓位限制
杠杆率控制:最常用的工具是[[VaR]]([[value at risk]])模型。
限制风险种类
最好能消除所有无意的敞口是基本准则,因为接受这些敞口并不是总能得到足够的盈利补偿。
量化风险模型主要通过两种方式来清除不希望出现的敞口:理论途径和经验途径。
理论驱动型风险模型
经验型风险模型
[[主成分分析]]的统计方法
通常会发现,对于给定的某只股票,市场本身就是股票收益最为重要的驱动力,第二重要的推动力来自板块。
如何选择风险模型
第五章 交易成本模型
交易是有成本的,除非有足够的理由,否则便不应该进行交易。
定义交易成本
主要为三部分:佣金和费用、滑点、市场冲击成本
佣金和费用
滑点
滑点是指从交易者决定开始交易到订单进入交易所系统实际被执行这两个时间段所发生的价格变动。
滑点给趋势跟随策略带来很多损失,而给均值回复类策略带来的损失就比较少。
市场冲击成本
市场冲击所描述的基本问题是,交易者买入某项产品的行为会推高该产品的价格。而想要卖出,当他完成交易时会造成产品价格下降。
交易成本模型的种类
4种交易成本模型:常值型、线性、分段线性、二次型
一项金融产品总的交易成本可以用图形进行可视化,用订单规模作为横轴,交易成本作为纵轴,该曲线应该是一个二次函数。
常值型交易成本模型
无论订单规模如何,交易成本保持不变。模型简单但通常不对。
线性交易成本模型
交易成本以一个固定的比率随着交易规模的增大而增大。
分段线性交易成本模型
可以提高计算精度
基本理念:在一定范围内线性估计基本是正确的,但在某些电商,二次估计的曲率会造成真实交易成本曲线斜率有较大的上升。
二次型交易成本模型
较为复杂,也更为精确,但存在期望成本与观察到的真实成本线的差别。
第六章 投资组合构建模型
量化投资组合构建模型主要分两大类:一类基于规则的模型;一类基于优化。
基于规则的投资组合构建模型
分为四类:[[相等头寸加权]]、[[相等风险加权]]、[[阿尔法驱动型加权]]、[[决策树加权]]
相等头寸加权
非等权重方法的潜在问题:
默认模型具有统计学意义上的能力和功效,对头寸方向、波动幅度等概率进行预测。而等权重方法,只有在方向性预测上才可以充分信任阿尔法模型,并且有足够置信度就值得交易。
倾向于在“最好”的几个预测头寸上进行大的投注,导致承担一些例外事件的风险加大。
相等加权模型另一个优势,对于不良数据的影响,在策略上有缓释风险的作用。使得有误数据导致的损失风险在可控范围内。
相等风险加权
相等风险加权方法根据头寸的波动性来反向调整头寸规模。波动性越大,分配的权重就越小。
也有缺点。
阿尔法驱动型加权
阿尔法模型可以决定头寸可能具有的吸引力,这个信号是合理决定头寸规模的最佳途径。
基于规则的投资组合构建模型小结
多种规则综合使用。
投资组合最优化
量化分析之父,哈里·马科维茨发表的《投资组合选择》
发明了均值方差优化技术。
[[均值方差优化技术]]是基于[[现代投资组合理论]](MPT)构建投资组合的一种常用方法。[[均值]]和[[方差]]是传向[[优化器]]的两个输入变量,输出变量是在各个风险水平上具有最高收益的一系列投资组合。
[[均值]]:指进行评估的各种资产的平均期望收益。
[[方差]]:是对各种资产期望风险的度量,通过持有各种资产收益的标准差来计算。
传向优化器的第三个输入变量:[[期望相关系数矩阵]]
优化工具的输入变量
1、[[期望收益]]
阿尔法模型的输出变量通常都包含期望收益和预期波动方向,或其他用来指示备选产品吸引力的输出变量。
2、[[期望波动率]]
预测波动率最常见的方法是使用[[随机波动模型]]
[[随机波动预测模型]]的基本理念是:波动率一段时间内会在较高水平,接下来的一段时间就会处于低位,偶尔还会有所跳跃 。最常用的是[[广义自回归条件异方差模型]]。
3、[[期望相关性]]
相关系数是衡量两个产品变化的相似程度的核心度量,取值范围介于-1到1之间。
优化技术
1、[[无约束条件的优化方法]]
2、[[带约束条件的优化方法]]
头寸规模限制
包含风险模型的集成
3、[[布莱克-李特曼优化方法]]
4、[[格里诺德-卡恩方法]]:优化要素投资组合
在开创性论著《积极投资组合管理》中提出。
5、重新取样效率
[[蒙特卡洛模拟]]的方法对数据进行重新取样,以减小优化工具输入变量的估计误差。
6、基于数据挖掘的最优化方法
[[机器学习]]
投资组合构建模型的输出
量化投资组合构建的目标就是理想的头寸及各个头寸的规模。目标投资组合与现有投资组合进行比较,二者之间的差距就是需要进行的交易。
如何选择投资组合构建模型
大多股票策略,采用相对阿尔法模型;许多期货交易策略,采用绝对阿尔法模型。没有绝对的为什么。
第七章 执行模型
订单执行算法
[[中间市场价格]]:反映的是对某一产品最佳买入价和最佳卖出价的均值。
[[交易量加权平均价格]]:是最为被准的基准指标,用以衡量进行多笔交易时执行算法的质量。‘
进取订单和被动订单
进取订单:当执行订单时,价格是执行订单时最优惠的市场价格。
被动订单:允许交易者控制其意愿进行交易的最坏价格。
这里存在一个很大的问题:逆向选择。
第八章 数据
数据的基本类型:价格数据和基本面数据
数据清洗
1、第一类常见数据问题是[[缺失值]]。常见解决方式:
建立允许数据出现缺失的系统,如缺失值赋值为零。
另一个是在缺失值出现的位置进行插补,补上一个合理的数据。
2、第二类常见的数据问题是错误观测值。常见解决方式:
[[异常值过滤]]
3、[[前视偏差]]:提前知道未来数据
数据存储
第九章 研究
研究蓝图:科学的方法
科学的方法使得整个量化交易过程中重要的判断更严谨与更有纪律性。
思想的产生
思想的4个来源:对市场的观察结果、学术文献、研究员或投资组合经理、主观判断型交易活动的教训。
检验
样本内测试,又称为训练
检验过程的第一个步骤是基于样本内数据寻找最优参数训练模型。
“良好的”模型的组成部分
1、累积盈利图
2、平均收益率
3、收益率随时间的变异性
块度:指显著高于平均收益的时间段内的收益占策略总收益的比例。
4、波峰波谷间的最大降幅
重复采样,^
按我的理解,这个有点超出想象,是否可取。
^
5、预测力
6、胜率或盈利时间占比
7、回报相对于风险的不同比率
[[夏普比率]]
[[信息比率]]
[[斯特林比率]]
[[Calmar比率]]
[[Omega比率]]
8、与其他策略的关系
9、时间延迟
10、特定参数的敏感性
过度拟合
模型的[[过拟合]]本质上意味着研究员使用过多的数据。
1、研究员必须对模型的复杂度加以注意。
2、研究员由于条件的限制,创建相当复杂的模型。
样本外检验
[[样本外检验]]是检验流程中的第二部分,是告知研究员去除样本内检验中那些虚拟表格的帮助后,策略在实际中是否起作用。
样本外检验的
R 2 R^2
R
2
与样本内检验的
R 2 R^2
R
2
的比值。这个比率是度量模型[[鲁棒性]]的另一种说法。
如果
R 2 R^2
R
2
相当接近,即,如果比率大于等于0.5,则被认为是一个好的模型。
[[滚动样本外数据的方法]]:这种方法中,最古老的数据点会被丢弃,最新的数据点被用来拟合和检验模型。
可以不断随着时间的改变而有助于更新模型。
缺点是模型不断吸收近一段时间的信息,可能减少[[鲁棒性]]
通过研究样本外数据的信息,并使用这些信息重新训练模型,使样本外数据成为样本内数据集的一部分,通常是不妙的。重申了一次,样本外数据不能被污染。[[加工数据]]
检验中的假设条件
两个假设条件:交易成本和空头头寸的可得性。
[[裸卖空]]:空头名单,尤其是最易成功的空头名单,在卖空限制列表中,不能被交易成功,如果没有真实的股票被解除,这笔交易将被认为是裸卖空。
投资策略实战指南
第十章 量化策略的风险内生性
对于积极主动的量化交易者而言,通常可以避免贝塔敞口(因为他们极易通过复制一般的低成本的指数金融工具而获得)。
模型风险
建模的不适宜性
第一种形式是对一个给定的问题进行错误的量化建模。
第二种错误错误出现在量化交易中,更不容易被发现,是对已知问题的模型的错误应用。
例如传统的[[VaR]]模型用相关矩阵和[[历史波动率]]来判断一个组合在特定时间的风险。但其固有的假设往往是无效的,如假设投资组合中的数据都是呈正态分布。但事实上,
市场数据经常呈现[[厚尾特征]]
。
模型误设
执行错误
结构关系变化风险
许多模型都是基于历史数据。如果市场以一种特殊的方式运行了一段时间,我们会开始依靠这种持续的行为,如果结构关系发生变化,通常会收到影响。
外生冲击风险
外生冲击,指不是主要由于市场内部的信息所驱动的。
不可预测。
蔓延风险和同质投资者风险
如何监控风险
敞口监控工具
损益监控
执行监控工具
系统性能监控工具
第十一章 对量化交易的批评
交易是一门艺术,不是科学
由于低估风险,宽客引起更多的市场波动性
不能应对市场行情中的不寻常事件或快速的变化
。。。。
第十二章 评估宽客和交易策略
评估量化交易策略
研究和发展策略
对于交易策略,你如何提出新的想法
对这些想法如何进行测试
拟合这些模型的方法是什么,样本内测试和样本外测试的方法是什么
策略是否有效的判断依据是什么
数据搜寻、收集、清洗以及管理
你使用的数据是什么
你如何存储数据?为什么要采用这种存储方法
你如何清洗数据
投资选择和构造
你能描述阿尔法背后的理论吗
你所使用的阿尔法策略是哪一种类型
你做的是相对赌注还是方向性赌注
如果是相对的,确切的相对均值是多少
你的阿尔法策略使用的投资期限是多长,投资领域有哪些
你如何组合不同的阿尔法模型
投资组合构建
你如何构建你的投资组合?也就是说,你如何确定头寸大小?
有限额吗?为什么这样设置
投资组合构建模型的输入参数有哪些
你再投资组合构建模型中获得什么?即“目标函数”
执行
你所用的交易成本模型是哪一种?为什么选择这一种
你如何执行交易?人工还是自动
关于你的订单执行算法
风险管理和监测:
你的风险模型考虑因素有哪些?为什么选择这些
你的不同的风险限额是多少?为什么这样设置
什么情况下你会干预自己的模型
如果策略在持续运行过程中,你将检测哪些方面
第十三章 高速及高频交易概要
相关阅读:
Java封装一个根据指定的字段来获取子集的工具类
mdbook安装使用实录
盘点IDEA的超实用快捷键以及插件
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
如何一键清除文件目录下所有的node_modules
python垃圾自动清理机制
Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
HomeAssistant——Intrgration开发
谈谈Vue项目打包的方式
Dart(5)-内置类型
原文地址:https://blog.csdn.net/qq_46363011/article/details/127975986
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号