Ask HN: How to learn about automated trading systems?
I've been reading up on automated trading systems and high frequency trading, and it seems like some pretty interesting stuff. I'd like to get started coding things like that, but don't really know where to start. Does anyone know of:
- Small (to start with) coding projects I can udnertake to start learning the ropes -- I'm already familiar with UNIX programming, kqueue, the tanenbaum books, etc.
- Where to find information about what the exchanges provide for automated trading -- I'm familiar with the basics of the market, different types of orders, efficiency/no arbitrage
- And finally, something I can use along with those coding projects to get my feet wet quickly! Perhaps some sort of simulation, or a brokerage that lets individual clients use tradingbots easily?
Thanks!
7 comments
[ 2.9 ms ] story [ 41.5 ms ] threadI've also been looking at the BATS exchange: http://www.batstrading.com/home/ . I don't know how feasible it is to get an account with them. http://www.batstrading.com/membership/
There are various open source and cheap commercial platforms you can take a look at. The simple open source trading platforms are ActiveQuant (java) and TradeLink (c#). There is also MarketCetera (java), which is a professional platform, but most retailers don't find it very attractive, because they only provide a generic FIX adapter and a base market data feed adapter which needs to be extended for your specific needs (there is also no backtesting, proper data storage). There are a few commercial solutions targeted at retailers, such as NinjaTrader (free for sim-mode with free futures tick/historical data), OpenQuant, and AmiBroker. These aren't appropriate for complex high frequency strategies, but you'll get some good experience coding strategies immediately to gain some experience instead of having to tinker with the infrastructure.
All that being said, it's difficult to break into the high frequency and statarb space if you're just beginning. People always assume it's just a technology problem, but you'll soon enough find out it's not ;) So, I'd suggest that you take it a bit slower and work your way up from daily data trading to intraday to high frequency, a journey that will surely take some time and keep you challenged along the way.
I'm a CS guy by schooling and got started in the industry a few years ago. For me, trading is a very challenging, but extremely fun and rewarding. The markets are so dynamic that you'll constantly be going through the R&D cycle and you get to use all that CS/Math theory you learned, instead of hammering out generic run of the mill code like you do at a lot of jobs these days.
If you want to chat a bit more, let me know.
In terms of keeping up with the community, zerohedge.com provides valuable advice and recently provided the full PDF of 'an introduction to high-frequency finance'.
In terms of low latency architecture and platforms, check the docs for Red Hat's MRG, SuSE's SLIRT, and highscalability.com. You'll find most of your Unix knowledge is tied towards performance rather than determinism, and you'll need to re-learn a lot of your knowledge and delve deeper into strace and systemtap.