【工具】如何把聚宽的策略信号1:1传到ptrade
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
全部 0条评论