• John Hawver

Costanza Trade

Passive investing. Buy and Hold. Dollar cost averaging. These work. And right now, passive investing is all the rage; dollars keep pouring into it. In my last post (link) I even demonstrated with statistical evidence that it is completely in your interest to follow this advice. When an idea becomes so established, however, it should be challenged. So, let’s “Costanza Trade” this notion. What value can be gained from trading and active investing?

(If you don’t know George Costanza, here’s a wiki link)

Trading and investing have a very nice, forgiving, property; trading decisions are reversible. Sure, it might cost you brokerage fees and the bid-ask spread to reverse a mistake, but in the longer scheme of things, that’s a small cost. And, as long as your mistakes aren’t frequent and the losses are reasonable, you’ll maintain some capital and stay in the game. Reversible decisions are essentially decisions that come with an option. And options have value.

The Farnam Street blog has an excellent post on how Amazon implements this property in its decision framework.

So, if this decision “option” has value, how do we extract that value to make ourselves better investors? Let’s take an example. Imagine a brand new shiny trader starting her first day at a big bank. She’s given a book and told to make a market and trade. Clearly, on day one, she won’t be very informed, each decision would most likely be a coin flip. But let's bless this trader with a small initial amount of “edge” and then let’s suppose that on each trade she learns.

I’ve modeled this below. From the graph, you can see that even after 500 trades, she hasn’t learned much; Only 52% of the time can she expect a positive outcome. But after 1000 trades her expectation of a positive outcome is 59%. Not too shabby. She’ll be a VP soon.

The key to this simplistic model is the learning rate. As long as our trader learns, she improves and compounds her knowledge. But she can’t learn if she doesn’t trade; Each decision has value. The more decisions you make, you are, in essence, exercising the option that came with the decision. And, yes, certainly you will lose money (see chart again) in those first few decisions. This is real-life tuition.

Consider Warren Buffett and his Cities Service investment in 1942 that he highlighted in his 2018 Berkshire meeting. He made a good trade, got spooked, and sold at a small profit. In doing so he gave up some pretty massive future gains. But his learning rate was off the charts and the tuition he paid for that mistake was certainly part of the education that made him a billionaire and the “OG” quant.

There is nothing more valuable than intentional practice in any arena. The 10,000-hour rule the Malcolm Gladwell popularized has merit. Peter Muller of PDT fame also made this exact point in this article.

I went to the Naval Academy. The Boat School. As a midshipman, I was taught ship handling, sailing, and spent time “driving” Yard Patrol (YP’s) crafts in the Chesapeake.

Despite all this training, when I got to my first ship, I was just a flat-out bad ship driver. I routinely scraped paint off the hull ramming her into the pier. But I turned it around after my XO gave me this advice: make lots and lots of small (reversible!) decisions, NOT one or two big ones.

Don’t be afraid to scrape things up. The conventional wisdom (Passive Investing, Buy and Hold, etc) is probably correct. We do have the stats to show it. But there is no substitute for direct learning and there is always something new to find.

Good luck.


***** Code to Replicate Chart *****

# helper function

flipper <- function(flips, edge = 0) {

fair_coin <- runif(flips, 0, 1)

fair_coin <- fair_coin + edge

sum(fair_coin > .5) / flips


# flips

num_flips <- 1:1000

start_edge <- 0.001

learning_rate <- .0045

edge <- start_edge * (1 + learning_rate) ^ num_flips

# trader

probs <- rep(NA, length(num_flips)); idx = 1

for (nmf in num_flips_t1) { probs[idx] <- flipper(nmf, edge = edge[idx]); idx = idx + 1 }

# plot

plot(num_flips, probs, col = 'blue',

main = 'Compound Learning',

xlab = 'Number of Flips',

ylab = 'Probability of Positive Return'); grid()

# mean at different points