习题 1: 测试人工示例#
习题 1a: 协整检验 I#
判断以下两个人工序列A和B是否协整,使用coint()函数并选择合理的置信度水平。
code
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习题 1b: 协整检验 II#
判断以下两个人工序列C和D是否协整,使用coint()函数并选择合理的置信度水平。
code
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习题 2: 测试真实案例#
习题 2a: 真实协整检验 I#
使用2015年数据,判断期货品种CN和SB是否协整。
code
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']习题 2b: 真实协整检验 II#
使用2015年数据,判断期货品种CL和HO是否协整。
code
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']习题 3: 样本外验证#
习题 3a: 计算价差#
使用2015年数据构建线性回归模型,找到使CL和HO价差平稳的线性组合系数。
code
import statsmodels.api as sm
# 使用前需确保已获取cl_price和ho_price数据习题 3b: 测试系数有效性#
使用2016年上半年数据验证系数有效性,并检验价差平稳性。
code
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']附加题: 赫斯特指数#
计算价差序列的赫斯特指数,并实现时间维度上的持续监控。
code
# 需要自行实现或寻找现成的赫斯特指数计算库
# 参考链接:
# https://en.wikipedia.org/wiki/Hurst_exponent
# 原 Quantopian 参考链接已失效