《量化交易学习指南——基于R语言》
主要是对书中第 4 到第 8 章的一些内容的笔记。
时间序列建模
时间序列是指按固定时间间隔收集到的数据序列。可以理解为以下几部分组成:
- 趋势
- 时间序列数据均值的长期变动模式,可以是线性,也可以是非线性的或者因时而变。
- 季节效应
- 这是和周期性循环有关的变化模式。
- 周期
- 除季节性循环,时间序列中还存在和商业周期相关联的周期变化。
- 残差
- 时间序列包括系统性的模式和随机噪音,后者让识别时间序列中出现的模式变得困难。
线性过滤器
线性过滤器是从时间序列中提取趋势的一种方法,等权重移动平均则是线性过滤器的基本示例。包括周、月移动平均。
自回归模型
自回归模型(AR模型)的核心概念是时间序列未来的取值依赖于过去的取值;可以通过绘制时间序列的自相关函数(autocorrelation function)和偏自相关函数(partial autocorrelation function)来进行估计。
- 自相关函数
- 度量是时间序列与其滞后值之间的相关性。
pandas.Series.autocorr()
- 偏自相关函数
- 同样是度量时间序列的滞后值之间的相关性,但需要控制更短滞后期聚会的影响。
statsmodels.graphics.tsaplots.plot_pacf()
移动平均模型
移动平均模型不考虑时间序列的过去值,而是考虑过去几个预测误差的移动平均值。
自回归整合移动平均模型
自回归整合移动平均模型一般表示为 ARIMA(p,d,q) ,各项说明如下:
- p
- 自回归的阶数
- d
- 使用时间序列平稳化所需进行差分的阶数
- q
- 移动平均的阶数
可以使用一阶差分函数 pandas.diff()
来处理数据,然后使用 Dickey-Fuller 检验来检查时间序列的平稳性。此时 d 为 1 ,然后对差分后的数据分别计算自相关和偏自相函数,然后生成 ARIMA 来计算预测值。
广义自相关条件异差方程
- GARCH
- 广义自相关条件异差方程用,普通最小二乘 OLS 估计的一个假设是误差项的言状是恒定不变,但是在时间序列中,残差项变化很大,同时由于自相关效应,大的残差并不随机分布,高波动性时期往往相互紧挨,被称为 波动性聚集 ,可以利用 GARCH 来预测波动性指标,进而预测模型中的残差项。
- EGARCH
- 指数 GARCH 模型是 GARCH 的升级,其对方差取自然对数。
- VGARCH
- 向量 GARCH 模型或多变量 GARCH 模型
动态条件相关性模型
多变量 GARCH 模型对数据的平方项或交叉项来说是线性的,通常用来估计随时间变动的相关性。这也可以用动态条件相关性模型(DCC)来估计,该模型是单变量 GARCH 模型和关于相关性的简约参数模型的结合。
算法交易
算法交易是指基于预设的规则来买入或卖出金融产品的工具。
泛化
指将原始数据集分成 2 个较小的数据集,其中一个包括 70%~80% 的样本,称作 样本内数据集 ,另一个则包括余下的 20%~30% 的样本,称作 样本外数据集 ,这样有助于建模者规避在估计模型参数时的人性偏差。如果交易策略在样本内和样本外取得的成绩非常相似,就认为该交易策略具备良好的泛化能力。
配对交易
- 价差
- 指买入某种产品的同时卖出另一种产品
- 相关性
- 指买入某种产品的同时卖出对冲比率份额的另一种产品,对冲比率即是建立相关性的参数。
- 协整
- 将一个价格时间序列对另一个价格时间序列进行回归。
基于机器学习的交易
逻辑回归
逻辑回归是一种概率模型,它给每个事件赋予一定的概率。
- ma10,ma20,std10,std20,rsi5,rsi14,macd12269,macd7105,bbands20
- 市场方向向量 direction 指数收盘价大于20天前的价格时,为上涨,反之为下跌。
- 建立样本内外数据(7/3或者8/2)
- direction 为因变量,其它为自变量
- 使用广义线性模型函数 glm() 来拟合模型
- 将结果转换为 [0,1] 的概率 (1/(1+exp(pred)))
- 定义大于 0.5 为上涨,小于等于 0.5 视为下跌
- 使用混淆矩阵来计算结果的正确性
confusionMatrix()
神经网络
- 定义上涨、下跌、盘整三种市场分类,并定义在上涨时买入、下跌时卖出、盘整时不进行交易
- 过去 20 天的收益率大于 2% 为上涨,小于 -2% 为下跌,[-2%, 2%] 为盘整
- 将数据集分为 3 组数据,训练集、验证集、测试集,训练集用来训练神经网络,验证集用来验证模型估计得到的参数,测试集用来评估预测的准确性
- 深度神经网络
- 属于广义深度学习范畴,比神经网络含有多隐藏层
- K 均值算法
- 非监督型机器学习算法,非监督学习算法是一种分类数据方法,不需要给数据加标签。
- K 近邻算法
- 非监督学习算法,可以帮我们指出样本外数据点属于 K 类中的哪一类
- 支持向量机
- 监督学习算法,既可以对数据进行分类,也可以对数据进行回归分析
- 决策树
- 基于树的监督学习算法之一,该算法得到的结果比较稳定,准确性高,对样本外数据集的泛化性能好,能很好的处理线性和非线性关系
- 随机森林
- 基于树的机器学习算法,是决策树的集合,每个决策树都有相应的权重
最优化
指从所有可选的解决方案中选择一种最佳的解决方案。
- 动态再平衡
- 通过调整投资组合的现金流入或流出来保持投资组合的权重更接近预定资产的配置目标的过程。
- 前行测试
- 在量化金融中用来识别交易策略应该使用的最佳参数的一种方法。交易策略针对特定时间窗口的一部分样本数据进行优化,未使用的数据则和样本数据分离,用来测试参数。
- 遗传算法
- 一种基于搜索的优化技术,其基本原理来自遗传学和自然选择理论,利用种群和重组建立新种群的方式来优化搜索过程。