1 Option Contracts: Call and Put Options
Option contracts are financial derivatives that provide the holder with the right, but not the obligation, to buy (call option) or sell (put option) an underlying asset at a predetermined price within a specified time period. These contracts are widely used in financial markets for hedging, speculation, and risk management purposes.
1.1 Call Option
A call option gives the holder the right to buy the underlying asset at a specified price, known as the strike price, on or before the expiration date. The buyer of a call option anticipates that the price of the underlying asset will rise, enabling them to profit from the price difference.
The formula for estimating the price of a European call option is given by the Black-Scholes model:
\[ C = S \cdot N(d_1) - X \cdot e^{-r \cdot t} \cdot N(d_2)\] Where:
- C is the estimated price of the call option.
- S is the current price of the underlying asset.
- N(d_1) and N(d_2) are cumulative standard normal distribution functions.
- X is the strike price of the option.
- r is the risk-free interest rate.
- t is the time to expiration of the option, expressed in years.
1.2 Put Option
A put option gives the holder the right to sell the underlying asset at the strike price on or before the expiration date. Buyers of put options anticipate that the price of the underlying asset will decrease, allowing them to profit from selling at a higher strike price.
The formula for estimating the price of a European put option can be derived from the Black-Scholes model:
\[P = X \cdot e^{-r \cdot t} \cdot N(-d_2) - S \cdot N(-d_1)\]
Where:
- P is the estimated price of the put option.
- S is the current price of the underlying asset.
- N(-d_1) and N(-d_2) are cumulative standard normal distribution functions (note the negative sign).
- X is the strike price of the option.
- r is the risk-free interest rate.
- t is the time to expiration of the option, expressed in years.
2 Option Price
2.1 Payoff and Intrinsic Value
The payoff of an option contract refers to the profit or loss that the holder would incur at expiration, based on the underlying asset’s price and the strike price. The intrinsic value, on the other hand, represents the portion of the option’s value that is solely determined by the relationship between the underlying asset’s price and the strike price.
Call Option Payoff and Intrinsic Value For a call option, the payoff can be calculated as follows:
\[\text{Call Payoff} = \max(S - X, 0)\] Where:
S is the price of the underlying asset at expiration. X is the strike price of the call option. The intrinsic value of a call option is given by:
\[\text{Call Intrinsic Value} = \max(S - X, 0)\]
The intrinsic value is positive only when the underlying asset’s price (S) is higher than the strike price (X). In such cases, the call option is “in-the-money” and has intrinsic value.
Put Option Payoff and Intrinsic Value For a put option, the payoff can be calculated as:
\[\text{Put Payoff} = \max(X - S, 0)\]
Where:
S is the price of the underlying asset at expiration. X is the strike price of the put option. The intrinsic value of a put option is given by:
\[\text{Put Intrinsic Value} = \max(X - S, 0)\]
The intrinsic value is positive only when the strike price (X) is higher than the underlying asset’s price (S). In such cases, the put option is “in-the-money” and possesses intrinsic value.
It’s important to note that the intrinsic value represents the minimum value of an option, as it disregards factors such as time remaining until expiration and implied volatility. The total value of an option, including its extrinsic value, will depend on these additional factors.
2.2 payoff and profit diagrams for both call and put options:
library(ggplot2)
# Define the parameters
S <- seq(80, 120, by = 1) # Range of underlying asset prices
X <- 100 # Strike price
# Calculate the payoff and profit for call option
call_payoff <- pmax(S - X, 0)
call_profit <- call_payoff - max(0, X - S)
# Calculate the payoff and profit for put option
put_payoff <- pmax(X - S, 0)
put_profit <- put_payoff - max(0, S - X)
# Plot the call option payoff and profit diagrams
call_plot_data <- data.frame(S = S, Payoff = call_payoff, Profit = call_profit)
call_plot <- ggplot(call_plot_data, aes(x = S)) +
geom_line(aes(y = Payoff, color = "Payoff"), linetype = "dashed") +
geom_line(aes(y = Profit, color = "Profit")) +
labs(title = "Call Option Payoff and Profit Diagrams", x = "Underlying Asset Price (S)", y = "Payoff / Profit") +
scale_color_manual(values = c("Payoff" = "blue", "Profit" = "red")) +
theme_minimal()
# Plot the put option payoff and profit diagrams
put_plot_data <- data.frame(S = S, Payoff = put_payoff, Profit = put_profit)
put_plot <- ggplot(put_plot_data, aes(x = S)) +
geom_line(aes(y = Payoff, color = "Payoff"), linetype = "dashed") +
geom_line(aes(y = Profit, color = "Profit")) +
labs(title = "Put Option Payoff and Profit Diagrams", x = "Underlying Asset Price (S)", y = "Payoff / Profit") +
scale_color_manual(values = c("Payoff" = "blue", "Profit" = "red")) +
theme_minimal()
# Display the plots
call_plotput_plot2.3 Practice:
Consider a long put option with strike price K=$100. The current stock price is \(S_t=\$80\) and the put premium is $5.
What is the intrinsic value of the put option at time t? Find the payoff and profit if the spot price at the option expiration date T is ST=$75. Draw the payoff and profit diagrams.
# Define the parameters
K <- 100 # Strike price
St <- 80 # Current stock price
premium <- 5 # Put premium
ST <- 75 # Stock price at expiration
# Calculate the intrinsic value of the put option
intrinsic_value <- max(K - St, 0)
# Calculate the payoff and profit at expiration
payoff <- max(K - ST, 0)
profit <- payoff - premium
# Plot the payoff and profit diagrams
library(ggplot2)
# Range of underlying asset prices
S <- seq(70, 110, by = 1)
# Calculate the payoff and profit for put option
put_payoff <- pmax(K - S, 0)
put_profit <- put_payoff - premium
# Create the plot
put_plot_data <- data.frame(S = S, Payoff = put_payoff, Profit = put_profit)
put_plot <- ggplot(put_plot_data, aes(x = S)) +
geom_line(aes(y = Payoff, color = "Payoff"), linetype = "dashed") +
geom_line(aes(y = Profit, color = "Profit")) +
geom_vline(xintercept = St, linetype = "dotted", color = "red") +
labs(title = "Put Option Payoff and Profit Diagram", x = "Underlying Asset Price (S)", y = "Payoff / Profit") +
scale_color_manual(values = c("Payoff" = "blue", "Profit" = "red")) +
theme_minimal()
# Display the plots
put_plot# Print the results
paste("Intrinsic value of the put option:", intrinsic_value)## [1] "Intrinsic value of the put option: 20"
paste("Payoff at expiration:", payoff)## [1] "Payoff at expiration: 25"
paste("Profit at expiration:", profit)## [1] "Profit at expiration: 20"
2.3.1 2.
Consider a European put option priced at $2.50 with strike price $22 and a European call option priced at $4.75 with strike price $30. What are the maximum losses to the writer of the put and the buyer of the call?
# Put option details
put_premium <- 2.50
put_strike <- 22
# Call option details
call_premium <- 4.75
call_strike <- 30
# Maximum loss for the put option writer
put_max_loss <- put_strike
# Maximum loss for the call option buyer
call_max_loss <- call_premium
# Print the results
paste("Maximum loss for the writer of the put option:", put_max_loss)## [1] "Maximum loss for the writer of the put option: 22"
paste("Maximum loss for the buyer of the call option:", call_max_loss)## [1] "Maximum loss for the buyer of the call option: 4.75"
3 Arbitrage opportunities
3.1 Example:
Assume that a put option with strike price 10 is worth $5, while the otherwise identical put option but strike price 9 is worth $6. What should you do to earn at least $1000 guaranteed profit?
# Put option details
strike_price_1 <- 10
put_price_1 <- 5
strike_price_2 <- 9
put_price_2 <- 6
# Calculate the potential arbitrage profit
profit_per_option = abs(put_price_2 - put_price_1)
num_options = ceiling(1000 / profit_per_option)
total_investment = num_options * min(put_price_1, put_price_2)
guaranteed_profit = num_options * profit_per_option
# Check for arbitrage opportunity and calculate guaranteed profit
if (put_price_1 < put_price_2) {
# Arbitrage strategy
buy_options = num_options
sell_options = num_options
# Print the arbitrage strategy and guaranteed profit
paste("To earn a guaranteed profit of at least $1000, take the following arbitrage strategy:")
paste("Buy", buy_options, "put option(s) with strike price", strike_price_1, "at a price of", put_price_1)
paste("Sell", sell_options, "put option(s) with strike price", strike_price_2, "at a price of", put_price_2)
paste("Total investment required:", total_investment)
paste("Guaranteed profit:", guaranteed_profit)
} else if (put_price_1 > put_price_2) {
# Arbitrage strategy
buy_options = num_options
sell_options = num_options
# Print the arbitrage strategy and guaranteed profit
paste("To earn a guaranteed profit of at least $1000, take the following arbitrage strategy:")
paste("Buy", buy_options, "put option(s) with strike price", strike_price_2, "at a price of", put_price_2)
paste("Sell", sell_options, "put option(s) with strike price", strike_price_1, "at a price of", put_price_1)
paste("Total investment required:", total_investment)
paste("Guaranteed profit:", guaranteed_profit)
} else {
paste("No arbitrage opportunity exists.")
}## [1] "Guaranteed profit: 1000"
3.2 Practice
3.2.1 1.
Assume that an American put option with time to expiry 1 year is worth $2, while the otherwise identical put option but time to expiry 2 years is worth $1. What should you do to earn at least $1000 guaranteed profit?
# Put option details
price_1_year <- 2
price_2_years <- 1
# Calculate the potential arbitrage profit
profit_per_option <- price_1_year - price_2_years
num_options <- ceiling(1000 / profit_per_option)
# Arbitrage strategy
buy_options <- num_options
sell_options <- num_options
# Calculate the total investment required
total_investment <- num_options * price_2_years
# Calculate the guaranteed profit
guaranteed_profit <- num_options * profit_per_option
# Print the arbitrage strategy and guaranteed profit
paste("To earn a guaranteed profit of at least $1000, take the following arbitrage strategy:")## [1] "To earn a guaranteed profit of at least $1000, take the following arbitrage strategy:"
paste("Buy", buy_options, "put option(s) with time to expiry 2 years at a price of $", price_2_years)## [1] "Buy 1000 put option(s) with time to expiry 2 years at a price of $ 1"
paste("Sell", sell_options, "put option(s) with time to expiry 1 year at a price of $", price_1_year)## [1] "Sell 1000 put option(s) with time to expiry 1 year at a price of $ 2"
paste("Total investment required: $", total_investment)## [1] "Total investment required: $ 1000"
paste("Guaranteed profit: $", guaranteed_profit)## [1] "Guaranteed profit: $ 1000"
3.2.2 2,
Using the no-arbitrage principle or the portfolio dominance principle, we can prove the following relationships in options pricing:
- The difference in the values of two otherwise identical options cannot be greater than the difference in their strike prices.
Proof: Let’s consider two call options with the same underlying asset, expiration date, and other parameters, but different strike prices, K1 and K2, where K1 < K2. If the difference in their prices is greater than K2 - K1, it means that the price of the option with strike K1 is higher than the price of the option with strike K2 plus (K2 - K1). This situation violates the no-arbitrage principle because an arbitrageur could sell the option with strike K1, buy the option with strike K2, and keep the difference, earning a risk-free profit.
- A call option is never worth more than the stock price.
Proof: If a call option is priced higher than the current stock price, an arbitrageur could sell the call option and simultaneously buy the underlying stock. By doing so, they would lock in a risk-free profit equal to the difference between the call price and the stock price. This contradicts the no-arbitrage principle.
- An American put option is never worth more than the strike price.
Proof: If an American put option were worth more than its strike price, an arbitrageur could sell the put option and use the proceeds to buy the stock, keeping the difference. If the stock price falls to zero, they can exercise the put and sell the stock at the strike price, making a profit. This violates the no-arbitrage principle.
- A European put option is never worth more than the present value of the strike price.
Proof: Consider a European put option with a strike price K and a current price greater than the present value of K. An arbitrageur could sell the put option and invest the proceeds at the risk-free rate. At expiration, the investment value would be equal to K, which could be used to buy the underlying asset and exercise the put if it’s in the money, guaranteeing a risk-free profit. This violates the no-arbitrage principle.
- The price of an option cannot be negative.
Proof: If the price of an option were negative, an investor could effectively be paid to take ownership of the option. This would create a risk-free profit opportunity because the worst outcome from owning an option is that it expires worthless (in which case the investor would still have made a profit because they were paid to take it). This violates the no-arbitrage principle.