The post Pricing a Sports Bet like an Option appeared first on Robot Wealth.

]]>*This post assumes basic knowledge of Options and Mathematical Expectation. *

Most of the features that you observe about options are simply due to the fact that they are expiring bets. And the features we observe in option pricing are observed in any other expiring bet.

The complicated maths and terminology that surround options can make it appear like they are very complicated instruments. This can intimidate beginners – and I notice that, instead of trying to understand at a fundamental level what an option is and why it has the price it does, many beginners will instead try to build their intuition by seeking to understand the way the various “Greeks” move instead.

This isn’t very helpful. And it leads to all kinds of nonsense like *“I want to maximise theta whilst minimising delta and gamma.” *

The good news is that options are much simpler than you probably think they are.

Their value is simply the probability-weighted sum of their payoffs. You should have this in mind at all times.

And when you do, you find that most of the obvious features of options described by the Greeks are ** deeply uninteresting in terms of edge **– they’re just the simple mathematics of updating probability in the face of changing parameters.

For this example, we’ll bet on the outcome of a soccer game: Home Win, Draw, or Away Win.

The bet expires after 90 minutes when the game is over.

We’ll model the football game as two separate Poisson processes, where we set the expected number of goals per game as the intensity parameter.

Let’s say that you have done some analysis and that your analysis suggests that the expectation is that the home team scores 2 goals per game, and the away team 1.5 goals per game.

This lets us calculate the probability of various score scenarios, and from this, we can back out the probability of a win, draw or loss.

Before the game starts, we can see that the probability of the home team winning is 47.7%, which implies fair decimal odds of 2.1

It would be possible to calculate “Greeks” for this bet by looking at how its fair value changes with respect to time and to changes in score during the match. But it’s obvious (I hope) that we don’t need to:

- If someone is prepared to offer us odds substantially better than 2.1 then we should bet on the home team (which would be analogous to buying options on the home team).
- And we might also offer odds of less than 2.1 to others who want to bet on the home team (which would be analogous to selling options).

So the obvious lesson here is that the sensitivities to changes in time and score are irrelevant to us in finding edge (or at best a very indirect way of doing it). Instead, we just need to compare fair value to the odds we get. This is how we find edge, both in sports betting and in options trading: decide what we think fair value is, and trade at prices that deviate from our fair value.

Our comparison with an option becomes a little more real if we look at how the value of the best changes while the match is in process. Let’s start by pricing the outcome with respect to changes to time and score.

There are a few different drivers of the probabilities of the outcomes:

- The expected goals per game of each team
*(which we’ve fixed at 2 for the home team and 1.5 for the away team – similar to how we might fix implied volatility in option pricing)* - The number of minutes left
*(analogous to DTE in option pricing)* - The current score
*(analogous to moneyness in option pricing)*

Now we can build a model which predicts the probability of an outcome given these things:

It looks like this (I’ll share the link to the spreadsheet at the end of the post):

The user can fill in the yellow cells and the model spits out the fair value probabilities of the match outcomes. The yellow cells, from top to bottom and left to right are:

- Expected home team goals
- Expected away team goals
- Minutes remaining in the match
- Current goal differential (home goals minus away goals)

First, let’s look at the time decay of our outcome probabilities. We vary the time remaining (cell C2) and goal difference (cell C5), and record and plot the probability of the match outcomes.

First, let’s keep the score constant at 0-0 and plot the fair value probabilities of a home and away win throughout the 90 minutes of the game.

We see the effect of “time decay”. If the score doesn’t’ change then the fair value of the bets on the home and away team decay to zero over the course of the game.

Now let’s create a payoff diagram, where we plot the payoff at expiry (end of the game) as well as lines that represent the fair value at each score during various times throughout the game (we’ll do 0 mins, 22.5 mins, 45 mins, 67.5mins):

*(For simplicity, this is actually showing fair value rather than “payoff” – but it should be easy enough to read) *

By taking the rate of change of these things, we could calculate Greeks for this bet:

- Theta would be the change of fair value with respect to
*time* - Delta would be the change of fair value with respect to
*changes in the score* - Gamma would be the change in
*delta with respect to changes in the score*

And we would recover results that help us understand why the fair value of our bet changes when various things happened during the game.

**But the greeks wouldn’t really help us work out whether we had an edge**:

- Theta is just the loss of value of the bet if nothing happens.
- Delta is the change in the value of the bet if something happens.

But we’re interested in the chance of something happening, and the price we can get the bet on at. That’s not obvious at all from the parameter sensitivities, yet it’s precisely where our edge comes from!

It is self-evident that you wouldn’t try to assess the viability of a sports bet based on these model-derived parameter sensitivities we call Greeks.

It should be equally self-evident that you shouldn’t try the same thing with options either.

In this case, let’s say that the market has underestimated the chance of the Away side winning. Let’s say the market is offering you implied odds of 29%, but the probability of the outcome is more like 40%.

This is a big edge, and you should bet on the Away team even though:

- You’re likely to lose this particular bet, and
- It is a “negative theta” bet.

Most of the obvious features of options are simply due to the fact that they are expiring bets whose fair values update in predictable ways with respect to time and changes to other parameters.

These features are shared by other expiring bets such as in-play sports bets. They are not unique in any way to financial options.

** You bet when you have the right odds**. The parameter-sensitivities (Greeks) have little to do with that.

If you’d like to explore the soccer betting model further, it’s available as a Google Sheet here. You won’t be able to edit this version, but take a copy for yourself (*File –> Make a copy*).

