期货双均线策略回测实验记录
概述
本文档记录了使用AI生成期货双均线策略并进行回测的完整过程,包括遇到的问题、排查思路和解决方案。
一、策略生成
1.1 初始策略创建
使用AI生成期货双均线策略,一次完成代码编写。
1.2 首次回测结果
回测结果显示资金曲线基本是一条直线,没有发生交易。
二、问题排查
2.1 发现问题:合约到期
查看日志后发现,策略没有交易的原因是合约已到期。
2.2 第一次尝试:修改代码
尝试修改代码以解决合约问题:
- 修改代码逻辑
- 点击应用并保存
结果:重新启动工作流后,结果没有变化。
2.3 第二次尝试:调整回测时间
更改回测时间范围,检查是否是数据缺失导致的问题:
结果:依然是一条直线,没有交易发生。
关键发现:日志显示运行的还是之前的初始代码,说明修改没有生效。
2.4 第三次尝试:动态获取主力合约
让AI修改代码,根据日期动态获取主力合约:
结果:保存代码后重新运行,依然是一条直线。
2.5 第四次尝试:扩大回测时间范围
将时间改回到最近一年进行测试:
结果:仍然没有变化。
2.6 增加日志输出
让AI增加日志输出功能,便于后续排查问题:
发现:日志显示数据不足。
💡 建议:可以增加一个引用日志的功能,这样就不需要手工复制日志内容。
三、问题根因分析
仔细观察后发现,总权益实际上是有变化的,持续在增长,但曲线显示为一条直线。
初始资金设置过大,导致总权益增长的速度相对较慢,在图表上几乎看不出变化,所以曲线才显示为一条直线。
四、解决方案与验证
4.1 调整初始资金
将初始资金调整为10万元,资金曲线变得明显:
效果看起来非常好,需要检查是否存在未来函数的问题。
4.2 多品种测试
更换不同品种代码进行测试验证:
白银
黄金
4.3 测试结论
从曲线和数据的角度来看,策略效果看起来都不错。
五、经验总结
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 资金曲线为直线 | 初始资金过大,收益变化不明显 | 降低初始资金至10万 |
| 合约到期无法交易 | 使用了过期合约代码 | 动态获取主力合约 |
六、平台改进建议
- 内置检测工具:开发未来函数检测模块,策略效果很好,但是很担心使用了未来函数。
- 日志引用功能:实现日志一键引用功能,支持直接在AI改进策略的时候引入日志片段,方便引用日志优化和修复策略。
- 合约自动切换:生成代码的skills建议内置主力合约自动切换机制,无需再次要求AI去处理合约到期问题。