When a Microsecond Is an Eternity: High Performance Trading Systems in C++

Play When a Microsecond Is an Eternity: High Performance Trading Systems in C++
Sign in to queue


Automated trading involves submitting electronic orders rapidly when opportunities arise. But it’s harder than it seems: either your system is the fastest and you make the trade, or you get nothing. This is a considerable challenge for any C++ developer - the critical path is only a fraction of the total codebase, it is invoked infrequently and unpredictably, yet must execute quickly and without delay. Unfortunately we can’t rely on the help of compilers, operating systems and standard hardware, as they typically aim for maximum throughput and fairness across all processes. This talk describes how successful low latency trading systems can be developed in C++, demonstrating common coding techniques used to reduce execution times. While automated trading is used as the motivation for this talk, the topics discussed are equally valid to other domains such as game development and soft real-time processing.



Session Type:






Right click to download this episode

Download captions

The Discussion

  • User profile image

    Has replacing the general purpose operating system (e.g. Linux) with a realtime operating system (e.g. FreeRTOS, QNX, VxWorks) been considered? It could help to address some of the issues around task priority, CPU affinity and exclusivity, system calls, background tasks to be performed when time is available and so on.

  • User profile image

    Very interesting talk but why don't go even to lower lever and code in FPGA directly with verilog? As far as I know, there are already companies beating financial markets doing this.

Add Your 2 Cents