Skip to content
Keith McDonnell edited this page Sep 22, 2012 · 4 revisions

 

Project objective: take 15 second market data & place orders using Interactive Brokers (IB) API.

See the Installation page to setup your development environment.

Phases:

  1. HistoricData
  2. RealtimeData
  3. Signal
  4. Position
  5. Order

Overview

Technology:

  • Groovy
  • Interactive Brokers TWS api
  • gradle
  • junit, mock

Links:

Data setup:

  • Fetch end of data data for Nasdaq 100
  • Calculate top 10 stocks in Nasdaq by liquidity (price * volume)
  • Subscribe to market data for QQQ & top 10 Nasdaq stocks

Use the Observer + Deque pattern specified in the code example, using the following data flow: MarketData -> Signal -> Position -> Order.

When new market data comes in (every 15 seconds)

  1. create a signal (long/short)
  2. create a position (100 shares QQQ BUY/SELL)
  3. randomly (see below) create an order (LMT 100 QQQ BUY)

Create log entries for signals, positions & orders.

Basic unit test coverage required, esp. mocking out calls to & data returned from TWS API.

Clone this wiki locally