跨期套利策略

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

什么是平稳性?
提到协整性,就不得不提平稳性。在数学中,平稳随机过程(Stationary random process)或者严平
稳随机过程(Strictly-sense stationary random process),又称狭义平稳过程,是在固定时间和位置的
概率分布与所有时间和位置的概率分布相同的随机过程:即随机过程的统计特性不随时间的推移而变化。
我们以两个序列 和 为例,在检验协整性之前,首先要对序列的单整性进行检验,只有当两个序列 单整阶数相同时,才有可能存在协整关系。
在 和 具有相同单整阶数,通过单整性检验之后,我们用最小二乘法估计模型:
并计算相应的残差序列:
然后,检验残差序列的平稳性:
利用ADF检验法,检验在上述估计下得到的回归方程的残差 是否平稳(如果 和 不是协整的,则 他们的任意组合都是非平稳的,因此残差 将是非平稳的)。也就是说,我们检验残差 的非平稳的假 设,就是检验 和 不是协整的假设。
else: result = 0.0 return 0.0, 0.0, 0.0, result
else: result = 0.0 return 0.0, 0.0, 0.0, result
协整性检验需要我们自己定义函数(如以上代码),此函数需要输入两个序列,返回值为回归方程中 的各项参数及两序列是否具有协整性的结果。
策略主要步骤实现
订阅数据
subscribe(symbols=symbols, frequency='1d', count=31, wait_group=True)
订阅数据需要在定义 init 函数里面设置,并调用 subscribe 函数,这里注意,我们需要通过计算前 三十根bars来作为开平仓的标准,并在当前bar上做出开平仓操作,所以需要获取31根bar:
什么是价差套利?
价差套利的前提是做出商品期货品种间同一月份的价格之间的价差,并且画出价差的时间序列图,分 析价差,寻找合理的价差范围,超出合理的价差变动范围时如何进行操作。
协整性检验
下图为两个时间序列(“RB1701”,“RB1705”)。
可以看出,两只股票具有同涨同跌的规律,长期以来两只股票的价差比较平稳,当价差变大或变小 时,会有某种“力量”使它回归均值,我们的策略也正基于此。但仅凭肉眼观测,肯定是不严谨的,这就需要 协整性检验。如果两个股票具有强协整性,那么无论它们中途怎么走的,它们前进的方向总是一样的。
跨期套利策略
跨期套利策略简介
什么是跨期套利?
跨期套利是套利交易中最普遍的一种,是股指期货的跨期套利(Calendar Spread Arbitrage)即为在 同一交易所进行同一指数、但不同交割月份的套利活动。
跨期套利是利用同一商品但不同交割月份之间正常价格差距出现异常变化时进行对冲而获利的,又可 分为牛市套利(bull spread)和熊市套利(bear spread)两种形式。例如在进行金属牛市套利时,交易 所买入近期交割月份的金属合约,同时卖出远期交割月份的金属合约,希望近期合约价格上涨幅度大于远 期合约价格的上帐幅度;而熊市套利则相反,即卖出近期交割月份合约,买入远期交割月份合约,并期望 远期合约价格下跌幅度小于近期合约的价格下跌幅度。
协整概念是一个强有力的概念。因为协整允许我们刻画两个或多个序列之间的平衡或平稳关系。对于 每一个序列单独来说可能是非平稳的,这些序列的矩,如均值、方差或协方差随时间而变化,而这些时间 序列的线性组合序列却可能有不随时间变化的性质。
什么是单位根检验?
常用的时间序列数据单整和协整阶数的检验,是所谓的单位根检验。
订阅数据之后,需要获取已经订阅的数据来进行操作,这时需调用 context.data 函数: symbols 需要设置订阅的标的代码。 frequency 需设置订阅数据的周期级别,这里设置 1d 表示以一天为周期。 count 需要设置获取的bar的数量 fields 需要设置返回值的种类
协整性检验
跨期套利策略实现(基于掘金量化平台)
策略思想
首先获取套利(RB1801,RB1805)标的价格序列。 根据 两步法(1、序列同阶单整 2、 残差平稳)判断序列具有协整关系之后(若无协整关系则全 平仓位不进行操作)。 通过计算两个真实价格序列回归残差的1.5个标准差上下轨,并在价差突破上轨的时候做空价差,价差突 破下轨的时候做多价差并在回归至标准差水平内的时候平仓。
策略收益曲线相当稳定,适合稳定型投资者,最大回撤极小,缺点是交易次数少,很长时间无交易。
0.1): urt_diff_rb1801 = ts.adfuller(np.diff(np.array(series01)), 1)[1] urt_diff_rb1805 = ts.adfuller(np.diff(np.array(series02), 1))[1] # 同时差分平稳进行OLS回归的残差平稳检验 if urt_diff_rb1801 < 0.1 and urt_diff_rb1805 < 0.1: matrix = np.vstack([series02, np.ones(len(series02))]).T beta, c = np.linalg.lstsq(matrix, series01)[0] resid = series01 ‐ beta * series02 ‐ c if ts.adfuller(np.array(resid), 1)[1] > 0.1: result = 0.0 else: result = 1.0 return beta, c, resid, result
那么 , 之间存在协整,记为:


