This post takes a slightly different format to the usual content on this site. Today, there is no tutorial or code. Instead, a discussion on whether it is possible and/or worthwhile to try and code the holy grail “set and forget” strategy. I mean the type of strategy that you can set and leave running through the ups and downs, the calm and chaos of the markets.
Personally, I believe attempting to code a strategy for all markets is a common pitfall the retail warrior can make. It is also one I find myself falling victim to from time to time. The temptation to spend hours, days, weeks and even months trying to fix a strategy that showed poor performance during a specific year or period is a strong one. After all, a year (or more) will feel like a lifetime when we are not making money. As a result, it becomes easy to discard valid strategies that work well in certain environments due to unrealistic expectations of perfection.
Don’t get me wrong, I am not saying that it is impossible to code a strategy that is consistently profitable over a long time horizon. However, I do believe developing such a strategy is very much the exception rather than the norm. The few strategies that can be consistently profitable day after day, month after month and year after year usually have a high-cost barrier to entry (e.g HFT) or are the fruit of a huge teams labour (e.g an Institution with many skilled researchers).
Marginal Revenue vs Marginal Cost
As individual retail traders, we have limited resources at our disposal. We need to allocate our resources aka “time” wisely. If we think about our trading as a business (and we really should), we should recognize that our development time has both a labour cost and an opportunity cost associated with it (the cost of missing out on other things you could be doing). In economics 101, we learn that when a company is deciding how many “goods” to produce, it will compare the additional revenue that can be obtained from producing one more unit against the additional cost required to make that additional unit. These terms are known as Marginal Revenue and Marginal Cost. Generally, a company will continue to produce additional units of goods until
marginal revenue == marginal cost. If the company produces just one unit more, it would lose money by producing it.
When written from a manufacturers perspective, it seems obvious that does not make economic sense to produce something where the costs outweigh the benefits. Yet, this is something we often do! One of the reasons for this is that it can often be hard to quantify the true cost of our time.
Focus on Utility
First of all, let me clarify. I am not suggesting that everything you do MUST provide you with a financial reward. However, it should at least provide some type of utility (another economics 101 term for a benefit, enjoyment etc). As such, I think it makes sense to regularly pause for thought and ask yourself whether you are really getting equal or more utility from your efforts than it is costing you. Are you getting an education? Are you on the verge of discovering something that will give you satisfaction/recognition? Is spending more time resulting in better returns? Are you enjoying the process or pulling your hair out? If you are not getting any utility from your efforts, make a note of what the strategy did well (and under what conditions) then move onto something else. Try and different strategy or learn something new!
Don’t be afraid of a little discretion
I know “discretion” can be a bit of a dirty word in systematic and algorithmic trading. After all, we are often trying to eliminate the pitfalls of human psychology and fatigue. However, we have to acknowledge that our time is finite. Attempting to automate every last possible decision in complex, interrelated markets driven by speculation, expectation, news and fundamentals is not achievable for most of us. Especially for those of us with day jobs, family or other commitments. Instead, it might be better to focus using our computers/algorithms as an aid and not a crutch. If we can identify the current market regime/trend, then deploying one of our algos that worked well under those conditions should lead to better results. After all, it is much easier to create a profitable strategy for a specific market regime/trend.
Sure, if you follow this advice, you won’t be able to turn on your computer and make wads of cash while sipping 20-year-old malt whiskey. But why should we expect to? The markets are dynamic and ever-evolving and so must we be too!