AI期货回测策略
一、 回顾
在之前写的内侧记录里 AI助手多样化研究分享-多因子工作流的构建+回测,写了多因子策略作用于股票,想现在放到期货上测试一下效果,动手改起来
二、多因子期货回测工作流
2.1 三个因子:
-
StopLossBreakMA5Factor 五日风险控制因子
-
RANK((OPEN / DELAY(OPEN,5) - 1) * (VOLUME / MA(VOLUME,20))) 价格动量”和“成交量确认”的单一合成因子
-
TS_ZSCORE(FUTURE_RETURNS(CLOSE,5),20) 计算一个未来收益的标准化分数
具体实现可在上文链接中可查
2.2 因子分析结果
AI分析:
-
整体来看,这个期货多因子组合的因子方向是负向因子(高因子值→未来表现差),预测能力处于中上水平,评级偏A- / B+。 从截面IC看,IC_mean ≈ -0.08、Rank_IC ≈ -0.07,绝对值明显高于0.05,说明因子对未来收益有较明确的区分能力;IC_std约0.19,IC_IR 约 -0.40,说明信号虽有效但波动不小,稳定性一般;IR ≈ -2.29,结合“P(IC<-0.02)≈54%,P(IC>0.02)≈32%”,可以判断:多数时期因子方向正确(负IC占比更高),但存在一定反向区间。
-
从分组回测看,“多空组合1”与“多空组合2”都能取得正的超额年化收益,例如: 多空组合1:年化收益约 15.6%,超额年化 ≈ 15.6%,最大回撤约 7.7%,超额最大回撤≈4.9%,夏普≈1.36,信息比率≈1.58,月度胜率、超额月度胜率约 66.7%,整体属于收益与回撤比较均衡、路径较平稳的一档。 多空组合2:年化收益≈6.2%,超额年化≈6.2%,最大回撤≈3.7%,夏普≈0.59,信息比率≈0.99,收益显著下降但回撤也进一步收敛,说明低杠杆/保守组合仍有正超额,但性价比不如组合1。
-
优点梳理:
- 解释力较强:|IC_mean|、|Rank_IC|均明显高于0.05,具备较好的截面预判能力。
- 方向性清晰:IC为稳定的负值区间,负向因子逻辑(高风险/弱势)与未来负收益相匹配。
- 多空组合盈利稳定:多空1在15%+年化、<8%最大回撤下,夏普>1.3、信息比率>1.5,风险调整收益不错。
- 分组单调性尚可:从组合1到组合2,收益和风险都同向收敛,说明因子排序大致合理。
- 不足与风险:
- IC稳定性一般:IC_std偏大、IC_IR绝对值在0.4附近,说明按单期看信号噪音不低,需要通过分组/持有期平滑。
- 反向区间存在:P(IC>0.02)仍有三成以上,某些阶段可能出现因子失效甚至反转,需要做好风控和参数再检验。
- 组合2性价比一般:收益明显缩水而夏普未显著提升,说明在当前参数下,向更保守组合平移并没有带来更高的风险回报比。
- 注意事项与改进建议:
- 当前设定为负向因子 + 5日调仓 + 5组分组,建议在同一数据上进一步测试不同调仓周期(如3/10/20日)与分组数量(5→7或10组),寻找IC衰减最慢、分组单调性最好的组合。
- 建议对IC时间序列做滚动窗口分析,识别风格/行情切换时因子是否阶段性失效,并在实盘中加入简单的“IC过滤”(如短期IC持续为正时降低权重)。 当前为单一因子+线性权重合成,可以尝试: 对现有因子做非线性变换或截断(如winsorize、非线性打分)以抑制极端值; 与其他风格因子(动量/期限结构/流动性等)做多因子组合,降低单一因子波动。
- 策略端建议将该因子作为方向过滤/择时维度使用,而不是孤立的建仓依据,例如只在因子处于最优两组时才放大仓位,其余时间降杠杆或空仓,以提升整体夏普与回撤控制。
- 如果你需要,我可以进一步: 拆解各分组(1~5组)的年化收益/最大回撤单调性; 根据你希望的目标(如更高夏普或更低回撤)给出具体的“调仓周期+分组数+因子方向”参数组合建议。
三、回测结果
AI分析:
-
整体来看,这个期货多空分组策略在当前回测区间表现较差,属于明显“需改进”的等级。
-
综合评价与评级
年化收益(back_profit_year)约为 -15.5%,而基准年化收益约 22.4%,明显显著跑输基准,超额回报为强负值。
夏普率约为 -4.35、索提诺约 -3.69,远低于 0.5,属于 D 档表现(风险调整收益极差)。
最大回撤约 -12.0%,从绝对数值看并不算极端,但在负收益和高波动的前提下,回撤并不“物有所值”。
alpha 为 -0.18 左右,beta 约 -0.06,说明策略对市场整体方向暴露不大,但在扣除基准后仍持续产生负的超额收益。信息比率约 -2.44、跟踪误差约 15.6%,意味着在对基准进行主动偏离的同时,绝大多数偏离贡献的是负的主动收益。
综合以上指标:该策略风险控制尚可、杠杆不高,但选品/择时逻辑在当前样本期内是“系统性失效”的,评级为 D(差)。 -
表现特征与可能原因
- 收益与波动匹配度:波动率约 4.5%,并不算高,但对应的是较大幅度的负年化收益,因此单位风险承受的损失很重。
- 下行风险:downside_risk ~0.103,结合负的索提诺可见下行波动在整体波动中占比很高,策略亏损日占比较多。
- 相对基准:基准为上证指数。当前策略是多空期货组合,理论上与股指并非高度同质,但仍将其显著跑输,这说明策略本身缺乏“独立阿尔法”,在当前市场环境中更像是“噪声头寸”。
优势与问题小结
- 优势:
- 最大回撤约 -12%,控制在可接受区间,说明仓位管理和杠杆使用相对克制。
- beta 接近 0,整体不与单一股指强相关,有潜力作为多资产组合中的独立模块(前提是阿尔法改善)。
- 主要问题:
- 年化收益显著为负,且夏普极低,说明策略结构性亏损。
- 信息比率大幅为负,主动风格大多在“错误方向”上放大。
- 下行波动占比高,回撤修复能力弱,缺乏明确的风控止损逻辑或仓位动态调整机制。
-
改进方向建议(结合当前多因子期货框架)
你可以优先从以下几个维度做下一轮迭代回测:
(1) 因子与多空结构检查多因子合成后的方向是否与“低因子多、高因子空”的设定一致,尤其是负向因子权重是否过高,导致策略整体偏空; 对各单因子做独立因子回测与分组检验,剔除或降权长期 IC 为负、单调性差的因子; 尝试减小权重过大的单一因子,提升组合因子多样性,避免“押单因子”。(2) 调仓频率与分组方式
当前因子分析节点设置为 5 日调仓、5 组,多空结构相对激进,可以尝试拉长调仓周期(如 10D、20D)以降低短期噪音; 在FactorFutureAnalysis中增加对因子方向的重新验证,若发现高组长期跑赢低组则应调整“因子方向”参数(0/1)并重新合成。(3) 仓位与风险预算
目前单品种风险权重为 2%,可以考虑降低到 0.5%–1% 区间,在确认策略有正阿尔法前减少资金暴露; 尝试加入基于回撤或波动的动态降仓规则,例如近20日回撤超过8%时将总风险暴露削减 50%。(4) 高层测试思路
先用更短的样本期(如 3–6 个月)和更少品种做快速迭代,验证因子方向和组合逻辑是否能在局部区间产生正超额,再扩展到全市场与长区间; 将当前期货多空策略与更简单的“多头趋势策略”或“基差策略”做对比,确认当前多因子框架是否有必要的复杂度
显然效果不甚理想,可以做多处的修改,多空结果调整,调仓日期,还有组合数等来测试
四、连接仿真交易
4.1 账号管理
在这个模块建立虚拟账号
4.2 开启仿真交易
选择账号和策略点击开启
4.3 查看
在此处可以查看仿真运行的情况
五、问题
5.1 问题1
这个问题大大们可忽略, 是期货因子分析的时间选择周期问题。把测试时间调到2025.10月份之前可以,L_F888.DCE 10月过后的数据暂时有些问题。
5.2 问题2
一直提示开仓失败 不知道为啥
已把json放到反馈里。