The post Pricing a Sports Bet like an Option appeared first on Robot Wealth.

]]>The post Portfolio Hedging with Put Options appeared first on Robot Wealth.

]]>*Read the previous parts of this 101 series on options:*

- Options are just options – why are they valuable?
- Options 101: Understanding the basics
- The value of an option at expiration
- Long options payoff profiles

There are 2 good reasons to buy put options:

- Because you think they are cheap
- Because you want downside protection. You want to use the skewed payoff profile to protect a portfolio against large downside moves without capping your upside too much.

The first requires a pricing model. Or, at the least, an understanding of when and under what conditions options tend to be cheap.

The second doesn’t necessarily. We’ll assume that we’re going to have to pay a premium to protect our portfolio – and that not losing a large amount of money is more important than the exact price we pay for it.

Let’s run through an example.

We have a portfolio comprised entirely of 100 shares of SPY. About $56k worth.

We can plot a payoff profile for our whole portfolio. This is going to show the dollar P&L from our portfolio at various SPY prices.

At the time of writing, SPY closed at $564.86.

In the code below, I’m sourcing a script called `yahoo_prices.R`

, which retrives prices from Yahoo Finance. You can find the code here.

```
# load libraries
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, slider)
# set chart options
options(repr.plot.width = 14, repr.plot.height = 7, warn = -1)
theme_set(theme_bw())
theme_update(text = element_text(size = 20))
# functions for getting data (see https://robotwealth.com/yahoo-prices-r-easy/)
source("../data_tools/yahoo_prices.R")
```

Loading required package: pacman

```
SPYprice <- 564.86
SPYshares <- 100
min_price <- 400
max_price <- 650
portfolio_payoffs <- tibble(price = c(min_price, max_price)) %>%
mutate(pnl = (price - SPYprice) * SPYshares)
portfolio_payoffs %>%
ggplot(aes(x = price, y = pnl)) +
geom_line() +
ggtitle('PnL of Portfolio vs SPY Price')
```

So far, so unremarkable.

Now let’s say we want to limit our downside to no more than $10,000(fromcurrentlevels)overthenext3months\mathrm{.}That\text{\u2019}sabouta17First,welookattheSPYpricewhichresultsina10,000\; (from\; current\; levels)\; over\; the\; next\; 3\; months.\; That\u2019s\; about\; a\; 17\%\; decline.$

First, we look at the SPY price which results in a

10,000 loss. From eyeballing the chart, that’s about $460. Let’s do it properly:```
minlossprice <- SPYprice -10000 / SPYshares
minlossprice
```

464.86

Next, remember that a SPY put option struck at $465givesustheoptiontosell100SPYsharesat465\; gives\; us\; the\; option\; to\; sell\; 100\; SPY\; shares\; at$465, regardless of the price of SPY.

If we buy an 18 October $465SPYput,thenwehavecappedourminimumpossibleportfoliolosstoroughly-465\; SPY\; put,\; then\; we\; have\; capped\; our\; minimum\; possible\; portfolio\; loss\; to\; roughly\; \u2013$10,000.

If we take the last traded price for that option then that “insurance” costs us about $1.06pershare,for1.06\; per\; share,\; for$106 in total premium.

