The goal of the project is to create an algorithm that analyzes the stock market and writes results to a text file.
The algorithm should be written in java and it will run on a Linux platform.
The algorithm needs to analyze the order book of up to 100 different tickers (i.e. GOOG, AAPL, RIMM, ...) and in order to be efficient it needs to be mulit-threaded.
To do so the alogrithm needs to:
1. Connect to Interactive Brokers API to get market data ([url removed, login to view])
Loop for each ticker:
2. Construct the level II order book from the data feed
3. Analyze the data with a simple indicator similar to a moving average (we provide the code for the indicator in C#, it is easily translated to java)
4. Write results to a text file
Step 2 is event-driven with events coming several times per second.
Step 2-4 will be ran up to several times per second (i.e. every tick).
-Credentials for the Interactive Brokers API
-Sample code (pseudo code) for the steps 2-4 written in C# (please see attached)
-A Linux amazon EC2 instance to develop & run the algorithm
-Support and answers to questions
-Strong experience in Java programming
-Strong experience in algorithmic and speed optimization. To analyze 100 tickers several times per second the speed of the algorithm needs to be optimized.
-Some knowledge of financial markets is a plus (what is an order book, what is bid/ask, what is a moving average indicator etc.)
-Experience with Interactive Brokers API is a plus
You are expect to deliver a working algorithm on the EC2 instance. It should run 24h/day and start automatically (including the IB API) if the EC2 instance reboots. You are also expected to deliver the source code.
Expected workload for the project is about 5 days:
- 1 day for setting up the platforms, understanding the requirements and the IB API
- 1 day to implement connection to API (incl. testing)
- 0.5 day to build the multi-thread part to analyze up to 100 tickers (incl. testing)
- 1.5 - 2.5 days to implement level II order book (incl. testing)
- 0.5 day to implement indicator and writing to text file (incl. testing)
- 0.5 day to optimize code for speed
So please bid accordingly.
Thank you for your bids.
Please find attached the pseudo code (C#) properly indented.
Function OnBarUpdate() corresponds to steps #3 and #4. Function OnMarketDepth(MarketDepthEventArgs e) corresponds to step #2.