vn.py官网
开源量化社区
Member
加入于:
帖子: 51
声望: 1

目前已经开始实盘,但开仓量还没提上去,主要是关于部分成交的问题还没有解决:
1.on_order中,每次发单都会收到两次信息,比如会连续收到两次提交中,两次收到未成交,但只会收到一次全部成交的状态,请问如何修正?
2.如果开仓时发生部分成交,比如开10单位,on_order中显示5单位成交(Status==”PARTTRADED“),那这成交的5单位是不是会返回到on_trade中,将来如果再次成交剩余的,又会再次返回到on_trade中?

谢谢

Member
加入于:
帖子: 51
声望: 1

主要还是不太了解CTP消息返回的流程,谢谢

Member
avatar
加入于:
帖子: 3124
声望: 182
  1. 先排查一下下一次单为什么会推两次on_order的问题吧,请看一下是否是同一个orderid;
  2. 10手分两次5手成交的话,应该会有一个orderid,两个tradeid。
    排查时还是请多观察orderid和tradeid吧
Member
加入于:
帖子: 51
声望: 1

xiaohe wrote:

  1. 先排查一下下一次单为什么会推两次on_order的问题吧,请看一下是否是同一个orderid;
  2. 10手分两次5手成交的话,应该会有一个orderid,两个tradeid。
    排查时还是请多观察orderid和tradeid吧

谢谢,但是两次on_order的问题还是没有找到。。。

Member
avatar
加入于:
帖子: 3124
声望: 182

不清楚策略逻辑了,可以下次注意一下,如果推送两次是同一个orderid应该就是接口推送了重复的信息,如果是不同orderid则是下了两个单,那应该就要根据策略逻辑排查了

Member
加入于:
帖子: 51
声望: 1

xiaohe wrote:

不清楚策略逻辑了,可以下次注意一下,如果推送两次是同一个orderid应该就是接口推送了重复的信息,如果是不同orderid则是下了两个单,那应该就要根据策略逻辑排查了
谢谢回答,是同一个orderid,应该是推送了两次重复的信息,另外请教一下,发限价单被触发时,on_stop_order中返回的vt_orderids是list,也就是有可能会返回多个orderid,但是在on_order中只会返回一个orderid,请问什么情况下会on_stop_order中会返回多个orderid?

Member
avatar
加入于:
帖子: 3124
声望: 182

on_stop_order是不会返回信息的
description
你说的应该是send_order函数返回的orderid列表吧,请结合需求去vnpy.app.cta_strategy.engine下自己看一下send_order函数的代码吧

Member
加入于:
帖子: 51
声望: 1

xiaohe wrote:

on_stop_order是不会返回信息的
description
你说的应该是send_order函数返回的orderid列表吧,请结合需求去vnpy.app.cta_strategy.engine下自己看一下send_order函数的代码吧

谢谢您的回答,我去看了下CTP接口文档,已经解决了,一个简单的趋势策略,楞写了将近2000行代码,回测到实盘的确还是有很多细节要处理的,希望不会再有坑了

Member
avatar
加入于:
帖子: 12
声望: 0

请问是怎么解决的?我这边也是提交中 和 未成交,在on_order()也是同一个orderid,推送了两次重复的信息

Member
avatar
加入于:
帖子: 3124
声望: 182

提交中和未成交本来就是两个不同的状态,这是正常的

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号