【工具】如何把聚宽的策略信号1:1传到ptrade

博股通金DL
博股通金DL Bogutongjin20230618

0 People liked this article · 1616 views

        joinquant是一个优秀的量化社区,很多股友都会浏览社区中的策略,克隆,复刻,转换到能够实盘的pb系统上。在转换的过程中存在很多的问题,如1.信号不能完全和聚宽一致,2.很多聚宽上的信号和因子在ptrade上不支持等诸如此类的问题。今天我将发布一个工具,能将聚宽的模拟交易信号传给ptrade,并驱动ptrade实时买入。

        这个工具的流程如下:

1.聚宽平台
2.Python
3.PTrade


1.聚宽平台
①将文件中的redistrade.py上传至聚宽平台研究环境
②其中
  host = '你的host'————————————————————————————需改动
  port = 你的port————————————————————————————需改动
  password = '你的pwd'————————————————————————需改动
  pattern = 0 # 0:PUBSUB模式,1:STREAM模式 ————————————不需要动
  mode = 0 # 0: 测试,1:正式————————————————————需改动,回测改成0,实盘改成1
前三项在https://redis.io/平台注册并搭建Subscription——Redis Cloud(30MB Free)———复制connect信息(host和pwd不是注册时的账户信息而是搭建的服务器对应信息!!!!!!)
③修改你的聚宽策略
  Ⅰ————from redistrade import *
  Ⅱ————在initialize中,增加一个全局变量:g.strategy='你的聚宽策略名'
  Ⅲ————增加一个定时运行:after_market_close,用于休市时关闭掉Redis
  对应代码 run_daily(after_market_close, time='after_close',
  reference_security='000300.XSHG')

  def after_market_close(context):
  RedisTrade.close()
  Ⅳ—————给order系列下单函数加个小尾巴下划线_, 并增加一个参数context
  (如order_target(stock, 0)修改为: order_target_(context, stock, 0)

2.Python
①确保解释器版本≤3.11.x——————————!!!!!!!
②pip install -r requirements.txt安装所需数据库
③修改参数db = Database(host='host', port=port ,password='pwd', decode_responses=True)
  @db.listener(channels=['聚宽策略名'], is_async=True)
  host,port,pwd,聚宽策略名 部分需要修改
④注意python文件中会在D:/data/自动生成一个STwts.pkl(可以自定义修改)
  我们需要把这个文件在ptrade平台定时上传至研究环境中,定时上传的时间设定为聚宽交易时间+1分钟

3.PTrade平台
①交易函数的执行时间设定为聚宽交易时间+1分钟
②回测模式下回测时间要和聚宽回测时间


                                                                            图1 接收到的聚宽信号

                                                                                图2 案例策略回测效果

如需要此工具,请加v:Bogutongjin20230618

Published on 2025-09-18 10:16

Disclaimers:

This document is written by 博股通金DL Original published on 百果量化交流平台 ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister