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

为什么,订阅行情没有反应呢?窗口里没有内容
description

Member
avatar
加入于:
帖子: 2115
声望: 140

请问是模拟账户吗?如果是,那么可能是模拟环境的问题

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

是实盘,谢谢

Member
avatar
加入于:
帖子: 2115
声望: 140

那请在ctp_gateway里的onRtnDepthMarketData函数下打印一下收到的data看看吧

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

知道了,往日志里写东西,有范例吗?框架内容还不是很熟悉,比较菜鸟。现在简单的在ctp_gateway里的onRtnDepthMarketData下生成一个文件,然后每个if 后面都往文件里写东西,等夜盘来看一下了

Member
avatar
加入于:
帖子: 2115
声望: 140

请参考接口文件里的write_log函数

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

我也遇到同样的问题,登录之后订阅行情失败,求解决!

Member
avatar
加入于:
帖子: 2115
声望: 140

如果像1楼一样,没有反应,请参考4楼。如果有报错,请贴一下报错截图

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

试了一下,日志输出没有任何动静

改的码是,加了self.write_log(322)#输出当前行,主要看程序有没有走到这里,另外在数据方面最后加了,self.write_log(tick.bid_price_2)
但是没有,任何输出
def onRtnDepthMarketData(self, data: dict):
"""
Callback of tick data update.
"""

    # Filter data update with no timestamp
    if not data["UpdateTime"]:
        self.write_log(322)
        return

    symbol = data["InstrumentID"]
    exchange = symbol_exchange_map.get(symbol, "")
    if not exchange:
        self.write_log(328)
        return

    timestamp = f"{self.current_date} {data['UpdateTime']}.{int(data['UpdateMillisec']/100)}"
    dt = datetime.strptime(timestamp, "%Y%m%d %H:%M:%S.%f")
    dt = CHINA_TZ.localize(dt)

    tick = TickData(
        symbol=symbol,
        exchange=exchange,
        datetime=dt,
        name=symbol_name_map[symbol],
        volume=data["Volume"],
        open_interest=data["OpenInterest"],
        last_price=adjust_price(data["LastPrice"]),
        limit_up=data["UpperLimitPrice"],
        limit_down=data["LowerLimitPrice"],
        open_price=adjust_price(data["OpenPrice"]),
        high_price=adjust_price(data["HighestPrice"]),
        low_price=adjust_price(data["LowestPrice"]),
        pre_close=adjust_price(data["PreClosePrice"]),
        bid_price_1=adjust_price(data["BidPrice1"]),
        ask_price_1=adjust_price(data["AskPrice1"]),
        bid_volume_1=data["BidVolume1"],
        ask_volume_1=data["AskVolume1"],
        gateway_name=self.gateway_name
    )

    if data["BidVolume2"] or data["AskVolume2"]:
        self.write_log(357)
        tick.bid_price_2 = adjust_price(data["BidPrice2"])
        tick.bid_price_3 = adjust_price(data["BidPrice3"])
        tick.bid_price_4 = adjust_price(data["BidPrice4"])
        tick.bid_price_5 = adjust_price(data["BidPrice5"])

        tick.ask_price_2 = adjust_price(data["AskPrice2"])
        tick.ask_price_3 = adjust_price(data["AskPrice3"])
        tick.ask_price_4 = adjust_price(data["AskPrice4"])
        tick.ask_price_5 = adjust_price(data["AskPrice5"])

        tick.bid_volume_2 = data["BidVolume2"]
        tick.bid_volume_3 = data["BidVolume3"]
        tick.bid_volume_4 = data["BidVolume4"]
        tick.bid_volume_5 = data["BidVolume5"]

        tick.ask_volume_2 = data["AskVolume2"]
        tick.ask_volume_3 = data["AskVolume3"]
        tick.ask_volume_4 = data["AskVolume4"]
        tick.ask_volume_5 = data["AskVolume5"]

        self.write_log(tick.bid_price_2)


    self.gateway.on_tick(tick)
Member
avatar
加入于:
帖子: 30
声望: 0

页面和昨天的截图完全相同,就不另外截屏了,求帮助

Member
avatar
加入于:
帖子: 2115
声望: 140

请print("data,", data)看看是否有传数据过来还是被过滤了

Member
avatar
加入于:
帖子: 30
声望: 0
  写在函数最后了,依然没有任何反应

另外,这个print的东西是应该打印显示在哪里呢?
感觉上这个def 没有被触发,否则,9楼那些if之后的write_log,不应该一个也不出现在日志里吧
。。。。。。
self.write_log(tick.bid_price_2)

        #f2.close()
    print("data,", data)
    self.gateway.on_tick(tick)
Member
avatar
加入于:
帖子: 2115
声望: 140

在# Filter data update with no timestamp这一行上面就print吧
用run.py或者在cmd用命令行python -m vnstation打开vnstation,会输出在终端。
日志配置可参考https://www.vnpy.com/forum/topic/1997-vn-pyshe-qu-jing-xuan-13-vn-traderquan-ju-pei-zhi-xiang-jie

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

run.py 打开,print放到最前面去了,还是没有任何反应,cmd没有打印出东西来,write_log日志也没有输出任何东西

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

(base) D:\vnpy-master>python run.py
2021-04-28 22:56:24,023 INFO: 交易服务器连接成功
2021-04-28 22:56:24,414 INFO: 交易服务器授权验证成功
2021-04-28 22:56:24,445 INFO: 交易服务器登录成功
2021-04-28 22:56:24,571 INFO: 结算信息确认成功
2021-04-28 22:56:28,698 INFO: 合约信息查询成功

没有信息了,实际上输入了ni2105 没有反应,也没有报错

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

换了一台从来没有装过VNPY,python等一切编程有关软件的电脑,采用一键安装的方式,安装了vnstation,结果还是一样的,正常登录,但是就是没有行情,也不报错。看来不是个例啊

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

没有办法了吗?哭死

Administrator
avatar
加入于:
帖子: 4655
声望: 266

这么尝试下:

  1. 移除全部应用模块
  2. 移除全部接口,只保留CTP接口
  3. 订阅IF2105的行情,交易所选CFFEX,接口选CTP
  4. 如果还是不行应该就是期货公司问题了
Member
avatar
加入于:
帖子: 30
声望: 0

用Python的交易员 wrote:

这么尝试下:

  1. 移除全部应用模块
  2. 移除全部接口,只保留CTP接口
  3. 订阅IF2105的行情,交易所选CFFEX,接口选CTP
  4. 如果还是不行应该就是期货公司问题了

按您说的做了,还是不行。
请教一下,为什么说就一定是期货公司的问题呢?

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

可能是api版本不对,期货公司说,需要V6.5.1

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

沪公网安备 31011502017034号