The best coding languages for trading algorithms: Python, C++, Javascript?
If you want to get a job in systematic trading, two coding languages have long been the key: Python and C++, but a new and non-scientific study of languages used to write open source trading algorithms suggests there's another possibility: Javascript.
Richard Hickling, a former software engineer at Bank of America, BNP Paribas, Barclays and elsewhere who now runs crypto analytics firm ProfitView, has looked at the most popular algorithmic trading projects on Github. Javascript is the second most popular language in Hickling's sample.
Hickling doesn't claim any scientific rigour, but he did have a method for selecting the Github repositories in his 35 repo sample: first he looked at the repos popular with algo traders and quants; then he used stars to work out which other repos were popular; then he ranked them by popularity.
Javascript can be very fast when running server-side as node.js, says Hickling. It's not as fast as C++ but it's still passably fast for medium-frequency trading algorithms applications. "It's ascended rapidly in the ranks over the past few years," he reflects.
Python still dominates, though, and C++ is still seen as the gold standard for trading programs. "With Python, if you have an idea, you can just sit down and test it in the space of a few minutes," says Hickling. "But for really large projects, Python doesn't have that much advantage because at scale, you have to put lots of controls on your architecture that become cumbersome with Python."
The problem with C++ is always that it's very hard to write says Hickling. "It takes much more effort than Python. C++'s value is that it is both expressive and high performance_. There's few languages that rival it in that way." For this reason, Hickling says you don't broach a C++ project without plenty of thought and ample resources.
Could Javascript provide an alternative? Vaccum Labs, a software company providing services to the fintech industry, says Node.js is faster than a lot of people think and is "certainly much faster" than Python, making it ideal for trading prototypes in areas like crypto market making.
One senior banking technologist says it won't catch on in mainstream finance. "I've heard of people using Node.js for the entire back end trading platform as smaller places, but it's just not performant enough for front office applications," he says. "I'd be amazed if anyone's using it for latency sensitive algorithms." Another says Javacript is used for front end GUIs, not trading applications.
Have a confidential story, tip, or comment you’d like to share? Contact: sbutcher@efinancialcareers.com in the first instance. Whatsapp/Signal/Telegram also available (Telegram: @SarahButcher)
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.)
Photo by Braden Collum on Unsplash