盈透证券TWS API研究系列1 – TWS API准备工作

IB盈透证券TWS是什么?

IB TWS是美国网络券商IB盈透证券的量化交易API,是开发、研究自动量化交易算法的重要工具。关注过我的朋友,可能知道之前我曾经翻译过IB API的相关文档,但是由于平日工作实在太忙,这个工作完成1/3就鸽了,实在对不住各位朋友。

后来我想了想,不如把怎么使用IB API的方法直接告诉有兴趣的朋友,一些更深入的方法技术,可以在你掌握相关知识后,自己主动查找IB的开发文档,况且IB新一代的API更新很快,如果单纯的翻译开发文档,实在是用爱发电的项目。

盈透证券TWS系统

除了IB盈透以外,我还有什么工具可以当作金融分析工具?

IB API的功能很强大,但是需要你去他们网站上开个户。虽然现在也能直接申请Paper Account,但是功能上是有些限制的。除此之外呢,对于Python开发者来说,则有很多开源工具可用,不过我分析过他们的数据来源,国内A股市场基本上是从网易和新浪扒来的,而国际市场的金融数据则是来自雅虎。

不知道同花顺有没有相关的API,有兴趣的可以查查。但是我个人觉得,无论从时效性,功能性,完整性来看,直接从电子券商IB那里拿数据是最有价值,和有用的。当然需要处理的工作量也不轻松。

美国盈透证券优惠信息(新、老盈透用户均适用):

盈透证券优惠开户链接:https://www.e-investingguide.com/interactivebrokers

无论你是已经在盈透证券入金交易的老客户或者是正准备在盈透证券开户的新客户,如果你需要免除盈透证券每月10美元账户维护费以及降低盈透证券账户交易佣金水平(具体能优惠和降低多少,取决于你的交易量,已经入金交易的盈透用户也能挂靠降低佣金),都可以联系我,在IB盈透证券出入金及TWS软件使用、API接口使用、开立机构类账户(离岸对冲基金、家族办公室、自营交易集团)等方面遇到问题的也可以联系我询问。 可以发Email邮件联系我,我的邮箱地址是 giftlord@gmail.com

我的微信号:47268101 或者打开微信,直接扫描下方二维码添加我为好友即可咨询:

IB盈透支持哪些程序语言?

目前来看,IB支持的语言包含了主流的几大语言,基本囊括TIOBE前6的语言,也就是说,至少80%的程序员都可以用他们熟悉的一两种语言来开发属于自己的量化交易程序。

目前支持的语言有Python/C/CPP/Java/C#/VB,另外在v9.72版本的API上,又增加了Excel的支持(话说这是什么鬼?)我个人比较支持大家用C#或者Java作为开发语言,不过如果未来你需要增加比如说CUDA的运算支持,tensflow的智能支持,使用C#则会更加容易一些。

当然,如果你不追求高并发,那么直接使用Python是最方便的。

前期准备工作

想要使用TWS,需要先去册盈透证券的官网注册投资者账号,并且在账号开通后三个月内向你的投资人账号打款以激活账号,否则注册了账号而不打款,三个月后账户就会被注销掉,也意味着你不能使用TWS进行下一步的开发了。

当然,据我所知,比如雪球, 还有其他一些国内的二级券商是有附带提供IB开户的功能。如果你身边有某个好朋友他已经开了IB的账户,那么你可以请他帮你开通一个Paper Account,也就是,模拟账户,可以使用很多与正常的交易账户一样的功能,但不会影响到正常账户的资金安全。

注册了账户、打入资金后,就可以在盈透证券的官网下载TWS交易客户端,同时还有IB API。IB API目前提供有Linux,Windows,MacOS三个系统的版本,根据你自己擅长的系统和语言,选择对应的API进行下载就行。

我推荐大家建立一个虚拟机,把TWS客户端 下载到Linux或者Mac上,根据我的经验,放在Windows上因为安全策略的问题,会有一定几率导致你的代码无法正常运行,而本地客户端,既可以选择Windows,也可以选择Linux或者Mac。

如果你是Mac用户这个会变得无比简单。

选择的编程语言支持,我个人推荐 C#.NET 会十分方便。尽管笔者本人也会Java,Python等语言技术,但是C#真是一种用起来方便无比而且十分强大迅速的语言。

另一方面,因为API命名与使用方法基本一致,所以也就无所谓语言的优劣,对于你个人来说只要方便就好。

通信前准备

使用Windows编程,需要准备的是Visual Studio或者支持相关语言的开发工具和IDE,因为笔者用C#做这个项目,所以选择了Visual Studio。另一方面,因为Windows系统的限制,需要提前准备好程序的通信端口,并在防火墙、杀毒软件设置为打开。

然后启动你的TWS,输入用户名和密码,进入到主界面后,在Configuration里,找到API这一项。

一定要记得勾选“Enable ActiveX and Socket Clients”这个选项,此外在下方的“Trusted IPs”,要注意是否允许本地连接已经打开了,这个勾选后,默认127.0.0.1可以直接访问TWS,而其他地址,需要通过“Create”命令,加入到TWS的白名单里。

EnableActiveX

————————————————
版权声明:本文为CSDN博主「打码的阿通」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/poisonchry/article/details/70314787

Be the first to comment on "盈透证券TWS API研究系列1 – TWS API准备工作"

Leave a comment