So for $106(whichisabout0.2106\; (which\; is\; about\; 0.2\%\; of\; our\; portfolio),\; we\; can\; \u201cinsure\u2019\; our\; portfolio\; so\; it\; doesn\u2019t\; drop\; any\; more\; than\; \u2013$10,000 from current prices.

In this case, our insurance is very cheap because of the currently low volatility of SPY.

```
strike <- 465
premium <- 1.06
portfolio_payoffs_hedged <- tibble(price = c(min_price:max_price)) %>%
mutate(pnl = case_when(
price < strike ~ (strike - SPYprice - premium)*SPYshares,
TRUE ~ (price - SPYprice - premium)*SPYshares
))
portfolio_payoffs_hedged %>%
ggplot(aes(x = price, y = pnl)) +
geom_line() +
geom_vline(xintercept = strike, linetype = 'dashed') +
annotate(geom = 'text', label = paste('Strike = ', strike), x = strike-20, y = -2500, size = 6) +
ggtitle('PnL of Hedged Portfolio vs SPY Price')
```

Whether this is valuable to you depends on what you’re trading and what your risk tolerance is. More on this at the end of the post.

Ok, so it’s highly unlikely that your portfolio is made up entirely of SPY. So here’s an example of hedging a degenerate portfolio of small caps using SPY puts.

First, get some price history for SPY and a few small caps:

```
tickers <- c('HUMA', 'HUT', 'IONQ', 'FSM', 'SPY')
prices <- yahoo_prices(
tickers,
from_date = "2020-01-01", to_date = "2024-07-17"
)
prices <- prices %>%
group_by(Ticker) %>%
mutate(returns = Adj.Close / lag(Adj.Close) - 1)
prices %>%
ggplot(aes(x = Date, y = Adj.Close, colour = Ticker)) +
geom_line() +
facet_wrap(~Ticker, scales = "free_y")
```

Next, calculate our portfolio’s beta to SPY. We’ll assume we’re invested equal weight in these stocks.

```
portfolio_returns <- prices %>%
filter(Ticker != 'SPY') %>%
group_by(Date) %>%
summarise(port = mean(returns)) %>%
left_join(
prices %>% filter(Ticker == 'SPY') %>% select(Ticker, Date, returns),
by = 'Date'
) %>%
select(Date, port, returns) %>%
rename('spy' = returns)
portfolio_returns %>%
ggplot(aes(x = spy, y = port)) +
geom_point() +
geom_smooth(method = lm, formula = y ~ x)
```

Estimate a 100-day rolling beta of our porfolio to SPY:

```
get_beta <- function(x) {
mod <- lm(port ~ spy, data = x)
return(mod$coefficients['spy'])
}
portfolio_returns <- portfolio_returns %>%
mutate(rollbeta = slide_dbl(., ~get_beta(.x), .before = 100, .complete = TRUE))
portfolio_returns %>%
ggplot(aes(x = Date, y = rollbeta)) +
geom_line() +
labs(title = "100-day rolling portfolio beta to SPY")
```

Let’s take our portfolio beta at the current 100-day rolling estimate. You can see that the estimate is rather noisy – this won’t be too precise.

```
port_beta <- portfolio_returns %>%
select(rollbeta) %>%
last() %>%
pull()
round(port_beta, 2)
```

1.41

Our portfolio beta is about 1.41.

That means that for every dollar invested in our portfolio, we would need to hedge 1.41 dollars worth of SPY.

Let’s say our portfolio is worth $100,000.Thatmeansweneedtohedge100,000.\; That\; means\; we\; need\; to\; hedge$141,000 of SPY. Given the current SPY price, we would need the following quantity of shares of SPY:

```
port_value <- 100000
SPYprice <- 565
shares_of_spy <- port_value*port_beta/SPYprice
round(shares_of_spy, 0)
```

249

Now, we can only hedge to the nearest 100 shares of SPY (told you this can’t get too precise). So, in this case, we’d buy two SPY puts and call ourselves slightly under-hedged. You could on the other hand by 3 puts and find yourself slightly over-hedged.

*What’s the optimal thing to do?*

Well, everything is a trade-off. Being under-hedged costs less in the premium you pay, but leaves you, well, under-hedged. Being over-hedged costs you more in premium, but leaves you more than adequately protected.

Portfolio hedging with index put options, in reality, requires a juggling of basis risk (you can only hedge in 100 share units) and correlation risk – where correlation risk is the risk of hedging on the basis of the betas of the components of your portfolio.

That depends on:

- Your trading edge
- What risk you’re taking in the portfolio
- What your risk tolerance is

If you’re running a highly leveraged portfolio of negatively skewed carry-trades, for example, then there is a time in the future when you will lose a large amount of money very quickly.

Losing a lot of money is bad. And making sure you don’t lose a lot of money is more important than the exact price you pay for that insurance. So provided you do indeed have a large edge, I would very likely pay up for crash protection in this scenario.

However, this assumes you have a significant trading edge. Portfolio insurance is costly, so you need to be confident that you have a large edge which is significantly greater than the cost you’re going to pay to hedge your downside.

If you aren’t confident in your trading edge, then you would be much better, in my opinion, sizing your trading down to a point where you are happy taking on the downside risk.

In this post, we’ve been through a very simple approach to hedging a simple portfolio of equity-like assets. It’s an approach that doesn’t require an options pricing model, just an appreciation of how much you are willing to pay for downside protection given a realistic assessment of your trading edge.

The post Portfolio Hedging with Put Options appeared first on Robot Wealth.

]]>The post Long Options Payoff Profiles appeared first on Robot Wealth.

]]>In this article, we explore the payoff to holding long options positions.

*Read the previous parts of this 101 series on options:*

- Options are just options – why are they valuable?
- Options 101: Understanding the basics
- The value of an option at expiration

So far, we’ve plotted the value of an option at expiration.

This is useful (as we’ll see later), but it doesn’t represent our profit and loss from being long that option.

For that, we need to subtract the amount we paid from the option from the payoff for all values of the underlying asset price.

- Pam pays $2 for $100 strike calls on product X.
- At the expiration date, product X is trading in the market at $130.

*What is Pam’s net P&L?*

We follow this process:

- Calculate the value of the option
- Subtract the value we paid for it.

If the product is trading at $130 at expiry, and Pam holds calls with a $100 strike then Pam’s calls are “in the money”. Pam can exercise her call option at $100 and then sell the product in the market at $130. So:

`Value of call option at expiration = $130 - $100 = $30`

Now we subtract the amount Pam paid for the call option to get her net p&l in the trade.

`Net Profit = $30 - $2 = $28`

*Nice trade, Pam.*

Let’s take a similar example…

- Pam pays $2 for $100 strike calls on product X
- At the expiration date, product X is trading in the market at $90

*What is Pam’s net P&L now?*

We follow this process:

- Calculate the value of the option
- Subtract the value we paid for it.

The product is trading below the value of Pam’s call strike. So there’s no point exercising these options. Pam is a smart lady and she wouldn’t pay more than she had to for product X.

So Pam’s options expire “out of the money”. They expire worthlessly.

`Value of call option at expiration = $0`

Now, we subtract the amount Pam paid for the call option to get her net P&L in the trade.

`Net Profit = $0 - $2 = -$2`

It was a loss – but because she bought call options, Pam’s loss was limited to the amount she paid for the calls.

We can plot the P&L of a long options position held to expiration as a function of the price of the underlying asset.

To do this we:

- calculate the value of the option at expiry for a range of underlying asset prices
- subtract the value paid for the option (“the premium”) from each point.

