大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
概述
本文由JoinQuant量化课堂推出,难度为进阶(下),深度为 level-0。
作者:swlaw
编辑:肖睿
建议读者掌握
引言
沪深 300 股指期货推出已久,利用它来进行套利交易是相关理论研究者和实际工作者非常关注的问题。N.Burgess 利用协整模型对 FTSE100 指数进行套利取得了良好的效果, Board 和 Sutcliffe 利用协整方法对大阪、新加坡和芝加哥的日经 225 指数合约之间的价差套利研究表明也存在套利交易空间。同时协整分析在股票指数间的长期平稳关系或期货保值中也得到广泛应用。
股指期货的两个不同期货合约因为对应的同一个股票指数,所以存在着长期协整关系的基础。依据配对交易的思想,基于协整的股指期货套利的核心在于准确发现价差交易出现的时机和概率,而本文可应用协整方法来构建不同到期月份合约价格序列的长期均衡关系,估计价差序列的分布,从而制定恰当的价差交易策略。
正是由于上述原因,本文利用二元协整的跨期套利策略对沪深 300 指数期货做相关的跨期套利研究,结果表明,本文提供的跨期套利策略具有可以发现更多的套利机会且风险可控等方面的优势。
股指期货及跨期套利策略与模型
股指期货指以股票价格指数为标的物的期货合约。由已有的金融文献中持有成本定价原理知,股指期货定价公式为:
F=Se(r−q)(T−t)(1)F=Se(r−q)(T−t)(1)F=Se(r−q)(T−t)(1)
其中: FFF 表示股指期货在时间t时的价格; SSS表示现货指数在时间t时的价格; rrr 表示以连续复利计算的无风险利率; qqq 表示股息收益率; TTT 表示期货合约到期时间(年); ttt表示现在的时间(年)。
一般来说,基于相同标的股票指数的股指期货在市场上会有不同交割月份的合约同时交易。而股指期货的跨期套利,就是指利用基于同一股票指数的两个不同交割月份的股指期货合约之间的价差进行的套利交易。严格来讲,跨期套利不是无风险套利,它实际上属于价差套利交易,所以其操作重点在于判断不同交割月份合约的价差将来是扩大还是缩小。
依据对不同交割月份合约价差未来走势的判断,可将跨期套利的策略划分为三种:
牛市(多头)跨期套利:即判断远期合约相对近期合约被低估,(设远期合约价格为 F2F2F2, 近期合约价格为 F1F1F1,则 F2=S0⋅e(r(T2−T0))F2=S0⋅e(r(T2−T0))F2=S0⋅e(r(T2−T0)),F1=S0⋅e(r(T1−T0))F1=S0⋅e(r(T1−T0))F1=S0⋅e(r(T1−T0)), 此时 F2F2F2 偏小,则存在套利空间,在套利的驱使下,F2F2F2 将回归正常,即 F2F2F2 将变大)价差将扩大,我们可以买入远期合约的同时卖出近期合约。
熊市(空头)跨期套利:即判断近期合约相对远期合约被低估,价差将缩小,我们可以买入近期合约的同时卖出远期合约。 在本文中讨论多头与空头策略,而上述策略的实现则需要跨期套利模型来提供精确的标准来进行。
传统的股指期货跨期套利依据股指期货的持有成本定价公式产生的无套利空间确定跨期套利策略。如现有近期合约 F1F1F1 和远期合约 F2F2F2,则依据式 (1) 有:
lnF2−lnF1=(r−q)(T2−T1)(2)lnF2−lnF1=(r−q)(T2−T1)(2)lnF2−lnF1=(r−q)(T2−T1)(2)
如不考虑交易费用, 则 (r−q)(T2−T1)(r−q)(T2−T1)(r−q)(T2−T1) 是两对数序列的价差的平衡点,则当这两对数序列的价差大于 (r−q)(T2−T1)(r−q)(T2−T1)(r−q)(T2−T1) 时,说明价差偏大,价差将缩小,则实行空头策略,反之,则实行多头策略。然而这一模型存在如下缺陷: ①基于持有成本理论中的股息收益率 qqq 不易确定,限制了其应用; ②基于持有成本理论的套利往往需要经历较长时间才能完成,因为它的价差会一直处于偏高或偏低的状态,只有在合约临近到期时才有回归的压力。
使用协整模型
基于协整的跨期套利模型则可以避免上面的缺陷,并且可以充分利用已有的市场交易数据所提供的最新信息,从而发现更多的套利机会。其基本思路如下:
假设现有一段时间内的两期货合约序列分别设为近期合约 F1F1F1 和远期合约 F2F2F2,本文先将这段时间分成两段(前一段时间较长),然后以第一段数据建立模型,第二段数据以第一段数据建好的模型为依据来进行交易。
一、在第一段数据中,先对两合约序列取对数为 lnF1,lnF2lnF1,lnF2lnF1,lnF2,则这两对数序列的协整关系处理可分为两步:首先,检验 lnF1,lnF2lnF1,lnF2lnF1,lnF2 是否存在单位根;其次,若这两对数序列都存在单位根,那么就检验它们是否存在协整关系,即对它们建立回归方程(A,BA,BA,B 代表方程回归系数,resid1resid1resid1代表回归残差项):
lnF=A+BlnF1+resid1(3)lnF=A+BlnF1+resid1(3)lnF=A+BlnF1+resid1(3)
若 resid1resid1resid1 不含单位根为平稳序列,则两对数序列存在协整关系。
二、接着将这一协整模型结果代入到第二段数据中,并设在这一时点满足上一段时间的回归关系,即:
resid2=lnF2−BlnF1−A(4)resid2=lnF2−BlnF1−A(4)resid2=lnF2−ΒlnF1−Α(4)
而第一段数据中建立的协整模型的残差为 resid1resid1resid1,其样本标准差为 std(resid1)std(resid1)std(resid1),则再设:
resid3=resid2/std(resid1)(5)resid3=resid2/std(resid1)(5)resid3=resid2/std(resid1)(5)
三、本文可以认为在第一段时间内建立的模型在第二段时间内依然成立,所以 resid2resid2resid2 和 resid1resid1resid1 有相同的分布,且都是均值为 000 的白噪声。由此可知, resid2resid2resid2 时刻存在着向均值 000 回归的内在要求,而不像基于持有成本理论定价的套利策略只有在合约临近到期时价差才有回归的压力,这样的特性使得可以发现更多的套利机会。当 resid2resid2resid2 的绝对值超过一个样本方差时(也就是当 |resid3|>1|resid3|>1|resid3|>1 时),可以认为是一个较好的套利机会,但当 resid2resid2resid2 的绝对值超过两个样本方差(也就是当 |resid3|>2|resid3|>2|resid3|>2)这样的小概率事件发生时,则往往意味着这两对数序列的协整关系已经不再成立。综上所述,本文可将开仓平仓的标准如下设定:
当 resid3resid3resid3 的绝对值超过 111 且小于 222 时开仓; 开仓后当 resid3resid3resid3 回落到 000 值时平仓; 开仓后当 resid3resid3resid3 的绝对值超过 222 时认亏平仓。
这样的开仓平仓标准可以确保两对数序列的价差在可控的范围内,而不像基于持有成本理论的套利策略那样:开仓后价差不在可控范围内,可能会向不利方向发展过大从而导致爆仓。
策略交易过程
我们以 10 年 7 月 1 日 14:21 这一时间点为例来介绍一下上述策略的执行过程: (1)我们在每一个分钟数据上取过去 240 分钟的 IF1007 和 IF1008 的收盘数据F1,F2F1,F2F1,F2,对上述数据取对数,得到 lnF1lnF1lnF1 和 lnF2lnF2lnF2。利用 ADF 检验判断 lnF1lnF1lnF1 和 lnF2lnF2lnF2 是否为平稳时间序列:
序列lnF1lnF2检验 t 值−1.048804−0.858032检验 p 值0.7350510.801479序列lnF1lnF2检验 t 值−1.048804−0.858032检验 p 值0.7350510.801479序列检验 t 值检验 p 值lnF1−1.0488040.735051lnF2−0.8580320.801479
由上可知 lnF1lnF1lnF1 和 lnF2lnF2lnF2 均为非平稳序列。
(2)对 lnF2lnF2lnF2 和 lnF1lnF1lnF1 做回归可得:
lnF2=0.49513029+0.93776831lnF1+resid1lnF2=0.49513029+0.93776831lnF1+resid1lnF2=0.49513029+0.93776831lnF1+resid1
对 resid1resid1resid1 进行 ADF 检验:
序列resid1检验 t 值−4.318837检验 p 值0.000412序列resid1检验 t 值−4.318837检验 p 值0.000412序列检验 t 值检验 p 值resid1−4.3188370.000412
可以发现残差项此时的 ppp 值仅为 0.0004120.0004120.000412,远小于 0.010.010.01 的临界值。此时我们认为两个对数序列满足协整关系,接着我们可以利用这一协整关系来进行交易。
(3)接下来这段时间内我们可以利用上述选择的标准进行交易。首先我们认为这段时间内协整关系依然会保持下去。因此当两股指期货价格出现偏离时,其偏离最终会回归到 000。具体交易思路如下,在每个交易分钟开始时我们取上一分钟的两股指期货的收盘价的对数,记为 lnF1lnF1lnF1 和 lnF2lnF2lnF2,将其带入步骤(2)中得到残差项 resid2resid2resid2:
resid2=lnF2−(0.49513029+0.93776831lnF1)resid2=lnF2−(0.49513029+0.93776831lnF1)resid2=lnF2−(0.49513029+0.93776831lnF1)
将这一残差项标准化为 resid3=resid2/std(resid1)resid3=resid2/std(resid1)resid3=resid2/std(resid1);则 resid3resid3resid3 有向 000 均值回归的特性。根据这一特征我们设计了下面的交易策略:
1, 在 14:21时,如果 resid3>1resid3>1resid3>1 且 resid3<2resid3<2resid3<2,说明远期的股指期货相对近期的股指期货价格偏高。因此进入近期期货合约的长头寸同时进入远期期货合约的短头寸。反之,如果 resid3<−1resid3<−1resid3<−1 且 resid3>−2resid3>−2resid3>−2 时,按照和上述相反的头寸进行建仓。由于过大的交易量在实际交易中会造成较大的冲击成本,为了反映现实情况我们将交易量限制在下一分钟两个期货合约交易量的十分之一。
2, 在 1<resid3<21<resid3<21<resid3<2 的情况下建仓后,如果当 |resid3|<1|resid3|<1|resid3|<1 时,我们认为 resid3resid3resid3 向均值 000 回归,此时我们将在 (1) 中建立的仓位平仓。当|resid3|>2|resid3|>2|resid3|>2 时我们认为判断出现错误,resid3resid3resid3 并没有按照预期回归到 000,此时为了避免更大的损失我们提前平仓止损。
3, 在 15 年 9 月 7 日之后因为交易数量有限制,最多只能交易 10 日,且平今仓手续费变为原来的的 100 倍因此我们此处严格按照这一限制进行仓位操作。
回测结果
在以下的回测中为了更贴近现实,我们回测中选取中国金融期货交易所中公布的手续费率,保证金比例以及平今仓手续费率。
首先看一下从 10 年 5 月到 16 年 12 月之间的回测结果:
可以发现,这一股指期货的跨期套利策略还是比较有效的,但 15 年 9 月政策收紧后,套利空间基本不存在了(尤其是由于平今仓手续费过高的原因实际已经接近 T+1 制度)。可以看出这一策略还是能准确的利用股指期货价格的偏离,将风险控制在一个较低的水平。再来分段看下:
可以发现随着市场的成熟,在12年1月到12年6月这段时间,套利的空间比较少,并且因为是高频交易产生了很大的手续费,因此出现了一定的回撤。
从12年到15年政策收紧之前,整个策略还是有效的,三年间最大回撤为18%,且在15年这段时间内仍然有很大的套利空间存在。
需要注意的是在本策略中,因为是按分钟数据进行交易,交易的频率偏高,因此对手续费异常敏感,这也是政策收紧调采用调高平今仓手续费的原因之一。
函数说明图
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166468.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...