如果
,那么:

有:
意味着回归方程
有意义,因为这时 惟一存在。同时,时间序列 , 在时间上的实际变动与长期均衡轨道的偏差 是收敛的。就是说,即使在某一时点上, , 的运动方向相互背离,当它们之间存在的长期规律或内在 力量迫使它们趋向一致。即 服从均值为0,方差为1的正态分布。因而判定 和 之间存在长期均衡关 系。
这样,数学期望和方差这些参数也不随时间和位置变化。平稳在理论上有严平稳和宽平稳两种,在实际应
用上宽平稳使用较多。宽平稳的数学定义为:对于时间序列 ,若对任意的
,满足:
则称时间序列 是宽平稳的。
平稳性(stationarity)是一个序列在时间推移中保持稳定不变的性质,或许您对于上图的“价差平 稳”不认可,我们将价差做了一阶差分,可以看出,它始终是围绕着一个长期均值(0)在波动。
symbols
需要设置订阅的标的代码。
frequency 需设置订阅数据的周期级别,这里设置 1d 表示以一天为周期。
count 需要设置获取的bar的数量
数据获取
data_rb = context.data(symbol=symbol, frequency='1d', count=31, fields='close')
策略回测分析
回测报告
分析
我们选取了2017年7月至2017年10月作为回测周期,“RB1801”与“RB1805”作为标的合约,价差均值 周期设为30,可以看出:
胜率(具有盈利的平仓次数与总平仓次数之比)达到了50%。
卡玛比率(年化收益率与历史最大回撤之比)是使用最大回撤率来衡量风险。采用最大回撤率来衡量 风险,关注的是最极端的情况。卡玛比率越高表示策略承受每单位最大损失获得的报酬越高。在这里 卡玛比率超过了16.02。 夏普比率(年化收益率与波动率之比)超过2.76,也即承受1单位的风险,会有超过2.5个单位的收益 回报
DF(Dickey-Fuller)检验
考虑时间序列 ,有一阶自回归:
其中, 为代估参数, 为白噪声。
如果
,则Y_t为随机游走过程;如果
提出检验 检验。称DF检验,其回归方程为:
,则 为0阶平稳过程。基于此,1979年迪基和富勒
其中, 为待估参数, 具体做法是用最小二乘法求出上式中的 ,并检验其负性:


如果接受 ,意味着

。如果拒绝 ,接受 ,则
ADF(Augmented Dickey-Fuller)检验
如果 存在自回归,考虑截距 ,趋势项 ,则有ADF检验方程:
为什么需要检验协整性?
如果我们不检验而求得 , 之间的某种关系,如
。由于这种关系本身可能不存在,
得到这样的关系纯属偶然。因而用此关系式所得到的分析,判断和预测结果会不真实乃至荒谬。
def cointegration_test(series01, series02): urt_rb1801 = ts.adfuller(np.array(series01), 1)[1] urt_rb1805 = ts.adfuller(np.array(series02), 1)[1] print (ts.adfuller(np.array(series01), 1)) # 同时平稳或不平稳则差分再次检验 if (urt_rb1801 > 0.1 and urt_rb1805 > 0.1) or (urt_rb1801 < 0.1 and urt_rb1805 <
什么是整性?
如果某一非平稳序列 能够经过 次差分后变成平稳序列,就称该序列为 阶整性,也成为单整,记为 。
什么是协整性?
协整性是指若两个或多个非平稳的变量序列,其某个线性组合后的序列呈平稳性。
假设两个非平稳时间序列 , ,且有

使得:
。如果存在某一参数向量

其中, 为正整数,
为协整向量, 为协整系数。
怎样检验协整性?
本策略采用“Engle-Granger两步协整检验法”,
Engle-Granger两步协整检验法用普通最小二乘法估计这些变量之间的平稳关系系数,然后用单位根 检验来检验残差,如果序列是平稳的,则不存在单位根, 否则就会存在单位根。ADF检验的原假设是存在 单位根,因此如果得到的统计量显著小于3个置信度(1%,5%,10%)的临界统计值时,说明是拒绝原假 设的。
相关文档
最新文档