Not long ago, Quantopian allowed you to live trade algorithms developed with their software. Sadly they no longer let you do that. It was a painful process but I’ve figured out how to use Interactive Brokers API to create an algorithmic trading bot and run it on a server.
In this post I’ll cover how to setup the API.
Set Up Your Account
I evaluated a few other brokers and the API for IB is excellent compared to the undocumented piles of junk with minimal open source packages other brokers have.
I also recommend you create a paper trading account by logging into Account Management -> Settings -> Account Settings and then click the gear next to “Paper Trading Account”.
Hello World with Trades
If you have any problems with any steps feel free to leave a comment and I’ll help you out
Install Python API Clients
We’re going to use ib_insync, an unofficial IB API client wrapper, to simplify API access. Use Python 3.6 and follow their install steps but when they say to download the official IB API, make sure you select the “Latest” IB API (at least 9.73 to support python, NOT 9.72)
Install the official API by running “python setup.py build install” in your ib_insync python environment after unzipping the API. DO NOT USE PIP.
Set Up TWS API Settings
Open Trader Workstation on your computer and login with your paper trading account (unless you’re feeling adventurous).
Click on the wrench icon in the upper right
Click on API and then settings in the dialog that opens up. Your settings should look like this
And that’s all you need to do with TWS (you could also use the more lightweight IB Gateway but I prefer using TWS so I can see monitor the trading algorithm easier on my local machine).
Connect to Interactive Brokers with ib_insync
Now that you can interact with a broker’s API your next step should be to create an algorithm. Figure out what signals you need, create a control loop, and start testing!
Once you feel confident with your algorithm you should test it out on a server, write up coming soon.
If you can’t wait for me to write that post and are feeling like an 31$$7 h4x0r go download IB Controller on a server, configure your account settings, and run it with xrfb-run. I had to setup X-11 forwarding with xming on my machine to get IB gateway and TWS to install and it was quite a pain but YMMV.