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

使用vnpy接入飞鼠柜台后,交易黄金现货时发现发单后柜台一直显示订单处于“提交中”,此后一直没有反馈信息。请问这是什么情况啊?
description

Member
avatar
加入于:
帖子: 2675
声望: 158

应该是没有收到交易所下单的回报,有可能是接口的连接断开了,可以去飞鼠查看一下订单状态看看。
如果有卡住的情况,也可请在cmd中用python -m vnstation启动,卡住后看看cmd是否有任何报错?

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

xiaohe wrote:

应该是没有收到交易所下单的回报,有可能是接口的连接断开了,可以去飞鼠查看一下订单状态看看。
如果有卡住的情况,也可请在cmd中用python -m vnstation启动,卡住后看看cmd是否有任何报错?

感谢你的意见哈,我刚才试过上飞鼠终端查询了,终端里面显示订单是“全部成交”,交易正常。现在发现是vnpy没有办法把交易所下单情况回报,但交易期间的vnstation是正常启动也没有发生卡住或报错的情况。请问这有没有可能是vnpy底层本身的问题呢?如果是的话,有办法通过联系vnpy的维护方面解决吗?

Member
avatar
加入于:
帖子: 2675
声望: 158
  1. 请把sgit_gateway.py的71行改成THOST_FTDC_OAS_Accepted: Status.NOTTRADED,然后再下单看是否有变化;
  2. 请问成交后有图形界面上有成交推送吗?如果没有,请在onRtnOrder和onRtnTrade函数里面print一下交易所传过来的data
Member
avatar
加入于:
帖子: 2675
声望: 158

xiaohe wrote:

  1. 请把sgit_gateway.py的71行改成THOST_FTDC_OAS_Accepted: Status.NOTTRADED,然后再下单看是否有变化;
  2. 请问成交后有图形界面上有成交推送吗?如果没有,请在onRtnOrder和onRtnTrade函数里面print一下交易所传过来的data
    抱歉,71行是对的,THOST_FTDC_OAS_Accepted是还在柜台,还没有到交易所
Administrator
avatar
加入于:
帖子: 4881
声望: 284

请在启动用的Terminal中,查看是否存在什么报错信息,有的话请贴下

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

用Python的交易员 wrote:

请在启动用的Terminal中,查看是否存在什么报错信息,有的话请贴下

你好,之前的订单“提交中”的问题已解决。那是由于sgit_gateway.py中 onRtnOrder和onRtnTrade函数 缺少了 “self.sysid_orderid_map[data["OrderSysID"]] = orderid” 的字段,导致没有订单号码供程序查询。

不过又发现个新的问题。成交 和 委托栏的回报已经正常,但持仓期间的盈亏不会更新。同时开仓完毕后再进行平仓操作时,发现持仓栏的 “数量” 信息并不会更新。
图示如下:
description

望各位指点一下

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

xiaohe wrote:

  1. 请把sgit_gateway.py的71行改成THOST_FTDC_OAS_Accepted: Status.NOTTRADED,然后再下单看是否有变化;
  2. 请问成交后有图形界面上有成交推送吗?如果没有,请在onRtnOrder和onRtnTrade函数里面print一下交易所传过来的data

之前订单的“提交中的问题已经解决了,十分感谢你的帮助。不过现在又发现了 无法撤单 和 持仓数据不更新 这两个问题。我尝试通过双击“提交中”的订单来撤销该订单,但一直没有反应。此后持续执行撤单操作就会出现如下图的问题:

description

Terminal终端我也查看过,并没有发现error报错的情况。

Member
avatar
加入于:
帖子: 2675
声望: 158

接口里是对volume和pnl进行了处理了的,可以在sgit_gateway的onRspQryInvestorPosition函数里print一下收到的data看看

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

xiaohe wrote:

接口里是对volume和pnl进行了处理了的,可以在sgit_gateway的onRspQryInvestorPosition函数里print一下收到的data看看

你好,谢谢你的提示。我在onRspQryInvestorPosition函数的最后一行添加了print(data["Position"]) 的代码,在terminal里发现了以下这个问题。当有仓位时,终端会持续更新当天仓位并输出 ”1“,数据的输入是否应该可以理解为正常?当我平仓完毕后,terminal内就不再显示任何输出了,持仓栏显示也依然为1,没有更新。以下为终端显示:

description

Member
avatar
加入于:
帖子: 2675
声望: 158

你print(data["Position"])是1的话,说明你有1手持仓的呀,所以图形界面显示数量“1”呀。建议还是print(data)看一下完整的信息,看看你的持仓是不是“position”字段

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

沪公网安备 31011502017034号