min_price <- 50 max_price <- 150 strike <- 100 premium <- 2 call_payoffs <- tibble(price = c(min_price, strike, max_price)) %>% mutate(callvalue = case_when(price < strike ~ 0, TRUE ~ price - strike)) %>% mutate(payoff = callvalue - premium) call_payoffs %>% ggplot(aes(x = price, y = payoff)) + geom_line() + ggtitle(paste0('Payoff profile for long $100 call - Premium $2))

We see that:

- Our maximum loss is the amount we paid for the call options
- Our profit is unlimited
- We break even at the price where the value of the call option at expiration is equal to the amount we paid for the calls. This is
`premium + strike = $102`

*Now let’s do the same for a Put Option.*

This is exactly the same deal as before.

We calculate the put’s value at expiration at various prices of the underlying asset and then subtract the price we paid for the option.

We just need to remember that a put option is an option on being able to sell the underlying asset at the strike price. So this time around, all the action happens when the underlying asset price is below our strike.

At the risk of being a bit tedious, we’ll run through some examples.

- Fabio pays $1 for $95 strike puts on product Z.
- At the expiration date, product Z is trading in the market at $90.

*What is Fabios’s net P&L?*

We follow this process:

- Calculate the value of the option
- Subtract the value we paid for it.

If the product is trading at $90 at expiry, and Fabio holds puts with a $95 strike, then Fabio’s calls are “in the money”. Fabio can exercise his put option and sell product X at $95, then immediately buy back the product in the market at $90. So:

`Value of put option at expiration = $95 - $90 = $5`

Now we subtract the amount Fabio paid for the put option to get his net p&l in the trade.

`Net Profit = $5 - $1 = $4`

*Nice trade, Fabio.*

Let’s take a similar example…

- Fabio pays $1 for $95 strike calls on product X
- At the expiration date, product X is trading in the market at $100

*What is Fabio’s net P&L now?*

We follow this process:

- Calculate the value of the option
- Subtract the value we paid for it.

The product is trading above the value of Fabio’s call strike. So there’s no point exercising these options. Fabio is a smart man and he wouldn’t sell product Z for less than he could get in the market.

So Fabio’s options expire “out of the money”. They expire worthlessly.

`Value of put option at expiration = $0`

Now we subtract the amount Fabio paid for the call option to get her net p&l in the trade.

`Net Profit = $0 - $1 = -$1`

It was a loss – but because he bought options, Fabio’s loss was limited to the amount he paid for the puts.

We can plot the P&L of a long options position held to expiration as a function of the price of the underlying asset.

To do this we:

- calculate the value of the option at expiry for a range of underlying asset prices
- subtract the value paid for the option (“the premium”) from each point.

min_price <- 50 max_price <- 150 strike <- 95 premium <- 1 put_payoffs <- tibble(price = c(min_price, strike, max_price)) %>% mutate(putvalue = case_when(price > strike ~ 0, TRUE ~ strike - price)) %>% mutate(payoff = putvalue - premium) put_payoffs %>% ggplot(aes(x = price, y = payoff)) + geom_line() + ggtitle(paste0('Payoff profile for long $95 put - Premium $1'))

We see that:

- Our maximum loss is the amount we paid for the put options
- Our profit is unlimited
- We break even at the price where the value of the put option at expiration is equal to the amount we paid for the puts. This is
`strike - premium = $95 - $1 = $94`

*Now we understand the basics, we will next look at a simple applied use of put options: portfolio hedging.*

The post Long Options Payoff Profiles appeared first on Robot Wealth.

]]>The post The Value of an Option at Expiration appeared first on Robot Wealth.

]]>*Read the previous parts of this 101 series on options:*

Options have value because the future is uncertain.

One thing that is known and always unchanging, however, is the value of a given option contract at expiry. This is the most fundamental thing about an option.

A call option gives the holder the right to **buy** the underlying at the strike price on or before the expiration date.

That means that the value, \( V_{call} \), of the call option at expiration, is described by a step-wise function in the price at expiry, \( p_e \) and the strike, \( s \):

\( V_{call} = \begin{cases} 0 & p_e \leq s \\\ p_e - s & p_e \geq s\end{cases} \)The option, at expiration, is:

- worthless if the price at expiration is less than or equal to the strike (“out of the money”)
- worth something if the price at expiration is more than the strike (“in the money”)

If the asset is trading below the strike price then we say that the option is “out of the money”. The option gives you the option to buy the asset at the strike price – but nobody would willingly buy an asset at a price higher than they could buy it in the market. So an “out of the money” call option is worthless at expiry.

If the option expires “in the money” then it is worth the price at expiration less the strike. That’s because you can *exercise* the option to buy the stock at the strike price and you can immediately sell at the market price at expiration, pocketing the difference.

Here’s a visual example of the payoff function of a call option at expiry with a strike of 100:

library(tidyverse) min_price <- 0 max_price <- 200 strike <- 100 call_payoffs <- tibble(price = c(min_price, strike, max_price)) %>% mutate(value = case_when(price < strike ~ 0, TRUE ~ price - strike)) call_payoffs %>% ggplot(aes(x = price, y = value)) + geom_line() + ggtitle('Value of call option at expiration')

A put option gives the holder the right to **sell** the underlying at the strike price on or before the expiration date.

That means that the value, \( V_{put} \), of the put option at expiration is also described by a step-wise function:

\( V_{put} = \begin{cases} s - p_e & p_e < s \\\ 0 & p_e \geq s \end{cases} \)The option, at expiration, is:

