The best coding languages to learn for traders in banks, hedge funds and HFT firms

Trading has changed a lot. In the past pit traders had to have a loud voice, sharp elbows, and the ability to do arithmetical calculations in their heads at lightning speed; perhaps with some help from a prehistoric handheld calculator. Geeks were not welcome.

Things are very different today. The trading floors have mostly been replaced by virtual exchanges, and many of the traders have been superseded by black box algorithims.

So is it still possible for a technophobe to work in trading, or is an expertise in at least one programming language absolutely necessary?

The answer depends mostly on what type of trading you are doing. Thanks to the Volcker Rule, proprietary ('prop') trading on the sell-side (ie. in investment banks) is a thing of the past, so sell-side traders are engaged in market making or dealing with client flow. In most asset classes market making is entirely automated. Fewer traders are required, and most of those that are left will be writing code. Here speed is of the essence, and only languages like C++ and perhaps Java are fast enough.

The pricing and hedging of client deals is still done by actual people in most banks, but it depends on the sophistication of the underlying product. More exotic instruments still require the human touch. Valuations of highly bespoke trades are likely to be done in hastily constructed spreadsheets. A good working knowledge of the Visual Basic that underpins many of these spreadsheets is more useful here than a Phd in software engineering.

Meanwhile on the buy-side traders can broadly be divided into three categories: quantitative strategy traders, execution traders, and high frequency traders.

Traders developing quantitative strategies may be employed on the 'buy-side' by hedge funds or more traditional asset managers, and their role blurs into that of quantitative portfolio managers. Their job is to design strategies that will trade systematically (ie. using computer models, with minimal human intervention.) Coding skills are vital here to comb through large amounts of data and to create prototype strategies for testing new ideas.

Python is the preferred language of many quantitative traders because of the extensive availability of packages for data analysis, like SciPy and Pandas. R is also popular as it’s the default used for statistical analysis in many university courses. With such good open source languages around, commercial alternatives like Matlab are no longer in vogue.

Execution traders on the buy-side have the job of implementing the portfolio rebalancing decisions made by quantitative strategies or old fashioned portfolio managers. They achieve this in several different ways: by outsourcing to third party execution algorithms (algos) provided by banks, developing their own algos, or by manual trading (which still outperforms algos in certain markets). The coding skillset needed to develop your own algos overlaps with that of buy side market makers.

In any case, where multiple routes to market are used in house execution desks will need to constantly evaluate the efficacy of each algo or warm-blooded human trader. This requires data analysis and coding skills very much like those of quantitative traders.

Lastly, high frequency traders have a similar job to other quantitative traders, but at much shorter time horizons. This means they’re dealing with very large data sets. Here. familiarity with the Hadoop ecosystem becomes vitally important. Python is still popular in high frequency trading (HFT), but newer languages like Go are better suited for concurrent processing of big data sets.

Once a strategy is created then as a high frequency trader you are dealing in very short time scales, and minimising latency is key. As with buy side market makers C++ is probably the only high level language that’s quick enough, but to get a real edge you will probably need to dive down into assembly language and have a deep understanding of computer networks and hardware.

However, if you’ve only got time to learn one programming language then Python is probably the most versatile. As it’s widely used in other industries it also makes a great plan B if you never make it as a trader. - And there are plenty of those.

Robert Carver has worked on the sell side - as an options trader - and on the buy side: he is a former head of fixed income at quantitative hedge fund AHL, and the author of 'Systematic Trading' and 'Smart Portfolios'. He still owns a handheld HP17B calculator.

Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)