From May 19th 2012 to November 19th 2022 the strategy generated 50 trades, of which 80% ended up being winners. Although 1 trade out of 5 were losers, the asymmetry in the profit of the winning trades compared to the percent loss in the losing ones (average win to loss ratio of 25.41) allowed the strategy to greatly outperform Buy and Hold by a factor of 137602x over this period.
These insane returns are one of reasons why we use a short position when designing our strategy instead of simply going out of the market, but there is another reason. Shorting a position can rapidly decrease your capital if badly executed while simply leaving the market doesn’t hurt a portfolio. We like this extra penalizing constraint when trying to optimize our algorithm since we feel that this makes the risk of going out/short more on the same level as with going long. Even so, for our algorithm, while going out of the market instead of shorting will result in a lower return, it still outperforms Buy and Hold by 1408x.
An interesting part of our strategy is how it tends to minimize loss. While our biggest winning trade allowed us to make a gain of 7627.33% (Sept 15th 2015 to Dec 18th 2017), our worst trade resulted in a loss of 11.47% (Sept 26th 2013 to Oct 01st 2013), which was not bad considering this happened in Bitcoin’s very volatile infancy. In fact our average losing trade over the whole backtested period is 6.11%. It is important to note that this low number doesn’t mean that in between two signals we haven’t seen some pain. Again in 2013, we saw a max drawdown of 32% despite this specific trade turning into a winning trade with 49.14% in profit. These numbers are in the range to give a heart attack to the average investor, but we need to remember that this was in Bitcoin’s early days, where the volatility was outside of this world. Without this outlier, the overall average of the max drawdown (including that period) is a lot lower at 6.59%.
Backtesting on a long period tends to reward more of the early trades or the outstanding trades that will have time to compound. A strategy that could have done great in Bitcoin's early days could have performed very poorly in the last cycle while still presenting good overall results. The next table presents some of the key results for each of the last 3 cycles (It’s impossible to backtest on the complete first cycle since a lot of our on-chain metrics cannot be computed with accuracy since some of them use slow emas that require some time to build up, or other metrics simply didn’t really exist).
Despite the fact that the return from Hodling greatly diminishes with each cycle, our strategy has continuously outperformed Buy and Hold by a very considerable factor. There is also no clear trend that this performance is diminishing over the years. In fact the best performance we have is in this current cycle. This is even more surprising if we consider the fact that this cycle was not used during the design of the algorithm. We were expecting the 2015-2018 cycle to have all the highest results since it was the cycle that we used the most during the design, so it’s not surprising that we ended up with 92% successful trades. But the 86% obtained on the current cycle is not negligible. We have two hypothesis for explaining the performance we have on this cycle. The first one is that this cycle, although probably approaching its end, is not completed yet. The last phase of a cycle typically consists of sideways movements, which is an environment that usually results in more losing trades. Our other hypothesis is that the recent cycle had less exuberances, and Bitcoin has started to behave more like a conventional risky asset like ARKK rather than a pure pandamonium. This leads to a lower volatility, and thus less sharp movements that hurt a strategy. The future probably still has some wild cards in its hand, so we cannot expect to obtain the same results, but this performance during the last cycle is encouraging.
Here are all the trades that the strategy took for these three cycles.
One last thing to note, the last cycle didn’t have a blow off top that then collapsed rapidly as seen in previous cycles. Some on-chain metrics signaled that the market was overheated and exited around the top. In retrospect, these trades look great since they were within a few percent points of the actual top, but the investor that would have actually taken this trade might have felt very differently at that time since Bitcoin continued its run for a month after the signaled exit (or short). This is to be expected since most of our strategy relies on on-chain metrics that are not necessarily related to the price action and will often signal movements before they are reflected in the price. This lag can be very difficult for investors.
What to expect
The results presented above are mostly from backtesting. Despite the fact that we borrowed an AI standard practice by preserving a whole cycle from being used during the design of the algorithm, we can not expect the same exact results in the future. As a University professor that works in robotics and machine learning, I have never seen an algorithm that delivered the same performance on new data as it did on the training/validation data, no matter what design methodology was used. But using an appropriate methodology usually maximizes the chance of having a good performance during real time operation. In this specific case, the diversity and the amount of on-chain metrics we use, as well as the quality of these indicators, give me great hope that the strategy will continue to give Wealth Umbrella some great returns.
As a WealthUmbrella subscriber, in addition to getting access to all our underlying on-chain metrics, you will also get access to an indicator version of our Bitcoin Active Hodling Strategy.
The color in the background of this indicator will tell you in which of the 4 different market environments we have described above we are in. Like it was explained in this text, this information is a very important piece of our puzzle as it's the one responsible for changing the algorithm's behavior. As you can also see in the next chart, all of our trades will be indicated.
This indicator version of our strategy also allows us to create a TradingView alert that will tell you when our position switches. It can be configured by simply selecting the WU Buy or WU Sell in the condition of a new TradingView alert.
We also understand that a lot of you don't want to set up alerts or are limited by their TradingView subscription in the amount of alerts they can set up. Don't worry, we have your back. You will be instantly alerted by a text message or email of any change in our position. That being said, keep in mind that the strategy has been designed using daily candles. An intraday price swing could trigger the alert during the day, but could then reverse into a point where the conditions for switching position are not met anymore. For that reason, our alert will tell you what the conditions are that we are looking for at 23:55 UTC to switch position. A second text/email alert will confirm if we have changed our position.
We are really excited about this work and the window that is open by bitcoin network transparency and on-chain metrics. We will continue to dig into these gigantic data (current BTC node weight 456GB!) in the hope of continuously improving our strategy in its robustness. Let's see where we will be in 10 years from now!
(P#7.4_2022)
Dear Vincent, is there a significant difference in the stats for long and short trades? I just studied all your posts about the Hedge algo on IOfund and in one of the posts you shared a table with detailed stats which showed a significant difference in performance between long and short trades. Thanks in advance for sharing if possible 😌
I've read the whole e-book/blog posts describing the design and nature of all of your indicators, both proprietary like the Kwiatkowski indicators and non-proprietary like SOPR, NUPL etc. One of the points that is driven home time and again in the blog posts is that one single indicator isn't enough -- many of them missed specific extreme tops or bottoms, but, when taken in aggregate, at least some of them catch things. Meaning, there aren't any situations in the training data (or the even the most recent cycle, even though it was NOT used to train, but to test only) that stump ALL the indicators.
Well my question is this -- how are all the indicators finally synthesized into the…