Continuing on the theme of my last post, I want to take some time to dig into the options you have when you think about doing your own testing and homework in the markets. This post will necessarily be opinionated and a bit narrow, because I’m sharing my own experiences and perspectives. I’m sure many of you have very different experiences, so please feel free to share them in the comments. (And, if you’re finding this post a while after it was posted, do check out the comments. It’s no unusual to find my readers writing better comments than my posts!)
So, let’s assume we’re agreed that you need to be doing some kind of quantitative testing and analysis in your trading, and that you’re comfortable with the very high level outline I shared in this post of get data, define condition, and see what happens after that condition is fulfilled. We have a couple thorny issues (where to get data and how to clean it, how to define conditions, what can be defined, etc.), but we can return to them later. Let’s keep our eye on the big picture, for now. If you want to think about conditions and results and work to understand the probabilities in the market, I think there are a few ways to do so, in roughly ascending order of complexity:
- Just look at data, trade, and start to “get a feel”. Many of us start here, and it’s probably an important part of the learning curve. (In fact, if you start from a more quantitative perspective, I think you will need to come back to this stage and just experience “being in the market” for a bit. Trading wisdom is earned by exposure to market conditions and fluctuating P&L.) It’s also a very unreliable place to be. Learning is haphazard and spotty. We forget things. We miss things, and we attach the wrong significance to many things. Cognitive biases (recency bias, for instance: you will remember what happened last more than earlier events) and the highly random nature of the market can give us the wrong feel.
- Do some backtesting by hand. Again, I think this is an important part of the process. The trader who comes to this level is doing some good, hard work. She has made a decision to step beyond her experiences in the market, and to drill deeper. This work can be as simple as going bar by bar through charts, or can lead to much more extensive analysis and record keeping. I also think this stage is important. Get your hands dirty with the data, and spend some time training that intuition with a deeper, more structured, look into market data. This methodology is a major part of my free trading course, and is certainly worth a tremendous amount of your time and energy. However, we’re still limited in what we can do. Maybe you can look at a few hundred or a few thousand events, but cognitive biases, limited time and attention, and a number of other factors work against you. At some point, you’ll need to go deeper.
- Third party trading/analysis software. Most people spend some time here. Software solutions range from overly simplistic, retail-oriented to very expensive institutional frameworks (that can easily cost well into six figures.) Here, we’re able to define a set of conditions, and see what would have happened historically. These tools become much more powerful, and the trader who crosses from doing work by hand into the this area often feels overwhelmed with possibilities. Be careful. That’s my best advice here: be careful. It’s not as easy as you think, and most of the retail-level platforms don’t allow you to do proper testing. In particular, “optimization” as presented in many of these platforms is very dangerous and can lead you to completely incorrect conclusions. My personal experience (and I stress that point–this is simply my personal experience) is that most retail-level platforms are inadequate for serious system development, unless you use them as a piece of a more extensive infrastructure (as in spitting out signals or orders to a deeper analytical package.)
- More advanced software/writing your own. Here is where I think we start to get into the truly powerful tools. Microsoft Excel belongs in this category, but it’s definitely a double-edged sword–while you can do very complex analyses in Excel, especially when combined with VBA, it’s not the best tool. (More on that in a future post.) There are a number of commercial tools you might have encountered in other contexts that can be very useful for doing market analysis; think of MATLAB, SPSS, SAS, and Stata–standard statistical packages. (Of course, the big commercial trading infrastructure/analysis packages go here too, but if you’re reading this they probably don’t fit your needs or budget very well.) If you’re willing to put in the work and learn to code, writing your own software might be the best option.
This table is simpler than it appears. I’m basically suggesting that the progression starts with doing some tabular work by hand, maybe moving through a phase of using some common tools (and there are more and more of these out there), and ending with you creating your own software package. The last stop of that process is a journey in itself, and requires a significant investment of time and energy in learning a “real” programming language. In my next post, I’ll talk more about that. We’ll look at some of the choices you have in choosing a language, and I’ll tell you why I think Python (and maybe R) are the right choices.
All of this is hard work, but it’s harder to imagine someone having long-term success in the market unless he understands the market. Maybe there’s another path, but, to me, the only path that makes sense is doing your own work to understand the market, creating and trading that plan, and then monitoring your results for needed course corrections. It might not be easy (it’s not!), but it’s worth it in the end.