We receive multiple requests from readers looking to break into the finance industry. Quite often the reader is currently working in a traditional engineering job and looking to make a career switch.
The question we often hear is “How does an engineer become a quantitative finance geek?”
To answer this question we decided to ask someone who recently made the switch–Kris Longmore at newly formed Robotwealth.com.
Kris spent over a decade as a professional engineer before changing tacks and moving into finance on a full-time basis. Along the way he was a proprietary trader, a hedge fund quant, and a freelance researcher and developer. Now, he divides his time between institutional-focused quant consulting with Quantify Partners and working with DIY algo traders at Robotwealth.com.
Question and Answer is below:
Q: Kris, can you briefly tell us about your background?
A: Sure. I spent over ten years as an engineer before getting into finance. My engineering career was a nice balance between geeky stuff like developing computer simulations of environmental processes and fun hands-on stuff, like building environmental monitoring systems in remote parts of Australia.
I didn’t just wake up one day and decide to be an algo trader. Actually, it took several years of effort before I found even a basic measure of algo trading success. Several years seems like (and is) a long time to spend on something without getting much reward for the effort! A lot of that time was used pursuing ideas and approaches that turned out to be dead ends. More than once, I invested several months developing a trading strategy, only to painfully learn that the approach I was using was fundamentally flawed. This was incredibly frustrating. A big part of the problem was that I was learning and researching in a vacuum. I didn’t know any algo traders; I didn’t even know a single person involved in the markets in a professional way. And rather than seeking out help, I isolated myself, learning from first principles or through independent research and investigation. This was far from the best approach. I did get some help from a number of very useful books and papers, however even working out which ones are worth pursuing from the immense body of work that exists is a gargantuan task. Once I finally found a way forward, I realized how much time I could have saved if I had had a mentor, a teacher, or a community back in those early days.
Q: How did you get into trading as an engineer?
A: I had an extremely humble introduction to trading. Many years ago, a friend introduced me to a simple indicator-based trading strategy he had landed on. Not content with assurances that the strategy worked, but intrigued by the possibility of windfall profits, I painstakingly back-tested its historical performance by manually recording trade entry and exit prices from historical price data and recording the results in a spreadsheet. I suppose my engineering background motivated me to seek some evidence for the strategy’s alleged success. The process took several weekends and at the end of it all I was a little deflated to conclude that the strategy was not very useful, even before transaction costs and execution issues were taken into account.
Q: Did the system work out? What did you do next?
A: Well I certainly didn’t make any money from that system! But despite its less than stellar performance, I was completely hooked on trading. I saw it as an immense challenge that I just couldn’t leave alone. I also realised that the multi-week process I had just performed was neither an efficient, scalable nor particularly accurate method of conducting strategy research. I needed a better approach if I was going to succeed.
It was obvious that I would never be able to algo trade seriously without putting my ideas into code and harnessing the power of computers. So I learned to test my ideas using computer simulations. I started coding with VBA, which I knew from my engineering career, before moving on to R, C, and recently, Python. Learning to program was by no means a trivial endeavour, but it was well worth the investment in time and effort, and I continue to invest time and effort into improving my skills. It is also surprising how much you can do just by learning the basics. I can’t emphasize enough how awesome it is to just dive in and start writing even basic code. The benefits also spilled over to other areas of my work and life. For example, in my parallel engineering career, I was able to write my own simulations, rather than relying on tools built by others, and go deeper with statistical analysis. In my personal life, I can automate the tracking of my physical training metrics as well as the family budget. These are trivial examples, but even rudimentary programming skills can have a huge benefit in different parts of one’s life.
Q: So did learning how to program solve all your problems?
A: Learning to program is just one of the pre-requisites for successful algo trading. In a lot of ways, it’s the easiest part of the whole process. Even more important (and much more difficult) than using the tools themselves is the ability to use them in such a way that the results of research are meaningful and not spurious. This in my opinion is really the key to building a successful trading model and it speaks to two main obstacles: curve fitting and data mining bias. Dealing with these aspects of strategy development is not trivial and typically takes up the majority of the strategy development effort. In my experience, these are the big ones, but you also need to be cognizant of sample size, data snooping, economic reality, and using an appropriate granularity of market data. All this before you even consider the accuracy of your simulation platform, which is of course critical. Interestingly, despite the apparent complexity, often the best systems are relatively simple, at least in terms of their trade entry and exit criteria.
Clearly, there is a lot to consider and the process isn’t easy. There is a nice upside to learning to build and test trading systems though. Even if you never build a system that you bring to market, you will learn research skills and gain knowledge that are immensely useful in other areas. You’ll get really good at statistics, which is much more beneficial than it sounds on the surface. Having a good working knowledge of statistics, inference and bias makes you a better critical thinker and objective decision maker. Funnily enough, you even start to recognise your own biases and preconceptions in a starker light, so you actually get to know yourself better. In addition to those very human impacts, pursuing algo trading will probably make you quite a decent data scientist, one that has relatively rare skills in analysis of non-stationary time series data. Many ‘classical’ modelling tasks or data science problems will seem much simpler in comparison.
Q: What programming tools do you recommend for people getting started with quantitative finance?
I really want to say Python since it is such an accessible and useful general purpose programming language and is being used more and more widely in professional practice. But in reality, I believe that beginners will go further faster if they start elsewhere, returning to Python when they’ve got some programming skills and experience behind them. The reason is that although Python is incredibly useful, it is non-trivial to write strategy back-tests, particularly the non-vectorized kind. And there aren’t a lot of options when it comes to simple, efficient, user-friendly Python-based back-testing frameworks to help you out (the Quantopian platform is something of an exception, and is definitely worth checking out). This isn’t a problem for experienced quants because they can write their own simulation frameworks, but it is a problem for newbies who may not be aware of the intricacies and practical considerations of such a task. It is a significant barrier to success.
In my opinion, what is really useful when starting out is a high-quality simulation environment supported by a community of users. Preferably one that was designed for accurate and efficient trading research, and ideally taking care of such traps as look-ahead bias, execution modelling and transaction costs. Such an environment should be simple to learn, enabling the practitioner to focus on strategy development rather than the multitude of practical issues that arise with writing trading simulations. Of course, it must provide timely, accurate feedback about trading ideas. I haven’t seen too many platforms that meet these criteria, but there is a little known tool that comes very close and which I absolutely recommend for beginners: the Zorro Trading Automation platform. Despite its austere appearance, this tool enables super-fast prototyping of trading ideas and accurate tick-by-tick simulations. Code is written in Lite-C, which is an incredibly gentle introduction to programming, and facilitates progression into more complex languages like Python or even C++. It’s a great place to start in order to get up and running with algo trading quickly. As with any platform, it does have its limitations, but beginners won’t come up against these for some time. Beginners will make meaningful progress quickly.
Q: Can you recommend any learning resources for newbies?
There are many good beginner programming courses available for free on platforms such as Coursera. You will be surprised at how quickly you can start writing code that not only works, but is useful in some way. You’ll also want to brush up on your statistics and math. If you didn’t study these subjects at college, start simple and see how far you can go. Again, there is a lot of high quality, freely available material related to these subjects online these days. Coursera is a good place to start.
A little more discretion is required when recommending learning resources related to finance. No single resource provides anything like a key to success, but there are a number of very useful resources that can be used as starting points. I recently published a blog article about the books and papers that I’ve found particularly useful. For beginners, I particularly like Ernie Chan’s two books (Quantitative Trading and Algorithmic Trading) because they describe some important practical considerations and give a good overview of several real market inefficiencies and how to approach them from a trading perspective. Ernie’s code is mostly published in MATLAB, but it isn’t difficult to understand and translate to other languages. David Aronson’s material is also a useful introduction to the statistical biases that are typically encountered in trading research. It is very difficult to be successful in this game without understanding these concepts, and Aronson’s overview is a great place to start. Lately I’ve also become a fan of Yves Hilpisch, author of a number of books about using Python for quantitative finance.
Quantopian also provides a lecture series on algorithmic trading using their online, Python-based research environment. Even if you don’t know any Python, it is helpful to run through this material. It has a theoretical focus, but provides a good overview of the sorts of issues that need to be considered in building algorithmic trading systems. There is also a strong and growing user base and active online and offline community. I would definitely consider signing up and getting involved.
Of course, I recommend my own course on using the Zorro Automation Platform for efficient and robust strategy development.
Q: What are the top 5 things you wish you’d known when you started learning about quantitative investing?
- The importance of doing my own research, compiling my own evidence and arriving at my own conclusions rather than accepting assumptions about market behaviour that I’d read about elsewhere.
- Which programming language to start with and why.
- How to deal with data mining bias effectively and efficiently.
- The importance of keeping high-quality documentation about my research.
- How to construct portfolios and the assumptions that underpin the various approaches.
Q: How do you recommend quant newbies spend their time?
A: I’m going to go out on a limb here and talk about some non-technical areas that I feel are fundamental to success. My own journey reiterated to me just how precious a commodity our time is, particularly when the pressures of work and career are compounded by the desire to spend quality time with family or pursuing other meaningful past times. It is therefore extremely important to learn some fundamental non-technical skills that enable the whole learning process: how to learn effectively, how to research, how to stay on point before going too far down the rabbit hole, how to leverage the knowledge, skills and tools of others so that you don’t end up reinventing the wheel (which is something I have been extremely guilty of). I recommend that newbies seek out others who do what they want to do. Just reach out to people and see where it goes. Join meet-up groups for programming and algo trading. Surround yourself with people you can talk to about this stuff. While I do recommend learning from others, it is also incredibly important to be discerning in who you learn from. Trust and relationships are important. Don’t rush into anything when it comes to spending money on financial products or services.
While collaboration is incredibly important, it is more important to question everything. Don’t assume other people are right without verifying their claims. When it comes to trading, opinions or claims are generally at best correct for a certain period of time or a certain set of circumstances. The markets don’t work on absolutes. Develop a mindset of seeking your own answers, making as few assumptions as possible, testing the assumptions you do make and relying on evidence rather than opinion. My Eureka moment with algo trading came when I stopped trying to force my models to conform to how I’d read the markets should behave, instead coming up with my own models of market behaviour based on the evidence I’d collected myself.
If you currently don’t do any programming, start learning right now. While this isn’t the only prerequisite, it’s a great place to start because you can learn about math, statistics, finance and simulation in parallel. For example, once you know the basics of programming, you might choose to do a computational statistics course that helps you kill two birds with one stone. As soon as you have the skills to do so, start putting your trading ideas into code. Run simulations and analyse (very critically) the results. Don’t wait until you feel like an expert to start writing trading strategies. Just dive in and learn from your mistakes. You can’t lose money by running simulations, and you will learn more by doing than you will by reading about it.
Q: Our firm mission is to empower investors through education. Sounds like you have a similar ethos?
A: Absolutely. This is something that I am very passionate about. At the moment, I spend a lot of my time either teaching or working on systems for other people. I’ve been asked a few times why I don’t just sit back and trade. Ignoring the fact that you don’t just ‘sit back’ and let the algos do their thing (proper oversight can be like a full time job, depending on your trade frequency, and there will always be bugs and infrastructure issues to stay on top of), I don’t want trading to be the sum total of what I do. I am a problem solver at heart, and I love working on interesting and challenging research and development projects. I also love teaching and mentoring, which provides an enormous amount of personal satisfaction that I simply don’t get from trading alone. Further, my early experiences of learning algo trading in a vacuum have really instilled in me a deep belief in the power of community and knowledge sharing.
Community and knowledge sharing is ultimately about empowerment, and financial empowerment is a big deal here in Australia (as I’m sure it is elsewhere, too). We have a superannuation (retirement fund) industry that is worth billions in annual management fees, yet the majority of funds consistently return less than stellar performance. As an example, for the June 2016 quarter, the average return of these funds was 2.8%, compared with a return of 3.0% for the local benchmark. (ASFA, 2016). We pay billions in fees for this sort of performance and retirees depend on these returns for their livelihoods. A huge part of Australia’s wealth is tied up in this industry (the rest is tied up in property, but that’s a story for another time).
Why do we pay someone to under-perform the benchmark? Mostly because we don’t know any better. And why don’t we know any better? I think it is because, as a rule, the funds management industry is fairly secretive about what it does. It’s not really open to outsiders. The top performers probably don’t want to give away their secret sauce (and the cynical part of me suspects that many others are content to hide their lack of sophistication). But I don’t think it needs to be this way, at least for individuals. I personally don’t see the need to be super-secretive about what I do. Sure, it would be less than sensible to publicly share the details of a system that has an investment backing, but to me it makes complete sense to share a general approach. Allow me to explain.
Firstly, as individuals, we aren’t competing with each other. A great analogy that my business partner uses is that as individuals, we are like fishermen standing on the rocks casting our lines into the ocean. We aren’t competing with others doing the same thing as there is more than enough for each of us to catch a few fish. However, we are competing with the big ocean trawler that sits out past the waves and not only takes more than it probably should, but can also be extremely wasteful. Knowledge and community equates to power in competing with the trawlers.
Secondly, whenever I share some part of my approach, I invariably get something valuable in return. Sometimes it is as simple as understanding on a deeper level through articulating the concepts. Sometimes it is refinement through feedback, suggestions and ideas that would never have occurred to me. Other times it is simply a new connection with a like-minded person. Very rarely have I regretted sharing what I’ve learned with another person.
I don’t want to give the impression that I want to be the Robin Hood of the finance world. I don’t. I absolutely enjoy making money as much as the next person. I also enjoy the challenges of working in the institutional space, which are different to the DIY space. But the money is only one part of the whole story and would be kind of boring and unfulfilling on its own. I’d also love to see more DIY traders meeting their objectives, as well as a more efficient superannuation industry that returned more money to investors’ pockets. And I don’t see why I shouldn’t have some fun along the way.
Q: Any parting thoughts for those looking to break into the quantitative finance industry?
Don’t be afraid to use tools and code libraries built by others, but have a go at implementing your own functions at least once. You’ll learn a ton about programming and will understand much more deeply the algorithms that you are using. This also leads to a mindset of evidence-based decision making, which is essential for success.
Finally, I know it is clichéd, but have fun with this stuff. No matter what skill level you are currently at, diving into quantitative finance will open up new worlds of knowledge and present constant challenges. If you can approach it with a sense of awe, and you can’t help but have fun. I think that if you’re not enjoying the process, then you could probably improve your approach.
I hope this article provided some insights into a few things I learned so far in my algo trading journey. Algo trading is an incredibly interesting, stimulating and rewarding past time. It is also difficult and can be isolating. If my approach resonates with you, consider checking out robotwealth.com and signing up for email updates. We have some exciting plans in the works.
Thanks, Kris. We hope your experience is useful for other folks who’d like to get into the quantitative finance realm. We have an intro page on our blog that can be useful for those looking to get started.
The Association of Superannuation Funds of Australia (ASFA), 2016. Superannuation Statistics, September 2016.