配对交易(一):期货品种相关性研究

配对交易定义

配对交易是一种基于数学分析交易策略,其盈利模式是通过两只证券的差价(spread)来获取,理论上可以做到和大盘走势完全无关。但其本质上是一种统计套利,也具有一定的风险性。

基本原理

配对交易的基本原理是,两个相似期货品种,其价格走势虽然在中途会有所偏离,但是最终都会趋于一致。配对交易就是利用这种价格偏离获取收益:当差价高于均值时,卖空涨得多的品种,差价小于均值时,买入涨得少的品种。具有这种关系的两个品种,在数学上称作协整性(cointegration),即它们之间的差价会围绕某一个均值来回摆动,这是配对交易策略可以盈利的基础。通俗点来讲,如果两个品种或者变量之间具有强协整性,那么不论它们中途怎么走的,它们的目的地总是一样的。

相关性分析

只有两个期货品种具有一定的相关性,那么对这两个品种做配对交易才有意义。那么首先就需要对各个品种做一个相关性分析。

那么要如何用Python对当前市场上所有的期货品种进行相关性分析呢?首先第一步,需要获取市场上所有的主力连续合约代码,在此之前当然还是我们熟悉的各种导入三方库。

import time
import numpy as np
import pandas as pd
%matplotlib inline
import seaborn
import matplotlib.pyplot as plt
import warnings; warnings.simplefilter('ignore') #忽略可能会出现的警告信息,警告并不是错误,可以忽略;
import akshare as ak

三方库导入完毕后,那我们开始用AKShare三方库获取当前期货市场上所有的期货连续合约代码。并整理数据。

df=ak.futures_display_main_sina()
df.set_index('symbol',inplace=True)

利用遍历循环批量获取期货连续合约的历史行情数据:

log=pd.DataFrame()
for contract_code in df.index[:10]:  # 大批量数据调取会报错,只对列表前10个期货品种进行分析
    time.sleep(1)  # 尽量控制调取数据频率
    contract_name=df.loc[contract_code]['name']
    data=ak.futures_main_sina(symbol=contract_code)
    data['日期']=pd.to_datetime(data['日期'])
    data.set_index('日期',inplace=True)
    data=data[['收盘价']]
    data.rename(columns={'收盘价':contract_name},inplace=True)
    log[contract_name]=data[contract_name]

将获取的行情数据进行处理,计算每日涨跌幅,并由此计算期货品种间的相关性:

data=log.copy()  # 复制数据,保留原始数据以便后续对原始数据进行二次分析
returns=data/data.shift(1)-1
corrs=returns.corr()  # 计算相关性

将各个品种的期货相关性以热力图的形式呈现出来:

import seaborn
fig = plt.figure(figsize=(18,18))
seaborn.heatmap(corrs)

颜色越浅相关性越高,可以看出在当前的品种中,塑料和聚丙烯之间的相关性较高。

以上便完成了对期货品种间的相关性分析。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anddyyhuang

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值