我尝试在 Visual Studio 2008 中设置 Interactive Broker 的 C++ API,但我对 C++ 的了解非常有限,并且不断出现错误。 :<
1) 有没有办法使用某种轻型脚本语言来连接盈透证券并进行交易。 F.E.
login.('username','password')
>>>'Connected'
makeTrade('GOOG','550')
>>>'Trade Completed'
像Python这样的轻量级的东西就可以了,是的我已经研究过IBPY,但我不明白java2python系统是如何工作的。
2) 您是如何设置您的自动化系统的,或者您将如何与盈透证券一起设置您的自动交易系统?
“DDE for Excel”API 是迄今为止最容易启动和运行的 API,IB 提供了一个示例程序,其中包含有关如何使其工作的说明。 https://interactivebrokers.github.io/tws-api/excel_apis.html
现在有许多选项可用于使用 TWS API
虽然没有官方支持的 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。
或者您可以将 R 与 IBrokers 包一起使用。示例:
tws <- twsConnect()
id <- reqIds(tws)
placeOrder(tws, twsSTK("AAPL"), twsOrder(id))
cancelOrder(id)
现在有 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。)