- worth something if the price at expiration is less than the strike (“in the money”)
- worthless if the price at expiration is greater than or equal to the strike (“out of the money”)

If the asset is trading above the strike price, then we say that the option is “out of the money”. The option gives you the option to sell the asset at the strike price – but nobody would willingly sell an asset at a price lower than they could sell it in the market. So an “out of the money” put option is worthless at expiry.

If the option expires “in the money” it’s worth the strike less the price at expiration. That’s simply because when the option expires in the money, you acquire a short position in the stock at the (high) strike price and can immediately buy it back at the (lower) expiration price, pocketing the difference.

Here’s a visual example of the payoff function of a call option at expiry with a strike of 100:

put_payoffs <- tibble(price = c(min_price, strike, max_price)) %>% mutate(value = case_when(price > strike ~ 0, TRUE ~ strike - price)) put_payoffs %>% ggplot(aes(x = price, y = value)) + geom_line() + ggtitle('Value of put option at expiration')

That “kink” at the strike price means that by buying options, we get the ability to participate in the upside of a move without participating in the downside.

*Pretty sweet, eh?*

This is better than a stop loss because we always keep our exposure to any upside until expiration. We’re not “stopped out.”

Needless to say, this is extremely attractive. And there are no free lunches in the market—nothing comes for free.

Options contracts are derivative contracts. And for a derivatives contract to trade, there needs to be a buyer and a seller. So we need to find a price for an option where people are prepared to sell it *and *buy it.

Whereas the buyer of the options contract gets to participate in unlimited upside and limited downside, the seller of the options contract gets limited upside and unlimited downside.

*So the seller is going to want compensation for this risk. He will want to get paid for the option.*

*Next, we’ll look at the net P&L from being long options.*

The post The Value of an Option at Expiration appeared first on Robot Wealth.

]]>The post Options 101: Understanding the Basics of Financial Options appeared first on Robot Wealth.

]]>*In the previous article, we discussed what makes an option valuable.* *At its core, an option is about choice—the choice to buy or sell an asset at a specific price within a set timefram*e. *In this article, we’ll explore exactly what this means. *

**An option gives the holder the right, but not the obligation, to trade a certain amount of the underlying asset at a specific price on or before a certain date.**

Let’s break down each of the terms.

What makes options useful is that they, err, give you *options*.

- If you buy a
**call**option, it gives you the option to**buy**the underlying asset. - If you buy a
**put**option, it gives you an option to**sell**the underlying asset.

A single option gives the holder the option to trade a certain amount of the underlying asset.

This is called the *contract unit* or the *contract multiplier*.

- For US stocks, a single option gives you the option to trade 100 shares (assuming they haven’t split).
- For equity index options, the index value is usually 100 times that of the index value.
- For futures options, it is one futures contract.

The underlying asset is the product (spot product) to which the option relates. Options are available on stocks, indices, and futures.

The price the holder of the option can trade at is called the *strike price.*

- The holder of a call option can buy at the strike price.
- The holder of a put option can sell at the strike price.

This is the *expiration date* of the option, which is the last day the option contract exists.

The holder of the option can *exercise* their right to buy or sell at the strike price on or before the *expiration date.*

- A European option can only be exercised on the
*expiration date*. - An American option can be exercised anytime before or on the
*expiration date*.

- $200 calls on TSLA, expiring on 17 July 2024.
- American option. Contract unit: 100.

The owner of these calls has the option to buy 100 TSLA shares at $200 on or before 17 July 2024.

At the time of writing TSLA is trading at $180.

So you could buy TSLA shares cheaper in the market than you could by *exercising* this option. So, the *intrinsic value* of this call option is $0. It’s not intrinsically valuable to us *right now*.

If TSLA were trading at $210, then the option *is *intrinsically valuable. You could exercise the option, buying 100 shares of TSLA stock at $200, then immediately sell them on the stock market for a profit of $10 per share.

If the option has some time left to expiry, then it’s always going to have some value, *because the TSLA share price is volatile.* As long as there is a *chance* that the price will exceed $200 by 17 July 2024, the option will have some value.

*How much value? We’ll get to that next*.

The post Options 101: Understanding the Basics of Financial Options appeared first on Robot Wealth.

]]>The post Options are just options – Why are they valuable? appeared first on Robot Wealth.

]]>Financial options contracts are really just *options. *That is, they give us a choice or an *option* to do something. We’ll go through a simple example of why options are valuable.

Let’s say I offer you the option to use my truck.

What might the value of this option be to you?

Maybe you need to pick up a bath from the hardware store *today.*

In this case, the option to use my truck would be *intrinsically valuable* to you right now.

**The option is worth more to you the more intrinsically valuable it is (the more you need the truck).**

Maybe you know you’re going to need a truck every Easter to take your Aunt’s chickens to their annual spa day.

In this case, the option to use my truck *at any point in the life of the option *just isn’t that valuable to you. You have a lot of certainty around what’s going to happen and when you are going to need a truck. You’d just go and hire a truck at Easter. You don’t need the optionality.

On the other hand, if you suspect that you might need to use a truck over the next few months, but are not sure exactly when and under what conditions, then the option is valuable.

**The option is worth more to you, if it is not currently intrinsically valuable, the more uncertain the range of potential outcomes.**

It’s clear that the option to use my truck would be more valuable if you had the option for longer.

Maybe you need to pick up that bath now, or maybe you need it later in the week? Maybe you have an uncertain need for a truck over the next year?

