配对交易是指八十年代中期华尔街著名投行Morgan Stanley的数量交易员Nunzio Tartaglia成立的一个数量分析团队提出的一种市场中性投资策略。
在实际操作中,其执行过程可以简单地描述为:投资者首先选择相互匹配的两个资产,当配对资产价格差异增加的时候,做多价格偏低的资产,同时做空价格偏高的资产,而当价格差异减小的时候,则结束头寸,完成交易;同时,为了控制风险,当价差进一步扩大时,需要在适当的止损点结束头寸。
所以,想开发一个配对交易的策略,核心有两个步骤:
1.找到待交易的标的。
比如说两个走势非常类似的股票或者其他证券。
2.对两者的价差建模。
假设是两者的价差会在一个稳定的区间波动(均值回归)。
————————————————
在以往的研究中,配对交易的标的的筛选方法有很多种,归纳起来大致有这两种:
-
最小化偏差平方和法则(最小距离法)
-
协整理论方法
今天,我们以ETF为例。
首先获取深交所的所有交易标的,剔除掉在今年才上市和已经退市的,筛选出深交所的所有ETF基金,然后通过相关性检验取出相关系数最强的一对cp进行配对交易。
具体执行如下:
1.先获取深交所的所有交易标的。
import numpy as np
import pandas as pd
from gm.api import *
import matplotlib.pyplot as plt
set_token('xxxxxxxxxxxx')
#获取深圳交易所全部标的
data1=get_instruments(exchanges='SZSE',df=True)
#剔除掉在今年才上市的标的
data1=data1[data1['listed_date']<'2020-12-30']
#剔除掉今天之前退市的标的
data1=data1[data1['delisted_date']>'2021-08-30']
data1.index=range(len(data1))
data1
2.取出ETF基金。
b=pd.DataFrame()
symbol=[]
for i in range(len(data1)):
if 'ETF' in data1['sec_name'][i]:
print(data1['sec_name'][i])
symbol.append(data1['symbol'