vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 7
声望: 0

自写一个Wind的实时行情接口,菜单增加,连接,取得行情都通过了,
差最后把数据放入object.py里面的TickData。怎么都过不了。
即使直接赋值,也过不了。

description

description

description

图一:表示我有加载这个类

图二:我的代码,用写日志方式标记,已到达执行tick = TickData{}这行

图三:是日志的截图,表示这句tick = TickData{},过不下去到下一个日志的输出。

备注:TickData,我已经变换过尽量赋少值,最少的时候,只赋值一个gateway_name,也是过不去。感觉不是类型不匹配这些原因。

望群主大人帮忙!!!!!!!!!!!

Member
avatar
加入于:
帖子: 238
声望: 15

不是赋值越少越好,可以去看一下底层tickdata,好像datetime/exchange/symbol是必须填的。如果想验证,可以在你接收tickdata的函数一开始就print收到的数据,然后填完后也print或者直接on_tick到图形界面上试试看

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

xiaohe wrote:

不是赋值越少越好,可以去看一下底层tickdata,好像datetime/exchange/symbol是必须填的。如果想验证,可以在你接收tickdata的函数一开始就print收到的数据,然后填完后也print或者直接on_tick到图形界面上试试看

我看过了,没理解哪里设定datetime/exchange/symbol是必须填的。

谢谢,其实我除了输出日志,平常用print,看不到在哪里会显示出来print

Member
avatar
加入于:
帖子: 238
声望: 15

有这三个单独放在前面和其他的隔开吧。这是我tickdata没输datetime报错的截图,此时图形界面也不显示了。

description

description

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

description

这个图,是怎么运行的,才有下方的提示啊?

Member
avatar
加入于:
帖子: 238
声望: 15

用run.py打开vnstation就行了

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

xiaohe wrote:

用run.py打开vnstation就行了

**

按照大神指引,已经弄通了,但有似乎回调函数被阻塞了。帮忙分析看看。

**

订阅的语句

description

回调函数

description

回调运行状况

description

except是有回调的信息,但隔很久才产生一个打印,是哪里阻塞了??
备注:只启动一个接口,只订阅一个股票信息。

Member
avatar
加入于:
帖子: 238
声望: 15

可以检查下你的TICK逻辑耗时是多少,事件驱动引擎是单线程的,如果某个处理函数耗时过长是可能出现堵塞的

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

认真对比一下CTP获取实时行情的写法,觉得有两个可能,请教一下

1可能
我在subscribe函数里,直接用万德的 实时查询语句,语句后面跟一个函数名,有行情到来会调用 回调函数。
w.wsq(000002.SZ, "rt_time,rt_last",func=self.XXX)
我在XXX函数里直接处理数据后,把数据调用 self.gateway.on_tick(tick)
是不是不能这样写??

2可能
在CTP里,红色的这句话,是推送。
description

我是不是缺少这句推送,才会导致回调函数不响应

重新一下我的提问:写的万德实时行情接口,没有报错,信息也能获取,但行情回调函数,是3秒左右,有产生一个except的相应,但几分钟(不固定)才进入上面1提到的XXX函数,把数据放入到self.gateway.on_tick(tick)。百思不得其解,我知道结构应该错了。想出上面2种可能。

期望群主详细指引一下!

Administrator
avatar
加入于:
帖子: 3913
声望: 209
  1. 可以这么写
  2. 有except,说明你的XXX函数有BUG,WindPy对回调函数中的异常处理,是直接给扔了,不会有任何输出,所以你只能自己查代码细节了
© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3