**The option is worth more to you the longer it lasts.**

If you have the option to do something, the value of the option depends on a few main factors:

- Is the thing you have an option on intrinsically valuable?
*(if the thing you have an option over is more valuable, then the option is more valuable)* - How uncertain (random) is the outcome?
*(more uncertain => more valuable, if not intrinsically valuable right now)* - How long do you have the option for?
*(option lasts longer => higher price)*

Financial options are options just like this. They give you the option to trade an asset at a certain price by a certain date.

**If you are offered a call option, this gives you the option to buy an asset at a certain price by a certain date.**

Just like the truck option, the value of this option depends on:

- Is the trade intrinsically valuable?
*Can I buy it cheaper in the market or at the option price (the “strike”)* - How uncertain is the outcome?
*If the price of the asset is moving around a lot then there’s more of a chance that the option becomes intrinsically valuable than if it is barely moving.* - How long does the option last?
*The longer the option, the more time it has to become intrinsically valuable.*

Options are simply choices. Most of the core ideas around the fair value and risk associated with options can be understood in the same way as any other choice you can make in life.

*In the next article, we’ll go over some definitions and examples*.

The post Options are just options – Why are they valuable? appeared first on Robot Wealth.

]]>The post Finding Edges: The Importance of Being a Pirate appeared first on Robot Wealth.

]]>In much of life, success results from doing what other people expect you to be doing.

You get top marks in an exam by answering the way the marker expects you to.

Rising up the corporate ladder has as much to do with “being seen to do the right thing” as it has to do with results.

*I’m not judging. I played these games – and I played them well.*

**Unfortunately, “being good and playing by the rules” isn’t going to help you in trading.**

As hedge-fund-manager-turned-vision-questing-FinTwit-celebrity Hugh Hendry is fond of saying, **“You need to be a pirate”.**

You need to zig when others are zagging.

You need to think outside of the box…

Now, I admit it’s easier to think outside the box when you’re a millionaire living in St Barts, with all the time in the world to eat mushrooms and draw Jesus and Elmo on your wall.

But the message is valid.

The price in a market is as much a function of the *flow of money* into the market as a precise underwriting of the theoretical payoffs of a position.

*That means that trading edges come from appreciating what others believe to be true, what motivations they have, and what constraints they are under.*

Rather than joining other traders, you should try to exploit what they are doing.

*You need to be a Pirate.*

- If you find yourself attracted to things like this: “Don’t fight the trend. Buy the MACD cross-over. Risk 2% of your account on each trade.”
- If you find yourself wanting exact rules and prescriptions to follow
- If you find yourself following other people into trades and positions

Then no, you are not a pirate. You need some pirate training.

As this is an article about thinking outside the box, let’s start with a non-trading example.

A well-known effect in Football *(soccer)* is the New Manager Effect. This is the tendency of team performance to improve under a new manager following the sacking of the old manager.

If you are not a pirate, you may take this at face value. This may excite you, and you may decide that betting on teams with a new manager is a good idea.

The pirate thinks differently. The pirate might also be excited, but not for the same reason.

The pirate’s reaction to common wisdom like this is **“BULLSHIT!”**

The pirate’s thought process looks like this:

- I’ve identified some common wisdom
- I doubt it is (entirely) valid
- But I suspect other people think it is and over-react to it by betting on the team with the new manager
- This demand will make the odds worse for the team with the new manager
- So, I might be able to profitably take the other side of the bet.

The pirate refuses to accept “common wisdom”.

Motivated by the idea of an exploitable behavioural anomaly, the pirate digs into the data.

He suspects that a team’s performance does improve under a new manager – but the new manager is probably not the cause of this.

Following some simple but careful analysis *(just like we teach in Trade Like a Quant Bootcamp)*, he finds that:

- Performance under a new manager tends to be better than performance under the old manager before their sacking.
- But managers tend to be sacked following extremely bad performance.
- Extremely bad performance tends to be followed by less bad performance, regardless of whether there’s a new manager or not.

The pirate finds that the “common wisdom” is only partially right.

Teams do tend to do better under a new manager. But that’s only because managers tend to be sacked following extremely bad team performance.

The effect is entirely explained by regression to the mean in performance. The new manager has no causal effect.

Now the pirate is *really *excited. He knows that enough people think there’s a causal effect that it will be priced into the odds through excess demand for betting on the team with the new manager.

He runs the numbers and finds that there has historically been a small but exploitable inefficiency.

This is an opportunity to make money by exploiting the marginal effect of others acting upon “common wisdom which isn’t quite true”.

This is what pirates live for.

**Say “BULLSHIT” to common wisdom. It’s a pirate superpower.**

The post Finding Edges: The Importance of Being a Pirate appeared first on Robot Wealth.

]]>The post Revisiting Overnight vs Intraday Equity Returns appeared first on Robot Wealth.

]]>Back in May 2020, in the eye of the Covid storm, we looked at overnight vs intraday returns in US equities.

Intuitively, we’d probably expect to see higher average returns overnight when the market is closed – because it’s much more difficult to hedge and manage our exposures when the cash market is closed, so we might expect to get paid a premium, on average, for taking that risk.

And that’s exactly what we found:

Most of the returns have indeed come overnight – which is quite remarkable in my opinion – but at the same time, most of the big negative returns have also come overnight, which supports the idea of a premium associated with the additional risks of holding positions overnight.

This week, I wanted to see whether that behaviour had changed since 2020.

Let’s dive in.

