August 5th, 2012, 9:42 pm
QuoteOriginally posted by: vincegataHello,I've started writing a system for full auto or semi auto trading. Currently my system is trading in Forex but it can be adapted for equities. I am using C++ on Ubuntu. I am good with C++ but this is the first time I am writing trading software hence I'd like to know if I've made the right architectural decisions. My main source of information are books by Richard Stevens on programming in Unix environment.Could someone recommend me a book, papers, or point me to some source of information on writing such system using C++, preferably on Linux/UNIX platform. I've looked so far at source code of QuickFix and Marketcetera, both seems bloated. Marketcetera is also written in Java but I am looking for C++ code. Briefly my system consists of two executables:system1 is a multitreaded app that:thread1: monitors socket to download ticks in real time.thread2: processes ticks to generate buy/sell signals, places new_order_message to FIFO (named pipe) to be read by system2, saves orders.thread3: monitors FIFO for order confirmation messages from system2.system2 is pretty much a FIX engine that is a single threaded app that:monitors socket for a new FIX messages from a broker, if order confirmation arrived place it into FIFO to be read by system1.monitors FIFO for new orders from system1, if a new_order_message arrived convert it into FIX format and send to broker. Thank you.This looks like a data and event-driven tracking application which is well known area in general. On Windows, Microsoft's PPL and Intel's TBB libs should provide a lot of the plumbing. I reckon you should be able to get a prototype running in a few days.Don't know what Linux offers in this area. In general, I think ACE and Stevens are more suitable for network (byte-level) programming?What is the level of fault tolerance? Can you lose packets? Last but not least, you need a good design and a modern version of Command is a good start.
Last edited by
Cuchulainn on August 5th, 2012, 10:00 pm, edited 1 time in total.