-
Notifications
You must be signed in to change notification settings - Fork 2
Home
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.
Technology:
- Groovy
- Interactive Brokers TWS api
- gradle
- junit, mock
Links:
- http://www.interactivebrokers.com/en/p.php?f=programInterface
- http://www.interactivebrokers.com/en/software/api/api.htm
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)
- create a signal (long/short)
- create a position (100 shares QQQ BUY/SELL)
- 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.