Can you increase your returns while reducing your risk?

Modern finance says this is a ridiculous concept! There's a trade-off, more return requires more risk by definition.

Mark Spitznagel argues that this simply isn't true.

Black Swans and Tail Hedging

Spitznagel is the lesser known partner of Nassim Nicholas Taleb who has made a career out of finding cost-effective hedges to black swan events. In the 2020 COVID crash his fund posted a 4,000% return while everyone else was watching their portfolios implode.

So, maybe he knows a thing or two about safe haven investing, the subject (and title) of his latest book.

TL;DR

If you want to rack up real wealth, you've got to be thinking long term and you have to control your risk. In fact, this is why most retail traders blow up their accounts - they aren't thinking about risk.

We've built risk management into our platform to help you manage the ups and downs of the market. Position sizing, position management, money management, whatever you call it, we want you to have those options available for your trading. And we do it automatically with our customizable trading bots.

This is what separates our holistic algorithmic trading approach from the others. If you don't care to read through, go ahead and check out our no-code bot trading platform where you can learn about these ideas!

First Principles of Safe Haven Investing

Spitznagel begins his book with three principles that guide his thinking about investing - and also diverge from modern financial dogma.

  1. Investing is a multi-period process that takes place through time
  2. Goal of investing is to maximize your wealth over time
  3. Risk mitigation is cost-effective only if it raises your compound annual growth rate (CAGR)

Some of these seem fairly obvious - so it's surprising that Spitznagel claims this goes against the grain of most Wall Street funds, but it does.

