盈透证券自动交易

问题描述 投票:0回答:5

我尝试在 Visual Studio 2008 中设置 Interactive Broker 的 C++ API,但我对 C++ 的了解非常有限,并且不断出现错误。 :<

1) 有没有办法使用某种轻型脚本语言来连接盈透证券并进行交易。 F.E.

login.('username','password')
>>>'Connected'
makeTrade('GOOG','550')
>>>'Trade Completed'

像Python这样的轻量级的东西就可以了,是的我已经研究过IBPY,但我不明白java2python系统是如何工作的。

2) 您是如何设置您的自动化系统的,或者您将如何与盈透证券一起设置您的自动交易系统?

python interactive-brokers
5个回答
3
投票

“DDE for Excel”API 是迄今为止最容易启动和运行的 API,IB 提供了一个示例程序,其中包含有关如何使其工作的说明。 https://interactivebrokers.github.io/tws-api/excel_apis.html


现在有许多选项可用于使用 TWS API


2
投票

虽然没有官方支持的 Python API,但我已经成功使用 ibpy 几个月了,而且非常简单。无需关心 java2python 等。我所要做的就是将 ibpy 克隆到某个地方:

git clone https://github.com/blampe/IbPy

从那里安装:

cd IbPy
python setup.py install

瞧,完成了。我最初是从 http://www.quantstart.com/articles/Using-Python-IBPy-and-the-Interactive-Brokers-API-to-Automate-Trades

得到的

安装完成后,Python 中的界面与 Java API 界面几乎相同:IB API pdf

我发现查看 IB API 中包含的 TWS 测试客户端 Java 代码很有用。

编辑: IB 现在已经拥有自己的 python API 一段时间了,因此不再需要 ibPy,除非您使用的是 python 2。


1
投票

或者您可以将 R 与 IBrokers 包一起使用。示例:

tws <- twsConnect()
id <- reqIds(tws)
placeOrder(tws, twsSTK("AAPL"), twsOrder(id))
cancelOrder(id)

1
投票

有很多选项可以使用TWS API进行算法交易。

选择以下任意一项,包括 Excel

  1. C#
  2. C++
  3. VB
  4. Java
  5. Python
  6. Excel

0
投票

现在有 REST 和 WebSocket API

我构建了几个库,以便更轻松地使用:IBeam,用于使用 Web API 网关自动进行身份验证;IBind,用于该 API 的 Python 客户端。

简单的例子:

from ibind import IbkrClient

# Construct the client
client = IbkrClient()

# Call some endpoints
print('\n#### check_health ####')
print(client.check_health())

print('\n\n#### tickle ####')
print(client.tickle().data)

print('\n\n#### get_accounts ####')
print(client.portfolio_accounts().data)

print('\n#### get_conids ####')
conids = client.stock_conid_by_symbol('AAPL').data
print(conids)

print('\n#### get_positions ####')
positions = client.positions().data
for position in positions:
    print(f'\t Position {position["ticker"]}: {position["position"]} (${position["mktValue"]})')

history = client.marketdata_history_by_symbols(['AAPL', 'GOOG'], period='1min', bar='1min', outside_rth=True)
print(f'{history}')

请参阅此示例下订单。

(聚会有点晚了,但把它留在这里,因为没有其他答案提到这个相对较新的 Web API。)

© www.soinside.com 2019 - 2024. All rights reserved.