etf机器学习
由wtyu创建,最终由wtyu 被浏览 7 用户
基础配置
# 核心参数
TRAIN_START = "2016-01-01"
TRAIN_END = "2019-01-01"
TEST_START = "2021-01-01"
TEST_END = "2025-06-02"
# 基础因子
BASE_FEATURES = [
"open", "high", "low", "close", "volume", "amount",
"close / m_lag(close, 5) as mom5",
"m_avg(volume, 5) as mvol5",
"close / open as c2o",
"m_nanstd((close / m_lag(close,1)-1), 5) as volatility5"
]
# label
m_lead(close, 5) / m_lead(open, 1)
# 动态调仓参数
ATR_WINDOW = 14
ATR_RADIO_WINDOW = 20
ATR_DISCRETE_BINS = [0,1, 2, np.inf] # 低/正常/高波动区间
代码:
https://n2nquant.com/codesharev3/49464498-e58d-4625-91d9-bf0759272c5f
\
调优维度及顺序
阶段 | 调整对象 | 目标 | 测试变量 |
---|---|---|---|
1 | 模型架构 | 优化预测性能 | RF/XGBoost/LightGBM |
2 | 标签设计 | 改进信号质量 | 5日/10日收益率,涨跌分类 |
3 | 因子组合 | 增强特征有效性 | 技术指标+基本面因子 |
4 | ATR离散化参数 | 提升仓位控制适应性 | 窗口大小/分箱阈值 |
调优过程记录
阶段1:模型架构对比 (基准因子+5日收益率标签)
# 测试模型
MODELS = {
"RandomForest": RandomForestRegressor(n_estimators=10, random_state=42),
"XGBoost": XGBRegressor(objective='reg:squarederror', 'eval_metric': 'rmse', 'max_depth': 5, 'eta': 0.3, 'n_estimators': 200, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1 ),
"LightGBM": LGBMRegressor(num_leaves=31)
}
模型 | 年化收益率 | 夏普比率 | 胜率 | 盈亏比 | 最大回撤 | 代码 |
---|---|---|---|---|---|---|
RandomForest | 16.81% | 0.66 | 69.23% | 3.82 | -12.22% | 代码 |
XGBoost | 14.98% | 0.71 | 85.71% | 30.13 | -6.97% | 代码 |
LightGBM | 8.63% | 0.36 | 68.18% | 2.14 | -26.23% | 代码 |
📌 关键结论:XGBoost在收益风险比和回撤控制上表现最优
阶段2:标签设计方案对比 (XGBoost模型)
# 标签定义方案
LABEL_VARIANTS = {
"LABEL_5D": "m_lead(close, 5) / m_lead(open, 1)", # 原始5日收益
"LABEL_10D": "m_lead(close, 10) / m_lead(open, 1)",
"CLASS_5D": "I((m_lead(close,5)/m_lead(open,1) > 1.02)" # 二元分类(涨超2%)
}
标签类型 | 年化收益率 | 夏普比率 | 胜率 | 盈亏比 | 最大回撤 | 代码 |
---|---|---|---|---|---|---|
5日收益率(回归) | 14.98% | 0.71 | 85.71% | 30.13 | -6.97% | 代码 |
4日收益率(回归) | 8.24% | 0.35 | 100% | 0.0 | 12.22% | 代码 |
5日涨跌分类 | 10.7% | 0.49 | 85.71% | 9.07 | 8.43% | 代码 |
4日涨跌分类 | 18.06% | 0.77 | 100.0% | 0.0 | -6.97% | 代码 |
\
📌 关键结论:4日涨跌分类标签在收益和风险控制上取得最佳平衡
阶段3:因子组合有效性 (XGBoost+分类标签) |
因子组合 | 特征数量 | 年化收益 | 夏普比率 | 代码 |
---|---|---|---|---|
基础因子 | 8 | 18.06% | 0.77 | 基础因子 |
基础+RSI(14) | 9 | 18.32% | 0.79 | RSI |
基础+atr | 9 | 8.73% | 0.56 | atr |
基础+RSI+atr | 10 | 18.32% | 0.79 | RSI + atr |
📌 关键结论:RSI+基础因子组合提升明显
阶段4:ATR参数敏感性测试 |
---|
ATR计算窗口 | 分箱阈值 | 年化收益 | 夏普比率 | 最大回撤 | 代码 | |
---|---|---|---|---|---|---|
(10,15) | [0.7,1.3] | 16.1% | 0.74 | -5.84% | 代码 | |
(14,20) | [0.8,1.2] | 16.46% | 0.7 | -6.97% | 代码 | |
(20,30) | [0.75,1.25] | 5.79% | 0.32 | -4.81% | 代码 | |
(14,20) | [0.85,1.15] | 16.46% | 0.7 | -6.97% | 代码 | |
(14,20) | [0.9,1.1] | 11.3% | 0.65 | -4.81% | 代码 |
📌 关键结论:窄阈值([0.7,1.3])配合(10,15)窗口表现最优
\