A Performance Analysis of a Simple Trading System
Jason McGuiness，a contract programmer in C++ on Linux. The 15 years experience spans: from a nuclear physicist to programming prototype super-computers, but now in finance; focussing on low-latency and HFT software, their architectures and the issues arising from them. I am also actively involved with the ISO/UK C++ Panel and the ACCU to maintain my skill-set.
High-Frequency Trading (HFT) and low-latency trading are a major preserve of C++. The fact that it is amenable to extensive optimisation, including micro-optimisations, has made C++ highly effective. Moreover C++ can be very low-level to these micro-optimisations can make use of the specific machine architecture. Also the impact the O/S upon such performance-critical systems will be investigated.
This updated talk has results from some of the latest versions of G++ and Clang on Gentoo!
This talk shall investigate the use of micro-optimisations, initially via the generated assembly from versions of g++, clang and icc, then the performance of the micro-benchmarks will be investigated. These micro-optimisations will be brought together into a simple yet extremely fast FIX-to-MIT/BIT trading system for which various factors that could affect the performance shall be presented. Initially the impact of the compiler shall be analysed then affect of the O/S upon the performance of this trading system (with surprising and hopefully informative results!), followed by the affect of changing hardware. Finally the impact of the mitigations for Spectre and Meltdown shall be investigated with respect to various O/Ses - which may appear to contradict the currently-propounded beliefs of some major organisations.
The conclusion shall extract considerations that I consider key to the development of highly micro-optimised software.
Speeding up Python and working with larger datasets
Saeed Amen,the founder of Cuemacro. Over the past fifteen years, Saeed Amen has developed systematic trading strategies at major investment banks including Lehman Brothers and Nomura. He is also the author of Trading Thalesians: What the ancient world can teach us about trading today (Palgrave Macmillan) and is the coauthor of The Book of Alternative Data(Wiley), due in 2020. Through Cuemacro, he now consults and publishes research for clients in the area of systematic trading. He has developed many Python libraries including finmarketpy and tcapy for transaction cost analysis. His clients have included major quant funds and data companies such as Bloomberg. He has presented his work at many conferences and institutions which include the ECB, IMF, Bank of England and Federal Reserve Board. He is also a visiting lecturer at Queen Mary University of London and a co-founder of the Thalesians.
Execution time in Python tends to be slower than for other languages. However, there are ways we can speed up Python code. In this talk, we'll discuss some of the techniques/libraries you can use to speed up numerical based calculations in Python, and some tools that can be used to parallelize the computation.