前言
今天想要和大家分享的是,在使用ptrade过程遇见的一个问题,客户反馈量化查持仓有延迟!
一、问题描述
客户反馈量化查持仓数据有延迟,策略刚成交一笔买入,但是get_position查持仓数据没有更新这一笔!
二、解决方案
1、首先调用get_position获取持仓数据不是立刻向柜台查询获取,而是通过custom_config_conf文件中配置的sync_seconds_交易同步频率(默认是6s)每6s再去同步一下柜台那边的数据,存在进程缓存里面,所以委托成交后不在查询的6s周期内可能会存在未获取到该笔订单存在的情况!
2、客户的策略逻辑是判断一笔订单成交后能在持仓中查询到,就停止交易,但是通过get_position获取持仓数据可能存在延迟现象,导致客户有重复下单的情况。这种情况下可以修改一下策略逻辑,改成委托后判断这笔成交是否收到成交主推,收到成交主推则不委托,简单策略如下!
def initialize(context):
g.security = ['600570.SS','002416.SZ']
set_universe(g.security)
g.flag = 0
def on_trade_response(context, trade_list):
log.info(trade_list)
g.flag = 1
log.info("yichengjiao")
def handle_data(context, data):
if(g.flag==0):
order('600570.SS', 100)
else:
log.info("end")
首先g.flag置0,若g.flag为0则委托买入600570代码100股,当收到成交主推后将g.flag置1,g.flag为1后不进行买入。
结语
ptrade的渠道可以通过《ptrade开通详则》来获取,感谢看到这里,如果有更多疑问欢迎在评论区提出!