VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 4
声望: 0

大家遇到过这个问题么?
description

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

接上面代码如下:如果去掉下面的subscribe部分,cpu恢复正常。

xtp_gateway = main_engine.add_gateway(XtpGateway)
xtp_setting_filename = 'XTP_connect.json'
settings = load_json(xtp_setting_filename)
main_engine.connect(settings, XtpGateway.default_name)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()

# time.sleep(5)
contract = main_engine.get_contract("300750.SZSE")
main_engine.write_log(contract)
req = SubscribeRequest(
    symbol=contract.symbol,
    exchange=contract.exchange
)

main_engine.subscribe(req, XtpGateway.default_name)
qapp.exec()
Member
avatar
加入于:
帖子: 1390
声望: 91

是否用了内网的UDP行情?

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

MTF wrote:

是否用了内网的UDP行情?
是的,用了UDP行情。

多谢分享这个思路。 我用的是xtp的试用接口。 在配置中,我改成TCP后,CPU占用一下就变成5%的正常水平了。UDP确实是占了100%。 网络中不是TCP协议更耗资源么。

Member
avatar
加入于:
帖子: 1390
声望: 91

UDP是订阅的组播行情,所以会受到全市场的所有行情,然后在API中进行过滤处理,自然就占用高了。TCP订阅则是在行情服务器端做了过滤,因此就只需要处理订阅了的合约数据

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

MTF wrote:

UDP是订阅的组播行情,所以会受到全市场的所有行情,然后在API中进行过滤处理,自然就占用高了。TCP订阅则是在行情服务器端做了过滤,因此就只需要处理订阅了的合约数据

多谢分享。 市场中有3万多个symbol(包括基金指数之类的),绝大多数的机构只需要用到其中4300个股票,这么看,UDP就不要订阅了,因为绝大多数的数据是下游不会用?UDP在其他方面的优势得很大才有诱惑力啊。UDP会比TCP快辣么多么

Member
avatar
加入于:
帖子: 1390
声望: 91

延时上会快很多的,主要由底层通讯协议决定。

不过就像普通人开F1可能没啥好处反而很危险一样,不是人人都有必要用了。

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】