Developing Trading Applications with the SumZero Trading API

I have open sourced a Java trading library which I have been using to develop automated trading applications for many years.  The SumZero Trading API provides the ability to develop trading applications for the equity, futures, and currency markets, by utilizing the following sub APIs

  • Market Data API – Request real time Level 1 (NBBO) and Level 2 (Market Depth) market data
  • Broker API – Submit, execute, and monitor orders
  • Historical Data API – Request intraday and end-of-day historical market data.
  • Strategy API – Develop trading strategies to automatically place buy/sell orders based on user defined algorithms.

The library includes implementation of all of these APIs for Interactive Brokers, except for the Broker API, which also has an implementation for Quantitative Brokers.

The libraries are licensed under the MIT open source license and source code is available at:
https://github.com/rterp/SumZeroTrading

In future posts I will show how easy it is to connect to Interactive Brokers to request real-time market data and place a trade using the API.

twitter: @RobTerpilowski
twitter: @SumZeroTrading

2 thoughts on “Developing Trading Applications with the SumZero Trading API

  1. Thanks for open sourcing this. Would you be able to elaborate briefly what this API does that is above and beyond the API released by IB?

    • The API provides a layer of abstraction above the IB API. The end goal is to be able to develop automated trading applications, and possibly a backtest framework as well, where different market data providers, historical data providers, and brokers can be plugged in. Since I primarily use IB for trading, I have implementations for each one of these sub APIs that integrates with IB.

      There is also an InteractiveBrokers client API that provides a wrapper around the IB APIs that makes it less cumbersome to create an app if you want to exclusively use IB, and not worry about plugging in other providers.

      I’m working on some documentation, examples, and JavaDocs to be posted on the blog and the github site. In the meantime you can take a look at a few examples of requesting real-time and historical data, as well as placing trades through IB.

      https://github.com/rterp/SumZeroTrading/tree/master/examples/InteractiveBrokersExamples/src/main/java/com/sumzerotrading/ib/example

      Example of connecting to IB for market data is below

      https://gist.github.com/rterp/027b11d37a09cbc98072

Leave a Reply