#IB TWS编程手记——00.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那里拿数据是最有价值,和有用的。当然需要处理的工作量也不轻松。

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,也就是,模拟账户,可以使用很多与正常的交易账户一样的功能,但不会影响到正常账户的资金安全。

IB官网

注册了账户、打入资金后,就可以在盈透证券的官网下载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

如何编程

请看我的下一篇文章《01.TWS建立基础连接》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值