3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant (聚宽) 平台的 API 中,create_backtest 函数用于在研究环境(Jupyter Notebook)中动态创建并运行回测。针对您关于 code 和 algorithm_id 的疑问,以下是详细的解答:
code 参数的作用是什么?code 参数允许您直接以字符串的形式传入策略的 Python 源代码。
在没有 code 参数的情况下,create_backtest 会默认读取您在网页端策略编辑器中写好的代码来运行回测。但是,如果您在研究环境中进行因子测试或参数寻优,频繁去网页端修改代码会非常麻烦。通过 code 参数,您可以直接在研究环境中动态生成或修改策略代码,并立即提交回测,极大地提高了投研效率。
algorithm_id = "xxxx" 应该用什么代替?是的,这里的 "xxxx" 应该替换为您自己在聚宽平台上创建的某个策略的真实 ID。
您可以在聚宽网页端进入“我的策略”,点击任意一个策略进入编辑页面,查看浏览器地址栏的 URL。例如 URL 为 https://www.joinquant.com/algorithm/index/edit?algorithmId=1a2b3c4d5e,那么 1a2b3c4d5e 就是您的 algorithm_id。
code 里的代码回测,为什么还要提供 algorithm_id?这是一个非常好的问题。原因在于聚宽平台的底层架构设计:
algorithm_id 就是用来指定这个回测应该挂载到哪个策略名下。algorithm_id 和 code 时,系统的处理逻辑是:在指定的 algorithm_id 策略名下创建一个新的回测,但在执行时,忽略该策略原本保存在网页端的代码,转而强制执行您通过 code 参数传入的代码。algorithm_id:决定了回测结果保存在哪里(归属问题)。code:决定了回测实际运行什么逻辑(执行问题)。实际操作建议:
为了保持环境整洁,建议您在网页端专门创建一个名为“研究环境专用回测”的空策略,获取其 algorithm_id。以后在研究环境中使用 create_backtest 并传入 code 时,统一使用这个 ID。这样所有的动态回测记录都会集中在这个策略下,方便管理和查看。