First, we’ll get some data for the SPY ETF from Yahoo. In the code below, I’m sourcing a script called `yahoo_prices.R`

, which retrives prices from Yahoo Finance. You can find the code here.

```
# load libraries and functions
library(tidyverse)
# set chart options
options(repr.plot.width = 14, repr.plot.height = 7, warn = -1)
theme_set(theme_bw())
theme_update(text = element_text(size = 20))
# functions for getting data
source("../../data_tools/yahoo_prices.R")
```

```
# get SPY data
spy <- single_ticker_prices_yahoo("SPY", "2000-01-01")
tail(spy)
```

Date | Open | High | Low | Close | Adj.Close | Volume | |
---|---|---|---|---|---|---|---|

<date> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <int> | |

6137 | 2024-05-22 | 530.65 | 531.38 | 527.60 | 529.83 | 529.83 | 48390000 |

6138 | 2024-05-23 | 532.96 | 533.07 | 524.72 | 525.96 | 525.96 | 57211200 |

6139 | 2024-05-24 | 527.85 | 530.27 | 526.88 | 529.44 | 529.44 | 41258400 |

6140 | 2024-05-28 | 530.27 | 530.51 | 527.11 | 529.81 | 529.81 | 36269600 |

6141 | 2024-05-29 | 525.68 | 527.31 | 525.37 | 526.10 | 526.10 | 45190300 |

6142 | 2024-05-30 | 524.52 | 525.20 | 521.33 | 522.61 | 522.61 | 46377600 |

Now we calculate:

- overnight returns as the % difference between the close price and the previous open
- intraday returns as the % difference between the open and the close

```
# calculate intraday and overnight returns
spy <- spy %>%
mutate(intraday = Close/Open - 1) %>%
mutate(overnight = Open/lag(Close) - 1) %>%
na.omit()
tail(spy)
```

Date | Open | High | Low | Close | Adj.Close | Volume | intraday | overnight | |
---|---|---|---|---|---|---|---|---|---|

<date> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <int> | <dbl> | <dbl> | |

6137 | 2024-05-22 | 530.65 | 531.38 | 527.60 | 529.83 | 529.83 | 48390000 | -0.0015452878 | -0.001336121 |

6138 | 2024-05-23 | 532.96 | 533.07 | 524.72 | 525.96 | 525.96 | 57211200 | -0.0131341934 | 0.005907565 |

6139 | 2024-05-24 | 527.85 | 530.27 | 526.88 | 529.44 | 529.44 | 41258400 | 0.0030122688 | 0.003593342 |

6140 | 2024-05-28 | 530.27 | 530.51 | 527.11 | 529.81 | 529.81 | 36269600 | -0.0008675241 | 0.001567728 |

6141 | 2024-05-29 | 525.68 | 527.31 | 525.37 | 526.10 | 526.10 | 45190300 | 0.0007989328 | -0.007795257 |

6142 | 2024-05-30 | 524.52 | 525.20 | 521.33 | 522.61 | 522.61 | 46377600 | -0.0036414911 | -0.003003148 |

Plot overnight and intraday returns:

```
spy %>%
pivot_longer(c(intraday, overnight), names_to = 'period', values_to = 'returns') %>%
group_by(period) %>%
mutate(cumreturns = cumprod(1+returns)) %>%
ggplot(aes(x=Date, y=cumreturns, color=period)) +
geom_line() +
labs(
title = "Overnight vs Intraday Returns",
y = "Cumulative Return"
)
```

We can see that the effect has persisted: the majority of the returns over the full cycle have come overnight. As have the most significant negative returns. No risk no reward.

I also wanted to see what the effect looked like using adjusted open and close prices:

```
spy %>%
mutate(Adj.Open = Open * (Adj.Close/Close)) %>%
mutate(Adj.intraday = Adj.Close/Adj.Open - 1) %>%
mutate(Adj.overnight = Adj.Open/lag(Adj.Close) - 1) %>%
na.omit() %>%
pivot_longer(c(Adj.intraday, Adj.overnight), names_to = 'period', values_to = 'returns') %>%
group_by(period) %>%
mutate(cumreturns = cumprod(1+returns)) %>%
ggplot(aes(x=Date, y=cumreturns, color=period)) +
geom_line()+
labs(
title = "Overnight vs Intraday Returns",
subtitle = "Calculated on adjusted prices",
y = "Cumulative Return"
)
```

The effect is even more pronounced using adjusted prices.

This paper looks at the returns from equity index futures and suggests that nearly 100% of those returns have come in one hour between 2 am and 3 am.

This is an insane result if true, and something we’ve been meaning to look into for a while. We’ll do that in the near future.

The post Revisiting Overnight vs Intraday Equity Returns appeared first on Robot Wealth.

]]>The post Trading 101: Understanding the Expected Value of Uncertain Bets appeared first on Robot Wealth.

]]>Industry veterans sometimes remark that successful gamblers tend to make good traders, and engineers tend to make lousy traders.

This is a gross generalisation, of course, but one reason is that trading, at the most fundamental level, is a game of pricing uncertain outcomes. This requires probabilistic thinking, and engineers tend to be trained to think deterministically.

Indeed, thinking probabilistically is hard for most people.

That’s why so much retail trading tends to involve buying when the news is good and the price is increasing, and selling when the news is bad and the price is decreasing.

That’s deterministic thinking, and we’re good at that because we evolved that way – there isn’t much need to think probabilistically when you are trying to avoid being eaten by a bear.

