Interview with Andreas Clenow | Veteran Hedge Fund Manager | Best Selling Author
Andreas Clenow is a hedge fund manager specializing in cross asset quantitative trading as well as quant modelling and programming. Starting out as an entrepreneur in the Swedish IT business, he joined Reuters in the late 90’s where he quickly advanced to be the global head of equity and commodity quant modelling. Now based in Zurich, Switzerland, Clenow has spent the past 15 years in the hedge fund business where he has founded and managed multiple funds. Overseeing all investment management business, he is the chief investment officer of ACIES Asset Management, as well as a senior partner of the same firm.
In an exclusive interview, he discussed programming languages, system validation, risk management, and more. Clenow is the author of the international best-selling book Following the Trend as well as the new Stocks on the Move. You can reach him via his popular website, http://www.followingthetrend.com/
Kurt: What inspired you to make the transition from technical analysis to more of a quantitative approach?
Andreas: I was working in the business for some years and I realized more how the business actually works and what can be quantified and tested. I realized how to build theories, test theories, quantify and measure results and how you can actually build a science behind this. The more you work with these kind of things the more you see that a lot of the tools coming out of the retail field could be improved to put it that way. There’s a lot of things that I think the retail side would benefit from understanding the quant side and from the quant finance community. The problem is always, of course, that many of the concepts we use sound complicated. They might not be that difficult really but it might sound more complicated and it might be harder to access if you lack a degree in finance or mathematics. Terminology can be an issue. On the risk side, for instance, how retail defines risk and how the finance industry defines risk is two totally different worlds.
There’s a lot of things that I think the retail side would benefit from understanding the quant side and from the quant finance community.
Kurt: Let’s say we have a retail trader who is looking to get into the quantitative side of trading. Is there a specific programming language that you would recommend?
Andreas: It depends on what you want to do and what your background is in programming and how comfortable you are in doing those things. I would say that there’s no such thing as a best language- it’s just fit for purpose. It’s a tool and there’s no best tool in the toolbox. There are certainly some bad languages which are the ones that are very limited like a scripting language that is fit for a specific platform. That’s a bad language because it limits what you can do with it and you have a technical limitation in the language. So step one go for industry standard languages. Among those you have a few good choices. Personally I’ve been building a lot in the past ten years or so in C#. We standardized a lot of C# here, obviously that only works on the Windows platform but if you’re happy with that that’s fine. These days if you learn it from scratch and you have no problem with a bit more in-depth programming and computer knowledge then Python might be a very good choice. We do a lot of things in Python over here as well. But again there are many languages; R is a perfectly valid language and there are plenty more out there.
Kurt: I see that you have made a transition in picking up python in recent months. Was there a specific reason for choosing python?
Andreas: I started doing that mostly because I was speaking at a conference organized by Quantopian (I have no relation with the company businesswise other than that I speak at conferences) and I started getting interested. They do everything in Python and it seemed interesting enough to look into. Once I started looking into it, I was very impressed by some aspects of the language and I was very frustrated by other aspects of it. In the end, it is a good language but it would be nice if they could deal with some of the more frustrating aspects such as the total resistance to anything graphical in the python world. It’s slightly annoying but as far as computational language it is brilliant.
Kurt: Absolutely. Grace and I have been learning Python here in recent weeks so now we’re trying to pick it up ourselves. Taking it back a little bit I know you mentioned that between the retail traders and the institutional side, they take risks a little bit differently. What are some of the other differences that you see between retail traders and institutional traders?
Andreas: Before I talk about others let me just briefly touch on what I mean by the risk side because that is by far largest and most important difference between the two different groups of traders. One is a matter of how you define risk and what you mean by risk and the other is how much of it you want to take. The very big difference is how much risk you take. Most retail traders I talk to have some view that a good trader makes 50% -100% return per year. So if you make 50% return per year and you start with a hundred thousand, well, that’s great because that’s all you have to do in life. Seventeen years later you have a hundred million. Start with 100,000 and you double it in five years more or less and after five years or so you have your first million. Nobody does that and that’s a dangerous illusion and a dangerous myth out there that this is possible. There’s one thing about how much of it to take. The best in the business are making about 20% so there is really no reason for somebody to think that they can double, triple, or quadruple what the best in the world have done. The other thing is how you measure it. Risk has to do with potential variation in value over time units. I get questions sometimes about how much I risk per trade and I don’t know how to respond to that. That’s not what risk is – your distance to stop loss or something like that has nothing to do with risk. Sometimes it’s just a big gap in terminology between the two groups.
Kurt: What were some of the biggest issues you faced when first getting into building systems?
Andreas: It’s been a while. You’re making me think back to the ninety’s here. I had the advantage to begin with, that in my business school we had some pretty good tools at the time. Obviously not as good as what everybody has for free these days but we had various financial institutions giving us all the software and all of the data and that was a big advantage. My biggest issue was trying to figure out what to trade. I mean what’s the strategy and what are we trying to do here? If you don’t know what you’re trading and why, you don’t even know where to start building. That’s why most people end up just throwing together a bunch of technical indicators and hoping it works. You have to figure out first what is possible and what other people are doing. For that you have to study the business a little bit first and see what works and what other people do out there.
Kurt: So some of the biggest issues might be idea generation and overcoming that could be done by following the industry, reading books, and studying what the other experts in the field are doing?
Andreas: Yeah exactly and also of course understand what’s possible and what’s not. I think that’s something that most retail traders can really benefit from understanding – what is reality and what is being sold to them. If you understand what is possible, what other people actually do, the kind of returns and strategies done, you have a much better starting point. It’s just too much of the get rich quick sold to retail traders and it usually involves making massive amounts of money on various black box things and that’s just very far from any sort of reality.
Kurt: And I know that you’ve said that you can see that the simpler systems typically tend to be a little bit better. In order to retain the robustness in the trading system, what do you believe to be an appropriate amount of parameters to optimize?
Andreas: I don’t like to optimize to begin with. I prefer to pick a reasonable number, try the idea, change it to another reasonable number, toggle it up and down a little bit and see if it still works. If it turns out that it’s much better at 17.5 than it was 15 or 30 or whatever the number then you have a problem and you suddenly optimize. What you want to see is that you vary the parameters a bit and it doesn’t matter that much and you have something more stable. Optimization is always very dangerous. I would not recommend using any sort of computerized optimization model to find parameters. It tends to end up that you have this 17.5 number for instance which doesn’t have any predictive value and it’s just perfectly fitted to the recent past. Few parameters, of course, yes. More importantly is that they make sense and there is some sort of reasoning for this. You should be able to explain to your grandmother why this parameter is there and what it’s doing and then you might have a model. If it’s something that’s so difficult that your buddy in the business or your buddy who studied finance and has been trading for a while needs to take a few days to understand then you have an issue.
You should be able to explain to your grandmother why this parameter is there and what it’s doing…
Grace: Now I know that a lot of this information may be proprietary but could you take us through the process of creating and validating a trading system?
It all works differently at different companies. I have mostly worked at reasonably small shops where we’re all in the same building and everybody knows each other. We can work in a different way from a larger firm like AHL or something like that. Usually you start with the idea or the concept. What do you want to accomplish here or what kind of model are we trying to do and why? The reason for making a model is probably the most important thing. This is the business reason for it. There’s a demand for something or there’s an opportunity for something. And surprisingly it might even be a model that’s not specifically designed to make money. Making money is not a reason for a model of course. Hopefully it should make money but a model could also be defined to have tiny gain or be flat after fees and have a negative correlation with what you’re doing already. If you trade together with something else then you have added value by decreasing the volatility of the portfolio. Starting with that is the most important thing; what do you want to accomplish? You never start with just throwing indicators at the wall to see what sticks but rather a target. Or it could be that you see some competing product that’s doing very well; what are they doing and why? So we try to figure that out by reverse engineering it and figuring out if we can we do the same or if we can we do better and improve upon it. That is the most important thing to begin with – what are we doing? After that, you have the developer build the model and when he has great results and has backtested and all of that, a good way to validate the results is to see if we can find any bugs somewhere in the code of the model. You have him write down in text or Word document what the model is and how it works. He takes the rules to somebody else who gets to construct it from scratch using the system the other person prefers, a different language is even better, and just rebuilds it. Do we get the same results or not? If you don’t then we have a problem and we have to figure out if somebody is wrong here or something else is at work. Once you have the winners, of course, you trade it on a small scale to begin with and see if the results are matching the simulations. The most important thing usually with the test phase is not to get stellar returns but rather follow up on the walk-forward simulation and the actual realized results. Are they matching or not and if it’s not then you are going to have an issue. Then of course for us being a reasonably small organization it’s much simpler to get deployed than for large companies but more or less the same type of procedure.
Grace: What would be the biggest takeaway from your book for systematic traders? (Check out his bestselling books here.)
Andreas: It really depends on your background and what you did before. What I try to do with my books is to take something that most people in the business who work with similar things that I do already understand and I try to add a little bit of my own touch to it. The value that I add is to be the one to explain it because much of this is just not properly explained to people outside the business. So I try to simplify, explain the concept, explain the big picture, and try to put people on the right track. I never try to write something about some super model that’s going to make you enormously rich in no time. I leave it to other people who feel a need to write those kind of things. Rather, I try to explain concepts and ideas and I hope people can learn from this and help improve their own models. I have no doubt that anybody who works in the quant hedge fund industry could find things here and there that will surprise them as I try to include some of those. But the bigger picture is not going to be a surprise to anybody who spent time in quant hedge funds.
The value that I add is to be the one to explain it because much of this is just not properly explained to people outside the business.
Kurt: Having gone through this process and having started as a newer systematic trader, what advice do you have for people embarking on this journey?
Andreas: One thing is take it take it seriously. This is an actual job and there is a lot of research and there is lot of studying behind it. If something looks like a shortcut then don’t take – it’s probably not really a shortcut. Learning programming is important. Some people say that they don’t want to be a programmer, well neither do I, I’m not a programmer. I’ve been programming since I was ten years old or something like that but I can’t compete with an actual programmer and I never want to. But programming is very important so learn a proper programming language. In my view that is very much like a lawyer 50 years ago who would say that learning to type is not his business and he’s got a secretary for that. Imagine lawyers today that can’t type or use a computer; it is totally hopeless. So don’t be too good to do the proper work. And if you cannot program properly you cannot build your own things so that is the first thing. To be a systematic trader, learn a proper programming language such as C#, Python, R, C++, FORTRAN — whatever you want to build in. Then study the mathematics behind it. I’m not talking about trading books, I mean read some of those as well but read them skeptically. Study statistics and mathematics and have a critical mind of everything because this is a business where you need to question everything.
… have a critical mind of everything because this is a business where you need to question everything.
Risk Warning: The FXCM Group does not guarantee accuracy and will not accept liability for any loss or damage which arise directly or indirectly from use of or reliance on information contained within the webinars. The FXCM Group may provide general commentary which is not intended as investment advice and must not be construed as such. FX/CFD trading carries a risk of losses in excess of your deposited funds and may not be suitable for all investors. Please ensure that you fully understand the risks involved.