网页抓取港股实时行情(正式支持RTD(RealTimeData),实现数据实时抓取)
优采云 发布时间: 2022-02-08 15:23网页抓取港股实时行情(正式支持RTD(RealTimeData),实现数据实时抓取)
10月9日,盈透证券发布API9.73,正式支持RTD(Real Time Data)。顾名思义就是实现数据的实时抓取,主要对象是微软的excel。当然,您必须启用TWS(tradework stio,IB的交易软件,每个Tiger用户都可以使用,如果您没有登录密码,请联系IB)。以下是整个工作的流程图(此图来自thinkorswim,机制基本一致,thinkorswim可视为TWS):
我们在excel的单元格G2中输入一个命令,要求在这个单元格中显示$RUT的当前价格,这个命令将被传送到RTD模块,RTD模块将与TWS建立通信并告诉TWS我需要当前值$RUT,TWS将当前1017的价格返回给RTD模块,RTD模块将数据填入G2。整个数据传输是实时的,也就是说你可以看到G2单元格中的数字是实时变化的,也就是$RUT的当前价格。整个 RTD 的数据更新速度非常快,最小可以到 250 毫秒,即 1 秒内数据更新 4 次。
接下来,我将一步步教你如何实现这个过程,
STEP1 首先下载 IB API 9.73 并安装。URL为#,第一个界面点击同意后弹出的页面下载安装。
STEP2 确保您的交易平台是963或以上版本,如果您没有交易平台软件,请下载。
进入TWS软件,点击界面上的Configuration-API-Settings,勾选图中三个选项,确认端口号为7496,应用并关闭。
STEP3 打开excel。确保你的excel是32位版本,64位版本的excel需要通过visual studio重新编译。Excel的版本可以在文件-账户-关于Excel中找到。输入 =RTD("tws.twsrtdserverctrl",,"sym=ES", "sec=FUT", "exch=GLOBEX", "cur=USD", "exp=201712", "qt=Bid") 可以显示A1单元格ES12期货的买入价,是不是很简单?
命令和参数
接下来是如何设置最重要的命令和参数。基本规则可以在 API 参考指南:中找到,但您可能会感到困惑。为简单起见,我将举几个示例作为模板:
在TWS的设置中,常用的交易品种分为股票(STK)、期权(OPT)、外汇(CASH)、期货(FUT)等。每个符号的公式所需的参数是不同的。
股票公式
=RTD("Tws.TwsRtdServerCtrl",,"sym=IBM", "sec=STK", "exch=ISLAND", "qt=Ask")
返回 $IBM 的卖价,=RTD("Tws.TwsRtdServerCtrl") 任何公式都需要这部分,sym=股票符号,sec=交易类型(见上),exch=exchange,qt=title,这里是售价。
期货公式
=RTD("tws.twsrtdserverctrl",,"sym=ES", "sec=FUT", "exch=GLOBEX", "cur=USD", "exp=201712", "qt=Bid")
返回12月ES期货的买入价,参数基本一致,区别是cur=货币,exp=期货交割日。
期权公式
=RTD("tws.twsrtdserverctrl",,"sym=IBM", "sec=OPT", "exp=20171110", "strike=160", "right=put", "exch=SMART", "cur=USD ", "qt=投标")
返回 2017 年 11 月 10 日行使价 160 的 IBM 看跌期权的买入价。注意期权的具体参数,exp=expiration date stroke=strike price right=call/put。
以上几条基本命令行相信可以满足大部分需求。您只需根据自己的股票代码或期权修改参数即可。
下面是qt的参数列表,决定了你需要返回的参数值。这张表非常重要。
应用意义
1、 通过RTD结合DDE、ActiveX、Python等API,可以实现自动化交易。RTD本身在excel中也得到了充分利用,复杂的公式、图表等都可以用于数字统计和分析。您还可以使用 RTD 捕获的数据来构建您自己的数据库。
2、 可以使用 RTD 引用自己设计的接口。下图是我的excel的选项链。不是更整洁更漂亮吗?
如果我做一个期权组合,比如买入1手2300,卖出1手2400的价差,我想知道这个组合的报价。很简单,只要A4-A8就够了,是不是很方便?
3、RTD还有其他有用的功能,这里不再赘述。Excel 比你的 tws 强大得多。
感谢收看
听说输入以下密码会看到更多人。