So you want to develop an automated trading system. No problem, you’ve noticed every time S&P goes up, the Russell 2000 should not be far behind (strategy used for example, please don’t go trying this). Here again, most people I know get started with seeing the phenomena in TWS, and deciding they want to automate the process. Now you fire up visual studio, create a swiss army knife C# console application and include my C# Interactive Brokers library. Seems easy enough, bind to data update events for S&P and Russell 2000, keep a local state variable of the inside prices of each, and when the calculated spread between them moves up or down, buy or sell the other leg.
Believe it or not – it is this simple, and is how I suggest most developers get started. You really need to see your automated widget trade sooner than later. The longer you live in development hell, the longer it is before you understand what your system need to do. The key to your first automated trader is to make it as simple as possible. Do not try to start off with an interface abstracted, general purpose strategy engine; instead build as simple an engine that trades every day, and recognize the common challenges / design patterns required as you develop.
My next series of articles will cover the architecture of a monolithic strategy engine, but I do not want to preach this as the solution to everyone’s needs. Keep it Simple Stupid.