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

`from vnpy_scripttrader import init_cli_trading
from vnpy_ctp import CtpGateway
from time import sleep
from vnpy_scripttrader import ScriptEngine

engine = init_cli_trading([CtpGateway])
setting = {
"用户名": "xxxxxx",
"密码": "xxxxxxxxxx",
"经纪商代码": "9999",
"交易服务器": "180.168.146.187:10202",
"行情服务器": "180.168.146.187:10212",
"产品名称": "simnow_client_test",
"授权编码": "0000000000000000"
}
engine.connect_gateway(setting, "CTP")`
想要实现的功能就是,打开(.py文件打包封装成的)exe文件,实现行情登录,以及循环获取订阅行情数据?
目前通过vnpy软件连接CTP,打开ScriptTrader模块,打开.py文件,点击启动可以完成。
想咨询一下大佬们,怎么把登录和获取行情放在一个.py文件实现,使用pyinstaller应该怎么打包文件实现这个功能?

Member
avatar
加入于:
帖子: 4618
声望: 284

可参考https://github.com/vnpy/vnpy/blob/master/examples/no_ui/run.py

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

xiaohe wrote:

可参考https://github.com/vnpy/vnpy/blob/master/examples/no_ui/run.py
大牛,请教一下,在run.py中怎么判断合约信息查询成功?进而程序向下执行。合约信息查询不成功,请求获取持仓返回的都为空。
在ctpgate_way.py文件下找到了onRspQryInstrument(合约查询回报),尝试了还是不知道,应该怎么去判断合约信息查询成功返回,感谢指导~

Member
avatar
加入于:
帖子: 716
声望: 62

可以使用sleep函数去等待一段时间后,再执行之后的程序。

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

郭易燔 wrote:

可以使用sleep函数去等待一段时间后,再执行之后的程序。
这个sleep()有点太难拿捏了啊,我暂时把它放到如果有tick后在获取持仓

Member
avatar
加入于:
帖子: 101
声望: 9

brave_wlc wrote:

郭易燔 wrote:

可以使用sleep函数去等待一段时间后,再执行之后的程序。
这个sleep()有点太难拿捏了啊,我暂时把它放到如果有tick后在获取持仓
就在你说的onRspQryInstrument回调函数中,if last代码段下面有一个self.contract_inited变量,这个变量只有当合约信息查询成功后才会被置为True,你可以通过这个变量来判断合约信息是否查询成功。

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

好的,我试试,感谢感谢

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

沪公网安备 31011502017034号

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