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

博股通金DL
博股通金DL 这家伙很懒,还没有设置简介

0 人点赞了该文章 · 27 浏览

        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

发布于 18 小时前

免责声明:

本文由 博股通金DL 原创发布于 百果量化交流平台 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论