On the other hand, a more thoughtful assessment of probabilities is hard. If you like money, however, you’re going to need to learn to think probabilistically.

How do we “think probabilistically”?

Let’s go through the basics.

Imagine someone is offering you a game. You roll a dice. If you roll 5 or 6 then you get $1,000. If you roll any other number you get nothing.

What would you pay to play this dice game?

Well, this is a risky game, and most people don’t like playing games in which they can lose money. But, to start with, at least, let’s assume that you don’t mind taking risks and you are only interested in maximising the expected value of the bets you take.

First, you must work out the **price at which you are indifferent to playing the game.**

If you don’t mind taking the risk, then the price at which you are indifferent to playing the game is the price at which you break even over the long term playing it. You want to play the game if it’s cheaper than this value, and you want to pass if it’s more expensive.

How do I calculate that?

It’s simple (in this toy example, anyway.)

You write down all possible outcomes of the game, and for each possible outcome you write down:

- the probability of that outcome occurring
- the payout if that outcome occurs.

Then, you multiply these two figures for each possible outcome and sum them up.

That gives you the expected value of the game – which is also the price at which you should be indifferent to playing the game if you don’t mind taking on the risk.

Here it is for that game:

If you are just looking to maximise expected return and don’t mind taking on risk, then you should only play that game if you can play it for less than $333.3

But I don’t like taking on unnecessary risk!

Good. Me neither.

Of course, you are not indifferent to playing games in which you might lose a significant amount of money!

You probably won’t play this game, in which you can lose a reasonable amount of money, for $333, unless that’s a small amount of money to you and you can play the game repeatedly.

A 30 cent edge is just not worth the risk of losing $333, for most people.

This is where the idea of **risk premium** comes in.

Players of risky games with uncertain payoffs demand a premium for taking on that uncertainty. So maybe the price the aggregate market would be prepared to pay for this game would be less than $333. This results in positive expected value for those prepared to take on the risk.

How does trading differ from this toy example?

In trading, the outcomes, their probabilities and their payoff are subject to uncertainty.

In our toy example, we could calculate the “risk-neutral fair value” of the game exactly because we knew the probabilities and the payoffs.

In view-based trading, we have to forecast every one of these variables.

In derivatives pricing, we know the payoffs, but we have to forecast the probabilities.

This is hard, but just because something is hard doesn’t mean you shouldn’t do it.

And you really do need to get used to thinking in these terms if you want to be competitive in trading.

A nice side benefit of thinking this way is that if you understand this, you also understand pretty much all of derivative pricing (the important stuff anyway). The fair value of an option (in risk-neutral land) is simply the probability-weighted sum of all the payoffs at expiry. You can do this without understanding anything about BSM or understanding a single Greek letter.

The post Trading 101: Understanding the Expected Value of Uncertain Bets appeared first on Robot Wealth.

]]>The post On Having an Edge appeared first on Robot Wealth.

]]>The first thing you need as a trader is a clear edge.

*What do I mean by “edge?”*

Edge comes from a market inefficiency that means you can buy cheap and sell rich on average over the long run.

Said differently, **edge is positive expected value.**

Expected value is the return you expect to realise from the edge if you could hit it an infinite number of times. Sophisticated people might describe it as the probability-weighted value of all payoffs summed over all possible outcomes.

The idea of positive expected value simply captures the notion that any single trade could go either way (even the best trading strategies have plenty of losing trades) but that, in the long run, you expect to make more than you lose.

The idea of expected value is crucial. I’ve noticed that most gamblers tend to understand it, but many traders do not.

For example, you sometimes hear traders say that by “letting winners run and cutting losses” they can create an edge. This is simply not true (most of the time). You’ll just end up with more (smaller) losses than (larger) winners. And, absent strong trend effects, the expected value is zero less trading costs.

“Option income traders” and “scale scalpers” often try to do the opposite. They create structures with a high win rate. But in doing so, they concentrate risk into the tails, meaning that the few losses they have are likely to be very large.

This has not created an edge—it has created an asymmetry in which the frequent wins are small and the infrequent losses are very large.

Again, all things being equal, the expected value is zero (less trading costs).

So you need to have an edge – something with positive expectancy.

And you really need to have some idea *why *it has positive expectancy. It isn’t enough to have a profitable backtest. You have to have an idea of why it makes money.

Traders can certainly make money without a clear idea of why they have an edge. For example:

- A trader that trades small caps from the long side is likely mostly getting paid because of the equity risk premium and size factor – whatever they think the source of their edge might be.
- “Option income” traders may think that their edge comes from their structures and take-profit rules – but their edge is that they are net sellers of equity index options and, in particular, OTM puts. They’re harnessing the volatility risk premium.
- Mean-reversion “scalpers” and “spreaders” are getting paid mostly for providing liquidity to the market.

So you don’t *need* to understand where your edge comes from to make money. But it helps enormously if you do:

- You will trade more simply.
- You will trade more robustly.
- You will remain more humble.
- You will sleep better at night because you’re not wondering whether to turn your strategy off based solely on its recent returns.

Once you have an edge and you understand where it comes from, you have to exploit it in a way that lets you keep your money. We would call this *risk management* or *portfolio construction*.

**Trade Like a Quant Bootcamp is a course on the fundamentals of getting an edge and exploiting it in a sensible way. Find out more, and sign up for the free mini-course to give it a test run here.**

The post On Having an Edge appeared first on Robot Wealth.

]]>