VNPY平台对接IB盈透证券
上篇讲了一下VNPY这个开源平台的基本使用,这篇讲讲怎么用VNPY对接IB以及一些遇到的问题。
VNPY平台对接IB盈透证券
参考官方教程。
安装必要插件
IB Trader Workstation
因为要开启API功能,所以要先下载盈透证券的Trader Workstation,安装,网上教程很多,查一查打开api功能即可。
这里简单说一下,只有PRO账户能开启API。
打开station后,看到右上角齿轮,看到,勾选Enable ActiveX and Socket Clients,如图:
ibapi
在python里,不是简单的pip install ibapi就行了,仔细阅读并参考vnpy提供的文档。
连接VNPY
在VNPY启动界面,在交易接口处勾选盈透证券,启动。看到弹出界面工具栏的连接里,选择连接IB。填入之前的端口即可,其他不变,点击链接。
连接过后就成功通过API连接到刚才登陆在trader workstation的账户了。如果付费订阅了市场,就可以直接开始使用了,但是没有订阅,使用的是延迟数据,就还需要做些改动。
使用延迟数据
参考这篇帖子。
正如这篇帖子所说,如果直接查询Alibaba的CONID,VNPY显示一片空白,日志显示Requested market data is not subscribed等信息。这里就需要在后台开启延迟数据订阅。
大部分这篇教程都提到了,但可能因为项目更新,ib_gateway.py文件位置移到了VNPY安装目录下veighna_studio\Lib\site-packages\vnpy_ib文件夹,然后再根据教程更改即可。
这里直接给出改好的代码,可以直接下载替换,建议先对原文件备份。点击下载ib_gateway.py。
配置好后启动VNPY,连接IB,假设查询Alibaba股票,显示如下。
注意这只是延迟数据,实时的还是需要订阅,并把ib_gateway.py文件改回去!