我要学量化
聚宽转Ptrade?提供软件接口对接与信息技术服务,助力量化系统高效升级!
将聚宽(JoinQuant)策略迁移至PTrade是量化系统升级的常见需求。由于两者在API风格、数据口径及交易执行机制上存在差异,直接迁移往往面临诸多技术挑战。以下为您梳理了从聚宽转PTrade的核心对接方案与信息技术服务要点,助您高效完成系统升级。
一、 核心对接方案:代码移植与信号中转
目前,从聚宽向PTrade的迁移主要分为“代码移植”和“信号中转”两种技术路径,可根据策略的复杂度和实盘需求灵活选择:
代码移植法(深度重构)将聚宽策略代码保存为
.py文件并上传至PTrade研究环境,利用PTrade内置的check_jq_code()和trans_jg_code()函数进行自动化转换。该方案能自动处理部分API映射、证券代码后缀转换(如.XSHG/.XSHE转为.SS/.SZ)及Portfolio属性更新。但需注意,聚宽特有的因子库(如MACD)、get_current_data等复杂函数以及run_monthly等定时任务无法自动转换,需参照PTrade文档手动重写计算逻辑与日期判断。信号中转法(轻量级对接)若不想重写复杂代码,可通过中间数据库(如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()函数会就地修改持仓数量,调用前需保存至局部变量。
三、 升级验证与实盘部署建议
为确保量化系统高效、平稳升级,建议遵循以下标准化流程:
长周期回测验证:转换后的代码必须在PTrade中进行完整回测。长周期回测有助于暴露短周期未触发的隐藏Bug(如日期格式错误、字段不支持等)。
小范围交接测试:先验证一条简单规则和少量标的,确认订单状态、异常提示及日志记录正常后,再逐步增加策略复杂度。
实盘密切监控:在实盘初期,需密切监控策略表现,区分订单是否提交、接受及成交。若出现信号不一致,应立即停止扩大测试,逐项排查数据或规则差异。
此外,市面上也有部分第三方工具(如JQToPtradeConverter或基于AI的转换工具)可辅助完成API映射与代码转换,但此类工具通常无法完全替代人工,转换后仍需结合PTrade官方文档进行严格的逻辑校验与回测验证。
需要我帮你梳理一份聚宽到PTrade的API映射对照表吗?这是代码移植中最常踩坑的部分。