Let's start with the first principle. Investing is a long-term process. Everyone engages in it to some extent over the course of their life. Whether it's just socking dollars under a mattress or running a sophisticated options desk or building factories for your business, you're working to have more wealth tomorrow than you do today. Wall Street has the tendency to obfuscate this simple point by focusing on short term performance - what happened in one year, one quarter, one month, or one day and forgetting that we're in the business of compounding as investors. Academic finance does this as well focusing on averaging multiple, one-shot trades, not repeated or compounding investment, which focuses their attention on the wrong metrics (as we'll get to more below).

This brings us to the second principle, wealth maximization. While again superficially uncontroversial, the aim of wealth maximization is often replaced in Academic finance with risk-adjusted returns. There's a time and place for risk adjustments, but to make it the summum bonum in investing, is a mistake and is a way for funds to make their lives easier at the expense of their client's goals.

Spitznagel's greatest heresy against the orthodoxy of modern finance though (and the thesis of his book), is the idea that we can improve our returns while reducing risk. This flies in the face of Markowitz and Modern Portfolio Theory which sees risk and reward as an explicit trade-off.

To understand Spitznagel's thinking here we need to unpack that last principle. Stating it slightly differently, the goal of risk mitigation is to maximize your geometric average return. This is the major claim of the first half of Spitznagel's book, from which he will construct his analysis of risk mitigation. And although again seemingly self-evident, there's a little more to it than meets the eye.

To explore the centrality of the geometric return, let's play a couple of simple dice games.

What's your expectation?

Here's the first game.

Let's take a 6-sided die with different payoffs depending on what you roll. If you roll a 1, you lose 50% of your wager. If a 2, 3, 4, or 5 comes up, you win 5% of your wager. And if you roll a 6, then jackpot! you win 50% of your wager. The question Spitznagel asks is simple: what is the expected return of playing this game?

A Mediocre Average

Most people would look at this and simply take the arithmetic average (the normal one everyone learns about in elementary school): sum up the payoffs and divide by 6.

(-0.5+0.05+0.05+0.05+0.05+0.5)/6 = 0.033. That is the expected value, an average return of 3.3%, and since it's positive, most economists would tell you this is a good bet. After all, this means that you expect your money to increase by a factor or 1.033 each time the game is played. If you played the game 300 times, your wealth at the end of the 300 rolls would have grown by a factor of 1.033 x 1.033 x 1.033 x... =1.033^300 =18,713! That's almost 19,000 times your starting wealth (if you started with $1,000 you would now have $19 million!).

So you should definitely play this game right?

Well not so fast. The arithmetic average isn't always the best tool. Just like the "average family" with 2.3 kids doesn't exist, your "average" payoff doesn't exist either, or at least for us mere mortals. It only works in what Spitznagel calls the multiverse. This refers to situations where you are able to run a large number of trials concurrently. For instance, in the multiverse instead of rolling a single dice 300 consecutive times, you would be able to roll a large number like 1,000 dice 300 consecutive times, each time taking the average return of all the rolls. Then we could say that each time you play the game, each time you simultaneously roll 1,000 dice, you do in fact get the arithmetic average return of 3.3%. Casinos and, as we will see later, insurance companies operate in the multiverse. But for the majority of us, we only get to live in this universe. We only get one roll of the die, not 1,000, each time we play the game.

But, you might ask, even if we can't roll multiple dice simultaneously, won't the rolls of a single die still average out over time, in which case the arithmetic average would still apply? Well let's see. Let's assume that you roll each number once. Then based on compounding after your sixth roll, your return would be 0.5x1.05x1.05x1.05x1.05x1.5= 0.912.

Notice that since 0.912 is less than 1, you would actually end up with less than you started with. (Also note that since the returns are multiplicative it doesn't actually matter what order they happen in). In fact if you rolled the dice 300 times, with each number showing up equally your ending return would be 0.912^50 = 0.010 (that's right, after 300 consecutive rolls you would end up with only 10% of the wealth you started with!) To find the geometric average, we take the 300th root of 0.10 = 0.985 or a -1.5% compound growth rate. Unlike the arithmetic average, the geometric average is negative. It reflects that for the majority of us who don't live in the multiverse, this is a losing game.

As you can see, because the returns compound, they can't be simply added together, as they would in calculating the arithmetic average. Also, note that even though your returns in five out of six dice rolls would be positive, overall this game has a negative expected geometric average return. This is due to the fact that not all returns are created equal. Losses matter more than winnings--if you lose 10% then immediately gain 10%, the two changes don't cancel out, since the +10% return is on only 90% of your original amount.

Thus the geometric average correctly reflects the multiplicative compounding that occurs when you only get to perform a sequence of single trials. But there are other benefits to the geometric average. Let's take a look another dice game.

How much would you pay to play?

Take a gamble with the payoffs for rolling 1-6 shown in the following table:

safe-haven-1-payoff-table.png

Most people would take the average of the payoffs ($166,705) and say that is how much the game is worth and thus how much they'd be willing to pay.

Simple, right?

We did just spend the previous section discussing the geometric average. If you suspect that provides a better way to calculate the expectation, then you're right!

There is one more twist, however. We need to take into account more than just the winnings, but we need to know where we started by factoring in our wealth.

Geometric Average of Your Wealth

First, we need to determine our current wealth. Following Spitznagel's example, we'll say this is $100,000. If that's you (a one-hundred-thousand-aire) would you play this game for $50,000?

To calculate the value of this wager for you, we need to get your ending wealth for each of the possible outcomes. It will look like this:

safe-haven1-ending-wealth-table.png

Now, we take the geometric mean of the ending wealth column. We calculate the geometric mean as:

$$M_g = e^{\frac{\sum_{i=1}^n \textrm{ln} w_i}{n}} = \bigg(\prod_{i=1}^n w_i\bigg)^{\frac{1}{n}}$$

Both of these formulations (with the e and with the big Pi) are equivalent. In some cases, it's just more compact to use one form or the other. We'll use both here to give you a feel for how to write these. To start, let's focus on the first.

Here, we're summing the log of our ending wealth values and dividing by the number of outcomes (6 in this case). We use that as the exponent for the natural number *e* and we get our expected value which is...

$$M_g = e^{\frac{\sum_{i=1}^n \textrm{ln} w_i}{n}} = e^{\frac{\textrm{ln}\$50,001 + \textrm{ln}\$50,002\textrm{ln}\$50,006\textrm{ln}\$50,022 + \textrm{ln}\$50,200 + \textrm{ln}\$1,050,000}{6}} = ...$$ $$\Rightarrow \$83,114$$

The geometric average of this starting wealth and this wager is $83,114.

What does that mean?

Well, if you follow Spitznagel, that means that you shouldn't take this bet because you're now expected to wind up with less money after taking this wager than you started with ($84,114 < $100,000).

Let's show how this works with a quick, computational example. We'll write a brief function that will calculate our expected value according the the geometric mean, then we'll see what our break even point looks like. This will determine our wager limit: going above the break even point means we're likely to be worse off given for taking the bet.

Import a few basic packages and write our function.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

def calcExpectedValue(wealth: float, wager: float, 
  payoffs: np.array=np.array([1, 2, 6, 22, 200, 1000000])):
  return np.exp(np.log(wealth - wager + payoffs).sum() / len(payoffs))

I've got the payoff profile hard-coded here, but you could plug any discrete set of events and their payoffs here to calculate the expected value according to the geometric mean.

Plugging in Spitznagel's values, we can confirm our answer matches:

calcExpectedValue(100000, 50000)
83113.90899

So far so good.

Now, we're going to fix our starting wealth at $100,000 and adjust our wager size from 0-100% of our wealth. The point at wager that corresponds to our starting wealth is our break even point.

W = 100000
bets = np.arange(W+1)
exp_val = np.array([calcExpectedValue(W, i) for i in bets])

break_even_idx = np.abs(exp_val - W).argmin()
break_even = bets[break_even_idx]
print(f"Break Even Value = ${break_even:.0f}")
print(f"{break_even / W * 100:.1f}% of wealth wagered")
Break Even Value = $37708
37.7% of wealth wagered

So this is a good bet if we have $100k and can play for less than $37,708.

Now that we have all of these values calculated, let's plot it to see how this expected value curve changes as our wager increases.

ww = bets / W * 100
bep = ww[break_even_idx]

colors = plt.rcParams['axes.prop_cycle'].by_key()['color']

fig, ax = plt.subplots(figsize=(12, 8))
ax.plot(ww, exp_val)
ax.scatter(bep, W, s=150, marker='*', c=colors[2], zorder=10)
ax.set_xlabel('Wealth Wagered (%)')
ax.set_ylabel('Expected Value ($)')
ax.set_title('Expected Value of the Wager with $100k of Starting Wealth')
ax.vlines(x=bep, ymin=0, 
           ymax=exp_val[break_even_idx], color='k')
ax.annotate(f'Break Even Wager = ${bets[break_even_idx]:.0f}',
             xy=(bep-3, 1.1*W))
ax.text(bep+10, W/6, "Bad wager!", ha='center', size=15,
            bbox=dict(boxstyle="rarrow,pad=0.3"))
ax.text(bep-11, W/6, "Good wager!", ha='center', size=15,
        bbox=dict(boxstyle="larrow,pad=0.3", fc=colors[1]))

ax.hlines(xmin=0, xmax=bep, y=W, color='k')
ax.annotate(f'Starting Wealth = ${W:.0f}',
            xy=(bep/7, 1.025*W))

ax.set_xlim([0, 100])
ax.set_ylim([0, exp_val.max()*1.05])

plt.show()
safe-haven1-bernoulli-wager-plot.png

As seen in the plot, any chance you get to play where you pay less than $37,708 has a positive expectation for your wealth and would be a reasonable bet. Above that level, then you're going to be hurting afterwards!

This is what the payoffs look like if you have $100,000 of wealth when given the offer. How does this change with different levels of starting wealth?

We'll plot starting wealth values for $50k, $100k, $200k, all the way to $1 million and see how the starting wealth impacts how much you're willing to wager (going to skip the code here, shoot us an email if you really want it).

safe-haven1-bernoulli-wager-multi-level-plot.png

In the plots above, we have our wealth broken down on constant wealth lines corresponding to $50k, $100k, and so on (reminds me a bit of the Mollier diagrams you encounter in thermodynamics). The red line connects the break even points for each wealth level giving you an idea of what that boundary looks like as you increase wealth.

Looking at it this way, more wealth indicates that you'd be willing to take more nominal risk, even though it's a smaller percentage of your total wealth whereas poorer people would be taking higher risk relative to their existing wealth, but lower nominal risk. Interestingly laws in the US around accredited investors go in the exact opposite direction - they prevent small investors from taking on riskier positions because they don't have enough money (according to the regulators at least).

Also notice how this compares with the arithmetic mean of the payoffs. If you're making your betting decision based on the average outcome paying you $166k, then the "rational" decision would be to take out a loan to play this game if you don't have enough! We can see in the lower plot that this value is greater than the breakeven point for every wealth level we explored (you'd need at least $5.6 million for a $166k wager to make sense on this game).

As you can see, changing your idea of expectation just by changing the average you use can have a big impact on the types of bets you're willing to make.

What should you pay for insurance?

Spitzli makes a big point by asking the reader to apply this thinking to a merchant plying his trade on the high seas during the pirating peak in Europe. This merchant is moving goods between Amsterdam and St. Petersburg, buying in Holland and selling in Russia for 10,000 rubles. Moreover, there's a 5% chance of losing it all to the marauding pirates - so what would you pay for insurance?

The merchant looking at the arithmetic mean would likely expect somewhere around 500 rubles to fully insure his wares. He'd be shocked if he got quotes for 800 rubles instead! This would seem an outrageous price, reinforcing the common belief that insurance is a scam.

Is it though? Can our merchant use some of the tools we discussed above to better price the value of this contract?

Spitznagel says, "yes" (hope that response wasn't too surprising, it is a main theme of his book after all).

To start with this analysis, we need to take the merchant's wealth into account as well, which comes in at 3,000 rubles. With this information, we can calculate the merchant's expected value with and without insurance (note for this example, we used the big Pi formulation, but just expanded the values).

$$M_g^{uninsured} = \big((13,000 )^{95}(3,000)^{5}\big)^{\frac{1}{100}}$$ $$\Rightarrow 12,081$$

With his 800 ruble insurance, on the other hand, he has an expectation of:

$$M_g^{insured} = \big((13,000-800)^{100}\big)^{\frac{1}{100}}$$ $$\Rightarrow 12,200$$

(Ok, I probably didn't need to show my work for that one)

Here we see that the expectation of sailing with insurance is higher than without. In other words, buying insurance at this price is a win for the merchant (and the insurance agent too for that matter).

This is a cost-effective risk mitigation strategy! You have actually increased your expected compound annual growth rate by buying insurance and protecting yourself from a loss.

There's another key insight when we think back to Spitznagel's principle of investing through time. The merchant, wouldn't just complete this shipment once and go off into retirement - this is his business, and the nature of business is to find a profitable *and repeatable* exchange that can be done far into the future. The merchant then, would take his profits and re-invest them into his next shipment and next shipment and so forth - just like any trader or investor looking to grow his account.

If the merchant needed to lay out 8,000 rubles to get his 10,000 ruble revenue, then he started with 11,000 rubles (personal wealth and his working capital) and ended with 13,000 rubles after the trade, for a net 18% profit. If he suffers a pirate attack (without insurance) then he's gone from 11,000 back to his 3,000, or a 73% loss.

Once you start losing big, it becomes exponentially harder to get back to even.

risk-trading-gains-to-even.png

If we say the merchant invests the same amount of his wealth in each shipment, he can compound his wealth at 9.8% per shipment without insurance.

$$CAGR^{uninsured} = \big((1 + 0.18)^{95} \times (1-0.73)^{5} \big)^{\frac{1}{100}} - 1 = 9.8\%$$

Compare that to the insured case where he's able to compound at 11% (12,200 / 11,000 = 0.11).

Just for illustration, let's say that the merchant makes one trade per year. We can see what the next 10 years are going to look like given these two different strategies.

9.8% isn't bad - but he is able to get higher returns and more sleep with the insurance contract.

ins = np.array([(1.18**i) - 1 for i in range(10)])
unins = np.array([(1.098**i) -1 for i in range(10)])

plt.figure(figsize=(12, 8))
plt.plot(100*ins, label='Insured')
plt.plot(100*unins, label='Uninsured')
plt.xlabel('Year')
plt.ylabel('Returns (%)')
plt.title("Merchant's Total Returns with and without Insurance")
plt.legend()
plt.show()
safe-haven1-merchant-trade-compunding-plot.png

With insurance he sees total returns of 343% whereas without, he manages 132%. Again, he's paying money to have higher returns with less risk - something modern finance says is impossible.

The geometric average is the one that matters in these repeated games. If you get to play multiple times, then you want to understand your ability to compound these edges into real wealth over time.

This is the kind of safe haven investing that Spitznagel is after.

Preparing for Volatility

Avoiding devastating losses during your investment career will help you keep and grow your wealth. Join us as we explore this topic further, pressing deeper into Spitznagel's book, and trying to understand how you can apply these ideas to your portfolio.