121 lines
14 KiB
Markdown
121 lines
14 KiB
Markdown
# 基于BTC 4h数据的时间序列因子模型实操流程(因子挖掘→检验→回测→信号生成)
|
||
结合《ssrn.3255748.pdf》中时间序列(TS)因子模型的核心逻辑,以及高维高频金融数据建模的前沿方法(如投影主成分分析P-PCA),以下为针对BTC 4h数据的完整实操流程,包含每一步的理论原理、操作细节及论文引用依据。
|
||
|
||
|
||
## 一、数据准备与预处理(基础步骤,确保数据质量)
|
||
### 1. 数据来源与变量选择
|
||
- **核心数据**:BTC的4h级原始数据,至少包含“开盘价、收盘价、最高价、最低价、成交量、成交额”,时间跨度建议≥5年(如2018年1月-2023年12月,共约11325个4h数据点),来源可选择CoinGecko、Binance API等合规平台。
|
||
- **扩展变量**:基于原始数据计算技术指标变量(作为因子候选),参考《ssrn.3255748.pdf》中“资产特征驱动因子”的逻辑(),具体包括:
|
||
- 收益类:4h收益率(\(R_t = \ln(Close_t/Close_{t-1})\))、滚动12期(48h)收益率标准差(波动率)、滚动6期(24h)收益率偏度(尾部风险);
|
||
- 趋势类:EMA(指数移动平均,如4期/8期/16期)、MACD(异同移动平均线)、RSI(相对强弱指数,14期);
|
||
- 量能类:成交量滚动6期均值、成交额/成交量比值(量价配合度);
|
||
- 波动类:ATR(平均真实波幅,14期)、高低价差率(\((High_t-Low_t)/Close_{t-1}\))。
|
||
|
||
### 2. 数据预处理(消除噪声与异常值)
|
||
- **异常值处理**:采用“3σ法则”识别异常收益率(如单日涨跌幅>20%的4h数据),用前后相邻数据的线性插值替换,避免极端值对因子估计的干扰——这与中山大学研究中“抑制高频特异性波动”的思路一致(摘要1、5),该研究指出高频数据中的异常波动会扭曲因子估计,需通过预处理降低噪声。
|
||
- **缺失值填补**:若存在数据缺失(如交易所维护导致的断更),采用“前向填充+滚动均值平滑”(如用前3期均值填补),确保时间序列的连续性。
|
||
- **标准化**:对所有候选因子变量进行“Z-score标准化”(\(X_{std}=(X-\mu)/\sigma\),其中\(\mu\)、\(\sigma\)为滚动30期(120h)的均值和标准差),避免量纲差异影响因子权重——参考《ssrn.3255748.pdf》中CS因子“标准化匹配TS因子标准差”的操作逻辑()。
|
||
|
||
|
||
## 二、因子挖掘:基于时间序列逻辑构建候选因子
|
||
### 1. 因子构建原则(贴合TS因子“预设规则、可解释”的核心特性)
|
||
根据《ssrn.3255748.pdf》中TS因子的构建逻辑(),BTC 4h因子需满足“基于固定规则、反映特定风险/收益驱动逻辑”,避免CS因子“月度优化、非可投资”的缺陷()。具体分为“基础因子”和“合成因子”两类:
|
||
|
||
#### (1)基础因子:单一逻辑驱动的因子
|
||
| 因子名称 | 因子逻辑 | 计算方式(4h频率) | 理论依据(论文关联) |
|
||
|----------|----------|----------------------|------------------------|
|
||
| 趋势因子(TREND) | 价格趋势方向,趋势向上则预期收益高 | \(TREND_t = I(Close_t > EMA_{16,t}) \times 1 + I(Close_t < EMA_{4,t}) \times (-1)\),其中\(I(\cdot)\)为指示函数 | 类似《ssrn.3255748.pdf》中“特征驱动收益”逻辑(),用EMA交叉反映趋势特征 |
|
||
| 波动率因子(VOL) | 波动率越高,风险溢价越高 | \(VOL_t = \text{滚动12期收益率标准差}\) | 对应中山大学研究中“高频波动捕捉风险”的思路(摘要1、5),波动率是高频金融数据的核心风险特征 |
|
||
| 量价因子(VOLP) | 量价配合度,成交量放大且价格上涨则动量强 | \(VOLP_t = I(Volume_t > \text{滚动6期Volume均值}) \times R_t\) | 参考《ssrn.3255748.pdf》中“动量因子(UMD)”的“收益+量能”逻辑(),UMD通过前期收益反映动量,此处叠加成交量增强信号 |
|
||
| 反转因子(REV) | 短期反转效应,过度上涨/下跌后预期回调 | \(REV_t = -R_{t-1}\)(前1期4h收益率的相反数) | 符合时间序列因子“单一特征驱动”的特性(),捕捉BTC短期(4h级)的反转风险 |
|
||
|
||
#### (2)合成因子:多变量降维得到的综合因子
|
||
采用中山大学研究提出的**投影主成分分析(P-PCA)** 构建合成因子(摘要1、5),该方法相比传统PCA能更有效利用特征变量信息,抑制高频噪声,具体步骤:
|
||
1. **选择输入变量**:将上述基础因子(TREND、VOL、VOLP、REV)及3个核心技术指标(MACD差值、RSI、ATR)作为P-PCA的输入矩阵\(X_{T \times K}\)(T为时间维度,K=7为变量维度)。
|
||
2. **投影步骤**:根据P-PCA理论(摘要1、5),先将输入变量投影到“可观测特征空间”(此处选择“滚动12期收益率”作为工具变量,反映BTC收益的长期动态),得到投影矩阵\(P\);
|
||
3. **提取主成分**:对投影后的矩阵\(P \times X\)进行PCA,取前2个主成分(累计方差解释率需≥80%)作为合成因子:
|
||
- 合成因子1(PC1):命名为“趋势-量能因子”,权重集中在TREND、VOLP,反映趋势与量能的协同效应;
|
||
- 合成因子2(PC2):命名为“风险因子”,权重集中在VOL、ATR,反映4h级的风险暴露程度。
|
||
4. **因子方向校准**:通过“因子与未来1期收益率的相关性”调整方向(如PC1与\(R_{t+1}\)正相关则保留原方向,负相关则取反),确保因子值越高,预期收益越高——贴合《ssrn.3255748.pdf》中“因子收益差为正”的TS因子设计逻辑(如HML=高BM收益-低BM收益)()。
|
||
|
||
|
||
## 三、因子检验:验证因子的有效性与稳健性
|
||
### 1. 因子收益检验(核心:因子能否区分未来收益)
|
||
参考《ssrn.3255748.pdf》中“因子平均收益t统计量”的检验逻辑(),对每个候选因子进行“分组回测”,步骤如下:
|
||
- **分组规则**:每月(按4h频率约180个数据点)将BTC 4h数据按因子值分为3组(低因子组L、中因子组M、高因子组H);
|
||
- **计算组收益**:每组的4h收益为该组内因子值对应的BTC收益率(因仅单标的,此处为“因子值分位数对应的收益”,如高因子组H为因子值前30%的4h数据的平均收益);
|
||
- **检验指标**:
|
||
- 因子收益差:\(H-L\)收益(高因子组收益 - 低因子组收益),若显著为正,说明因子能区分收益;
|
||
- t统计量:用Newey-West调整的t统计量(滞后6期,对应24h)检验\(H-L\)收益的显著性(避免自相关导致的虚假显著),参考《ssrn.3255748.pdf》中“因子平均收益t统计量”的计算方式()。
|
||
|
||
**示例结果要求**:如趋势因子(TREND)的\(H-L\)收益为0.35%/4h(年化约84%),t统计量=2.89(>2,显著),说明该因子有效。
|
||
|
||
### 2. 因子跨度回归(检验因子的边际解释力)
|
||
根据《ssrn.3255748.pdf》中“因子跨度回归”的核心逻辑(),检验单个因子能否被其他因子替代,步骤如下:
|
||
- **回归模型**:以BTC未来1期4h收益率\(R_{t+1}\)为因变量,以候选因子及控制变量为自变量,构建时间序列回归:
|
||
\(R_{t+1} = \alpha + \beta_1 F_1_t + \beta_2 F_2_t + ... + \beta_k F_k_t + e_{t+1}\)
|
||
其中\(F_1,F_2,...F_k\)为候选因子,\(\alpha\)为定价误差,\(\beta_i\)为因子载荷。
|
||
- **检验标准**:若某因子的\(\beta_i\)显著不为0(t统计量>2),且加入该因子后模型\(R^2\)提升≥5%,说明该因子具有“不可替代的边际解释力”,未被其他因子吸收——类似《ssrn.3255748.pdf》中TS因子“市场、规模因子边际信息显著”的结论()。
|
||
|
||
**示例**:若加入合成因子PC1后,模型\(R^2\)从0.12提升至0.18,PC1的\(\beta=0.25\)(t=3.12),说明PC1具有独立解释力。
|
||
|
||
### 3. 稳健性检验(排除偶然因素)
|
||
- **样本外检验**:将数据分为“训练集(2018-2021年)”和“样本外集(2022-2023年)”,若因子在样本外的\(H-L\)收益t统计量仍>1.8(接近显著),说明因子稳健——参考《ssrn.3255748.pdf》中“跨样本验证因子表现”的逻辑()。
|
||
- **频率敏感性检验**:将4h频率调整为2h或8h,若因子收益差的显著性变化≤20%,说明因子不受频率小幅变动影响——符合中山大学研究中“高频因子需跨频率稳健”的要求(摘要1、5)。
|
||
|
||
|
||
## 四、因子组合:构建多因子模型(贴合TS模型“常数载荷、可投资”特性)
|
||
### 1. 因子权重确定(避免CS模型“月度优化”的复杂性)
|
||
根据《ssrn.3255748.pdf》中TS因子模型“预设因子权重、常数载荷”的逻辑(),采用“风险平价”或“回归系数加权”,避免动态优化导致的过拟合:
|
||
- **风险平价加权**:使每个因子的“风险贡献相等”(因子风险贡献=因子权重×因子波动率×因子与收益的相关性),公式为:
|
||
\(w_i = \frac{1/\sigma_i}{\sum_{j=1}^n 1/\sigma_j}\),其中\(\sigma_i\)为因子\(F_i\)的滚动30期波动率;
|
||
该方法确保单一因子不会过度主导组合,贴合《ssrn.3255748.pdf》中“多因子分散风险”的思路(如FF五因子模型的等权重逻辑)()。
|
||
- **回归系数加权**:用训练集的时间序列回归系数作为权重(如因子\(F_i\)的权重\(w_i = \beta_i / \sum_{j=1}^n |\beta_j|\),\(\beta_i\)为\(R_{t+1}\)对\(F_i\)的回归系数),确保权重与因子解释力正相关。
|
||
|
||
### 2. 多因子综合得分(最终信号输入)
|
||
将筛选后的有效因子(如TREND、VOLP、PC1、PC2)按权重合并,得到4h级的“多因子综合得分”:
|
||
\(Score_t = \sum_{i=1}^n w_i \times F_{i,t}\)
|
||
其中\(F_{i,t}\)为标准化后的因子值,\(Score_t\)越高,代表未来1期(4h)BTC上涨概率越大——该得分对应《ssrn.3255748.pdf》中“因子组合预测收益”的逻辑(),通过多因子协同提升预测准确性。
|
||
|
||
|
||
## 五、回测:验证因子模型的实战有效性
|
||
### 1. 回测框架设计(贴合TS因子“可投资”的核心优势)
|
||
参考《ssrn.3255748.pdf》中“资产定价检验”的回测逻辑(),采用“等仓单边交易”(仅做多/做空BTC,无杠杆),避免CS因子“高杠杆”的非可投资性(),具体参数:
|
||
- **调仓频率**:4h调仓(与因子频率一致),每个4h周期根据\(Score_t\)生成交易信号;
|
||
- **手续费**:按0.1%/次(现货交易手续费,参考Binance等平台),滑点按0.05%/次(4h级BTC流动性充足,滑点较低);
|
||
- **回测区间**:2019年1月-2023年12月(共约4680个4h数据点,包含牛熊周期,检验模型适应性)。
|
||
|
||
### 2. 交易信号规则(基于多因子得分的阈值策略)
|
||
根据《ssrn.3255748.pdf》中“因子值与收益正相关”的结论(),设定阈值生成买卖信号:
|
||
- **买入信号**:当\(Score_t > 0.8\sigma_{Score}\)(\(\sigma_{Score}\)为Score的滚动30期标准差),且前1期无持仓时,买入BTC(满仓);
|
||
- **卖出信号**:当\(Score_t < -0.8\sigma_{Score}\),且前1期有持仓时,卖出BTC(空仓);
|
||
- **观望信号**:当\(Score_t\)在\([-0.8\sigma_{Score}, 0.8\sigma_{Score}]\)之间,维持原有持仓(避免频繁交易)。
|
||
|
||
### 3. 回测指标与评估(参考论文中的资产定价检验指标)
|
||
采用《ssrn.3255748.pdf》中“平均收益、夏普比率、最大回撤”等核心指标(),同时加入高频数据特有的“胜率、盈亏比”,具体如下:
|
||
| 回测指标 | 计算方式 | 合格标准(BTC 4h策略) |
|
||
|----------|----------|--------------------------|
|
||
| 年化收益率 | \((1+\text{累计收益})^{252×6/24} - 1\)(假设年交易252天,每天6个4h周期) | >30%(跑赢BTC现货年化收益) |
|
||
| 夏普比率 | 年化收益率 / 年化波动率 | >1.5(风险调整收益优秀) |
|
||
| 最大回撤 | 回测期间最大亏损幅度 | <50%(控制极端风险) |
|
||
| 胜率 | 盈利交易次数 / 总交易次数 | >55%(信号准确性高) |
|
||
|
||
**示例结果**:若回测得到年化收益45%、夏普比率1.8、最大回撤42%、胜率58%,说明模型有效——类似《ssrn.3255748.pdf》中“TS因子模型解释力达标”的实证结论()。
|
||
|
||
|
||
## 六、信号优化与上线:动态适应市场变化
|
||
### 1. 因子载荷动态调整(参考“时变载荷”的改进思路)
|
||
虽然《ssrn.3255748.pdf》中TS模型默认“常数载荷”,但中山大学研究指出“因子载荷时变能提升预测准确性”(摘要1、5),因此可引入“滚动窗口调整权重”:
|
||
- 每30天(180个4h周期)重新估计因子权重(如风险平价权重的波动率用最新30期数据),避免因子失效(如BTC在牛熊周期中,波动率因子的重要性会变化);
|
||
- 若某因子连续60个4h周期(10天)的\(H-L\)收益t统计量<1.0,暂时剔除该因子,待其恢复显著性后重新加入——贴合《ssrn.3255748.pdf》中“因子边际信息动态检验”的逻辑()。
|
||
|
||
### 2. 实盘上线与监控
|
||
- **信号输出**:每4h生成“Score_t”及对应买卖信号,通过API对接交易所(如Binance Spot API)实现自动交易;
|
||
- **风险监控**:实时监控“因子有效性指标”(如当前因子的\(H-L\)收益t统计量、模型\(R^2\)),若指标连续3天不达标(如t统计量<1.2),暂停自动交易,人工排查原因(如市场结构变化导致因子失效);
|
||
- **日志记录**:保存每4h的因子值、信号、交易结果,每月进行回测复盘,对比实盘与回测的差异,优化因子参数(如调整EMA周期、阈值系数)。
|
||
|
||
|
||
## 七、关键论文引用与理论支撑总结
|
||
1. 《ssrn.3255748.pdf》(Fama & French 2018):核心支撑TS因子“预设规则、可投资、常数斜率回归检验”的逻辑,指导因子构建、检验、回测的整体框架(、、);
|
||
2. 中山大学《高维、高频金融数据的因子建模》(摘要1、5):提供P-PCA合成因子、高频噪声处理、时变载荷调整的方法,解决BTC 4h高频数据的因子估计问题;
|
||
3. 国家金融与发展实验室《收益率曲线三因子模型》(摘要2):借鉴“因子解释度、动态调整”的思路,用于合成因子的方差解释率检验和权重动态优化。 |