您的浏览器版本过低,为保证更佳的浏览体验,请点击更新高版本浏览器

以后再说X

我要学量化

聚宽转Ptrade?提供软件接口对接与信息技术服务,助力量化系统高效升级!

作者: 点击:12 发布时间:2026-09-26 12:25:35

将聚宽(JoinQuant)策略迁移至PTrade是量化系统升级的常见需求。由于两者在API风格、数据口径及交易执行机制上存在差异,直接迁移往往面临诸多技术挑战。以下为您梳理了从聚宽转PTrade的核心对接方案与信息技术服务要点,助您高效完成系统升级。

一、 核心对接方案:代码移植与信号中转

目前,从聚宽向PTrade的迁移主要分为“代码移植”和“信号中转”两种技术路径,可根据策略的复杂度和实盘需求灵活选择:

  1. 代码移植法(深度重构)将聚宽策略代码保存为 .py 文件并上传至PTrade研究环境,利用PTrade内置的 check_jq_code() 和 trans_jg_code() 函数进行自动化转换。该方案能自动处理部分API映射、证券代码后缀转换(如 .XSHG/.XSHE 转为 .SS/.SZ)及Portfolio属性更新。但需注意,聚宽特有的因子库(如MACD)、get_current_data 等复杂函数以及 run_monthly 等定时任务无法自动转换,需参照PTrade文档手动重写计算逻辑与日期判断。

  2. 信号中转法(轻量级对接)若不想重写复杂代码,可通过中间数据库(如MySQL、Redis)或文件进行信号同步。聚宽端通过 sqlalchemy 等模块将持仓或交易信号写入数据库,PTrade端定时读取并执行调仓。此方案要求PTrade的交易函数执行时间需晚于聚宽1分钟,以确保信号生成完毕,适用于投研与交易分离的场景。

二、 关键技术难点与数据对齐

在对接过程中,需重点解决以下技术细节,以避免策略表现出现偏差:

  • API与语法差异:全局变量需由 g 前缀改为 context 前缀;数据获取函数(如 get_all_securities 改为 get_Ashares)及日期参数格式(需转为 YYYYMMDD 字符串)均需适配;不支持 set_option、set_order_cost 等函数,且 get_fundamentals 不支持ORM链式调用。

  • 数据口径对齐:两个平台在数据时间、复权口径、交易日历、费用假设及订单处理方式上可能存在差异。建议在交接前对齐数据,选取小段历史区间手工抽查触发日期,确保输入数据、参数和信号时间一致。

  • 环境与执行差异:聚宽为云端托管,而PTrade为券商终端本地或云端运行。需注意 initialize() 函数在PTrade中可能被多次执行,账本数据应移至 before_trading_start() 中加载;同时,order() 函数会就地修改持仓数量,调用前需保存至局部变量。

三、 升级验证与实盘部署建议

为确保量化系统高效、平稳升级,建议遵循以下标准化流程:

  1. 长周期回测验证:转换后的代码必须在PTrade中进行完整回测。长周期回测有助于暴露短周期未触发的隐藏Bug(如日期格式错误、字段不支持等)。

  2. 小范围交接测试:先验证一条简单规则和少量标的,确认订单状态、异常提示及日志记录正常后,再逐步增加策略复杂度。

  3. 实盘密切监控:在实盘初期,需密切监控策略表现,区分订单是否提交、接受及成交。若出现信号不一致,应立即停止扩大测试,逐项排查数据或规则差异。

此外,市面上也有部分第三方工具(如JQToPtradeConverter或基于AI的转换工具)可辅助完成API映射与代码转换,但此类工具通常无法完全替代人工,转换后仍需结合PTrade官方文档进行严格的逻辑校验与回测验证。


需要我帮你梳理一份聚宽到PTrade的API映射对照表吗?这是代码移植中最常踩坑的部分。


期货客户经理-联系方式-电话,微信59179921

诚5年(阿里巴巴诚信通)