Research Article #39 - Achieving 1,328% Returns While Decreasing the Volatility of a Simple Trading Model
A practical look into volatility targeting
👋 Hey there, Pedma here! Welcome to the 🔒 exclusive subscriber edition 🔒 of Trading Research Hub’s Newsletter. Each week, I release a new research article with a trading strategy, its code, and much more.
Join over 5K+ readers of the newsletter!
Do you remember last week’s research article #38, with that nasty -70% drawdown?
Well… today we come back to it.
We couldn’t just leave it like that ain’t it? We will be going through, in detail, the techniques to reduce the overall volatility of the strategy, while keeping the model robust, with the aim of achieving a better risk adjusted return profile for our model!
If you’re interested in a sneak peak of what was achieved by the end of today’s article, here’s a preview of the results for a moderate risk target of volatility!
Best trade of the model:
We’ve achieved really decent results for much lower risk and volatility.
You may be wondering why would you trade the same model, but with lesser returns than the model shared in article #38?
There’s a few reasons for that and we will look into them today!
First and foremost, I’d like to say that I am always seeking to get better at writing these articles.
I am not a writer as you may have noticed, and so it’s a constant battle, personally, learning to write effectively, while also focusing on the research side as that I do.
Today’s article is one of those that, I am really proud about the improvements I’ve added. It has bunch more features, more details, more content so that you can understand what’s going on behind the scenes and apply it to your own work.
There’s a lot more to improve and to expand on, that I will be adding into future articles. This will be an ever growing project, and I am here to share all the details and code with you, the reader.
Going forward I will establish this new structure of sharing research so that is always streamlined for you the reader.
Let’s get into today’s article!
Index
Introduction
Index
Strategy’s Thesis
Adjusting for Volatility
Adding Short Positions
Parameter Settings Overview
Long-Only Model Performance Analysis
Edge Effect in U.S. Equities
Strategy’s Performance and Results
Different Volatility Targets
Conclusion
Python Code Section
Strategy’s Thesis
In last week´s article, we went through the simple basic theory, on what the SMA crossover model is based upon.
In essence, we are getting exposure to the trend factor in the market, and by getting that exposure, we aim to capture the returns inherent from the long-term positive skew, in the return distribution of our model.
That is the basic assumption of our model. We expect that trends will emerge somewhere, and that our trend signals allow us to get exposure to those trends so that we can capture this underlying driver of returns.
There was a problem though. The strategy was highly volatile by itself.
And that makes sense.
Just as a reminder, here’s the equity curve of the strategy shared on Research Article #38:
A maximum drawdown of 70% is not acceptable by anyone’s standards in my opinion. Even though the returns are great compared to the market, it’s still a massive liability to have on our books a strategy that can produce 70% or more drawdown.
Adjusting for Volatility
In the previous article, we did not adjust our position sizing based on the volatility of the asset. This means that, higher volatility assets contributed far more to the overall volatility of our equity curve, than lower volatility assets. This is not acceptable because we shouldn’t allocate different weights to different assets that generated trades from the same signal.
Just because an asset has higher volatility, it doesn’t add any relevant information to the signal. And if it doesn’t mean anything, we shouldn’t be allocating more weight to that signal than we will be allocating to any other signal. So the purpose of the volatility targeting is to keep our models in line.
We will get deeper into this topic in following articles, once we start adjusting for volatility, positions that get too much out of balance with what they should be, during a trade.
For today’s article, we will stick to adjusting position size to the volatility at the start of a new trade.
How do we adjust for volatility? There’s many trains of thought for this matter but I like 2 of them:
Adding Stop losses
By adding a stop loss, you can adjust the position size based on the distance from entry to that stop loss right? This means that you’re adjusting your position size based on volatility. If distances are higher in %, than you’ll have a smaller position size and vice versa.
Volatility Targeting
We can target a specific volatility of our portfolio,. depending on our own unique ability to stomach portfolio volatility, given a certain assumption of volatility. Volatility is one of the few things that can be forecasted quite decently in markets. But volatility forecast won’t be the scope of today’s article.
Adding Short Positions
We did not add any short positions to our models in today’s article. Even though my experience with shorting, and trend/momentum models, is that it is hard to do when trading “up-only” markets, like crypto or even U.S. equities, I still want to look into it in future articles.
It’s really hard to get a systematic short strategy to work, when the overall market has been trading up since inception.
Yes many will claim to have short strategies, but in reality none of them will show you real live results of these strategies working. However I do think that adding short strategies into a model act almost as an insurance you pay into the future when bad times come around. Most of the time you will be paying that premium, but if you need it some day, it will be there to take advantage of negative regimes.
Now, this doesn’t mean that short strategies in all situations are useless. I am referring to people that trade single markets like U.S. equities. If you’re going to trade a broad diversified basket of assets, then sure, shorts will be essential in your models because you want to capture the negative trends that are inherent from many other markets. But that’s not the point of today’s article.
Parameter Settings Overview
Before we dive into the data, let’s start by looking into the rules of that will generate the final equity curve of our model:
Assets: All available coins on Binance
Timeframe: Daily
Side: Long
Portfolio: $100.00
Compounded Returns: Active
Maximum Allowed Open Positions: 15
Maximum Portfolio Size Per Position: 25%
Fees (per order): 0.1%
Estimated Slippage (per order): 0.5%