文章转载自公众号 人工智能量化实验室 , 作者 Frankie的账号
一、交易对象选取
我们以商品期货市场的螺纹钢品种的跨期套利为例,选取两组不同到期月份的同种商品期货合约作为交易对象。
相关性检验
通过新浪财经的期货数据接口爬取螺纹钢rb1903到rb1908的六组数据,先看一下它们的走势:
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport urllib.request as urllib2import jsondef findPairs(): ids = ['rb1903', 'rb1904', 'rb1905', 'rb1906', 'rb1907', 'rb1908'] url_5m = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=' result = [] for id in ids: url = url_5m + id req = urllib2.Request(url) rsp = urllib2.urlopen(req) res = rsp.read() res_json = json.loads(res) result.append(res_json) close_result = [] for instrument in result: oneDay_list = [] for oneDay in instrument: oneDay_list.append(float(oneDay[-2])) close_result.append(np.array(oneDay_list)) close_result = np.array(close_result) close_result = close_result.T df = pd.DataFrame(data=close_result, columns=ids) df.plot() plt.show()
从价格的走势图中,可以看出 rb1903 和 rb1904 以及 rb1908 和 rb1907 的走势上存在很强的相关性,下面画出它们之间的相关矩阵。sns.heatmap(df.corr(), annot=True, square=True) plt.show()