判断以下两个人工序列A和B是否协整,使用coint()函数并选择合理的置信度水平。
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import coint
A_returns = np.random.normal(0, 1, 100)
A = pd.Series(np.cumsum(A_returns), name='A') + 50
some_noise = np.random.exponential(1, 100)
B = A - 7 + some_noise
判断以下两个人工序列C和D是否协整,使用coint()函数并选择合理的置信度水平。
C_returns = np.random.normal(1, 1, 100)
C = pd.Series(np.cumsum(C_returns), name='C') + 100
D_returns = np.random.normal(2, 1, 100)
D = pd.Series(np.cumsum(D_returns), name='D') + 100
使用2015年数据,判断期货品种CN和SB是否协整。
import yfinance as yf
cn_price = yf.download('CN=F', start='2015-01-01', end='2016-01-01')['Close']
sb_price = yf.download('SB=F', start='2015-01-01', end='2016-01-01')['Close']
使用2015年数据,判断期货品种CL和HO是否协整。
cl_price = yf.download('CL=F', start='2015-01-01', end='2016-01-01')['Close']
ho_price = yf.download('HO=F', start='2015-01-01', end='2016-01-01')['Close']
使用2015年数据构建线性回归模型,找到使CL和HO价差平稳的线性组合系数。
import statsmodels.api as sm
# 使用前需确保已获取cl_price和ho_price数据
使用2016年上半年数据验证系数有效性,并检验价差平稳性。
cl_out = yf.download('CL=F', start='2016-01-01', end='2016-07-01')['Close']
ho_out = yf.download('HO=F', start='2016-01-01', end='2016-07-01')['Close']
计算价差序列的赫斯特指数,并实现时间维度上的持续监控。
# 需要自行实现或寻找现成的赫斯特指数计算库
# 参考链接:
# https://en.wikipedia.org/wiki/Hurst_exponent
# https://www.quantopian.com/posts/pair-trade-with-cointegration-and-mean-reversion-tests