Skip to main content

Interactive Broker Web API 的 python 客户端库。

项目描述

非官方盈透证券 API

目录

概述

Interactive Broker Client Portal Web API 的非官方 Python API 客户端库允许拥有 Interactive Broker 账户的个人使用 Python 编程语言管理交易、提取历史和实时数据、管理他们的账户、创建和修改订单。

盈透证券为其客户提供多种 API。如果您想了解有关他们的 API 产品的更多信息,请单击以下链接:

API 中有什么

  • 验证
  • 帐户端点
  • 市场数据端点
  • 贸易端点
  • 投资组合端点
  • 扫描仪端点
  • 投资组合分析端点
  • 网络流媒体

设置要求

必须满足以下要求才能使用此 API:

  • 一个盈透证券账户,您需要您的账户密码和帐号才能使用 API。
  • 已安装Java 8更新 192 或更高版本(网关与更高的 Java 版本兼容,包括 OpenJDK 11)。
  • 下载Beta 客户端门户网关

设置客户端门户

一旦您下载了最新的客户端门户,或者您选择使用存储库提供的门户。您需要解压缩文件夹并将其放在存储此代码的存储库中。

设置 API 密钥和凭据

API 不需要任何 API 密钥即可使用,所有身份验证均由 Client Portal Gateway 处理。每次用户使用 API 启动新会话时,他们都需要为他们希望使用的帐户提供登录凭据。Interactive Broker Web API 确实提供了通过纸质账户使用 API 的能力。

重要提示:您的帐号和帐户密码应保密。

设置安装

pip install interactive-broker-python-web-api

设置写入帐户信息

客户需要特定的帐户信息来创建和验证新会话。您选择存储此信息的位置取决于您,但我将在此处列出一些选项。

编写配置文件:

在 Python 中,通常有一个配置文件,其中包含在设置脚本期间需要使用的信息。此外,您可以以标准方式制作此文件,以便每次都易于阅读。在 Python 中,有一个名为的模块configparser可用于创建模仿 Windows INI 文件的配置文件。

要使用 hte 模块创建配置文件configparser,请在单独的文件中运行以下脚本或转到资源文件夹并运行该write_config.py文件。

import pathlib
from configparser import ConfigParser

config = ConfigParser()

config.add_section('main')

config.set('main', 'REGULAR_ACCOUNT', 'YOUR_ACCOUNT_NUMBER')
config.set('main', 'REGULAR_USERNAME', 'YOUR_ACCOUNT_USERNAME')

config.set('main', 'PAPER_ACCOUNT', 'YOUR_ACCOUNT_NUMBER')
config.set('main', 'PAPER_USERNAME', 'YOUR_ACCOUNT_USERNAME')

new_directory = pathlib.Path("config/").mkdir(parents=True, exist_ok=True)

with open('config/config.ini', 'w+') as f:
    config.write(f)

将变量存储在脚本中:

如果您打算不与其他任何人共享脚本,那么您可以将帐户信息存储在脚本本身中。但是,请确保不要将文件公开给不认识的人。

用法

此示例演示如何登录 API,并演示如何market_data_history使用您的 API 密钥使用端点发送请求。

from ibw.client import IBClient

REGULAR_ACCOUNT = 'MY_ACCOUNT_NUMBER'
REGULAR_USERNAME = 'MY_ACCOUNT_USERNAME'

# Create a new session of the IB Web API.
ib_client = IBClient(username=REGULAR_USERNAME, account=REGULAR_ACCOUNT)

# create a new session.
ib_client.create_session()

# grab the account data.
account_data = ib_client.portfolio_accounts()

# print the data.
print(account_data)

# Grab historical prices.
aapl_prices = ib_client.market_data_history(conid=['265598'], period='1d', bar='5min')

# print the prices.
print(aapl_prices)

# close the current session.
ib_client.close_session()

特征

请求验证

对于某些请求,它会以有限的方式帮助验证您的请求。例如,当使用端点获取实时报价时market_data,它将验证您请求的字段以确保它们是该端点的有效字段。

文档和资源

官方 API 文档

支持这些项目

Patreon:通过向我的Patreon 页面 捐款来帮助支持这个项目和未来的项目。我一直在为像你这样的人添加更多内容,不幸的是,有些 API 需要我支付月费。

YouTube: 如果您想观看我的更多内容,请随时访问我的 YouTube 频道Sigma Coding

雇用我: 如果您有一个项目,您认为我可以帮助您随时联系 coding.sigma@gmail.com或填写合同申请表

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

interactive-broker-python-web-api-0.1.2.tar.gz (161.7 kB 查看哈希

已上传 source

内置分布

interactive_broker_python_web_api-0.1.2-py3-none-any.whl (18.6 kB 查看哈希

已上传 py3