大家好,我是橙哥!最近 宽客邦量化俱乐部 有位新加入的朋友向我咨询能否介绍一下用盈透证券进行程序化交易。盈透证券,英文名称Interactive Brokers(缩写IB),可能是目前国内用户数量最大的美股证券经纪商之一,它家的TWS API是许多量化交易平台的接入通道。在这篇文章我会详细说明如何使用盈透证券API进行美股的委托下单和量化交易。后面我将向大家介绍如何用LongBridge长桥证券这家最近比较火的券商的API进行港美股量化交易,敬请期待。
首先,我会介绍为什么使用盈透证券和其API的优势,对个人投资者来说,如何下载并设置盈透证券TWS客户端,使其支持API访问。然后,我会介绍通过Python连接TWS进行委托下单的方法。最后我以基于统计套利的配对交易策略为例,介绍量化交易策略开发及实盘操作的全过程,最终实现自动化交易。由于篇幅有限,点击这里或文末获取本文代码和Jupyter文档。
欢迎加入 宽客邦量化俱乐部 ,一个由橙哥发起的AI与量化交易技术社群。
一、 IB盈透证券简介
盈透证券(Interactive Brokers,简称IB)是全球领先的电子交易平台,提供广泛的金融产品,包括股票、期货、期权、外汇等。凭借其低佣金和高效的执行速度,盈透证券吸引了众多交易员和投资者。IB API是一套由盈透证券提供的编程接口,允许用户通过编程语言(如Python、Java、C++等)直接与盈透证券的交易系统进行交互。使用IB API,用户可以实现自动化交易、获取实时市场数据、管理账户信息等功能。
使用盈透证券API进行美股量化交易的优势:
低费用 :盈透证券的佣金结构透明且低廉,适合频繁交易的量化策略。佣金、融资利率、数据费用,几乎都是行业最低水平。
丰富的API功能 :IB API支持广泛的交易指令和市场数据查询,满足不同量化交易策略的需求。
高效的执行速度 :盈透证券的交易系统响应迅速,确保交易指令能够及时执行。
全球化市场接入 :在34个国家/地区的150个市场交易股票、期权、期货、货币、债券和基金。
二、IB API客户端TWS的下载和设置
2.1 下载TWS
Trader Workstation(TWS)是盈透证券的交易平台,提供直观的图形界面和丰富的交易功能。IB API的连接对象是安装在用户电脑上的IB客户端TWS,再由TWS来负责和IB交易服务器之间的通讯。下载步骤如下:
1、 访问盈透证券官网
。
2、在“Login”菜单中选择“Trader Workstation”。
3、点击下载链接,选择适合您操作系统的版本(Windows、Mac、Linux)。
4、下载并安装TWS客户端。
2.2 设置TWS以支持API
1、启动TWS客户端并登录您的账户,如果暂时不想用实盘交易账户,我们也可以通过模拟交易的账户进行操作,只需要一个email即可。
2、在TWS主界面上,导航到
Edit > Global Configuration
。
3、在配置窗口中,选择
API > Settings
。
4、勾选
Enable ActiveX and Socket Clients
,并设置端口号(默认是7496)。
5、确认并保存设置。
三、用Python连接TWS并进行下单交易
3.1 安装ib-insync库
ib-insync
是一个非官方的IB API Python客户端库,提供了更加简洁易用的接口。可以通过以下命令安装:
3.2 连接TWS并进行市价委托
以下是一个使用
ib-insync
库连接TWS并进行市价委托的例子:
在TWS客户端我们可以看到订单:
3.3 连接TWS并进行限价委托
以下是一个使用
ib-insync
库连接TWS并进行限价委托的例子:
在TWS客户端我们可以看到订单:
3.4 获取股票的历史数据
四、量化交易策略示例
4.1 简介
配对交易策略是一种市场中性策略,通过利用两只相关性较高的股票(或其他资产)之间的价格差异来获利。配对交易策略的基本思想是,当两个股票的价差偏离其历史均值时,预计它们将回归均值,从而进行买入和卖出的操作。具体来说,当两只股票之间的价差超出一定范围时,买入价格较低的股票,卖出价格较高的股票,以获取回归均值时的价差收益。
以下是一个基于NVDA和AMD这两只股票的配对交易策略示例,结合机器学习算法进行预测和回测,并最终连接TWS进行实盘操作。
4.2 数据预处理和特征工程
我们将使用
yfinance
库获取历史股价数据,并进行特征工程。
4.3 回测策略
我们将通过模拟交易来回测该策略,并进行可视化展示。
4.4 实盘操作
以下是结合机器学习模型和
ib-insync
库进行实盘操作的代码示例:
这个策略示例包括:
数据预处理和特征工程 : 下载历史股价数据,创建特征,并处理数据。
训练机器学习模型 :使用随机森林回归模型进行训练和预测。
回测策略 :通过模拟交易进行策略回测,并进行可视化展示。
连接TWS :连接到本地的TWS客户端。
获取当前价格 :获取英伟达和AMD股票的最新价格。
预测未来价差 :使用训练好的模型预测未来价差。
根据预测结果下单 :根据预测结果和Z分数决定买入或卖出。
执行订单 :执行市场订单,并打印订单状态。
断开连接 :断开与TWS的连接。
通过上述步骤,我们可以实现一个基于配对交易策略的量化交易策略,并通过盈透证券的API进行实盘交易。根据实际需求,可以进一步优化和复杂化交易策略,以提升策略的表现。
本文完整代码、数据和Jupyter文件下载地址和密码已发布到 「宽客邦量化俱乐部 」 ,欢迎扫码加入获取:
推荐阅读: