问题描述
回测运行失败,错误码:2 错误信息: 当前回测个数超过限制,开启失败。
解决方案
在 ptrade 量化交易平台进行策略回测时,如果遇到 “回测运行失败,错误码:2 错误信息: 当前回测个数超过限制,开启失败。” 的报错,通常是因为您当前账户或所在服务器并发运行的回测任务数量达到了系统设定的上限。
为了保证服务器的稳定性和资源的合理分配,券商或 ptrade 平台会对单个用户同时开启的回测任务数量进行限制。以下是详细的原因分析及解决办法:
1. 检查并停止正在运行的回测任务
最常见的原因是您之前开启了多个回测任务且尚未运行结束,或者某些回测任务因为代码死循环卡在后台。
- 操作方法:进入 ptrade 的回测任务管理界面(通常在“回测历史”或“任务列表”中),查看当前状态为“运行中”的任务。
- 解决:手动停止那些不需要的、或者已经卡住的回测任务,释放并发额度后,再重新启动新的回测。
2. 等待排队任务完成
如果您提交了多个长周期的回测任务(例如分钟级别、Tick级别的大数据量回测),系统资源会被持续占用。
- 解决:耐心等待当前正在运行的回测任务执行完毕。建议在进行长周期回测时,先用短周期(如几个月的数据)进行逻辑验证,确认无误后再跑全量数据。
3. 优化策略代码,避免资源长时间占用
如果您的策略代码存在效率问题,会导致单个回测任务运行时间过长,从而容易触发并发限制。
- 避免死循环:检查
handle_data或before_trading_start中是否有复杂的嵌套循环。 - 合理使用 API:例如,获取历史数据时,尽量避免在
handle_data中频繁调用大批量数据的get_history或get_price,可以考虑在before_trading_start中一次性获取并缓存。 - 注意 API 限制:如
get_fundamentals接口有流量限制(每秒不超过100次,单次最大500条),频繁调用可能导致网络阻塞或回测卡顿,建议加入time.sleep()或优化查询逻辑。
4. 联系券商申请提升额度
如果您确实有高频、多策略并发回测的硬性需求,且当前限制严重影响了您的研发进度。
- 解决:请联系为您提供 ptrade 服务的券商客户经理或技术支持,说明情况,询问是否可以针对您的资金账号临时或永久上调回测并发数量的限制。
总结
遇到“错误码:2”时不必慌张,这只是系统的资源保护机制。先清理后台任务,再优化代码效率,通常就能顺利解决问题。在编写 ptrade 策略时,养成良好的代码习惯和任务管理习惯,是高效进行量化研究的关键。