Digital Options
Digital Options
Visit the Mathema Option Pricing System, supporting FX options and structured product pricing and valuation!
Binary options, also known as digital options, are popular tools in the over-the-counter (OTC) market for hedging and speculation. For financial engineers, they are also one of the building blocks for constructing more complex derivative products.
Here, we first introduce CFETS' pricing method for digital options. As mentioned earlier, CFETS digital options are essentially Cash-or-Nothing Options.
Cash-or-Nothing Options
A Cash-or-Nothing option pays a fixed amount at expiration if the option is in the money. For a call option, the payoff is zero if and if . For a put option, the payoff is zero if and if . The valuation of Cash-or-Nothing options can be performed using the formulas described by Reiner and Rubinstein (1991b):
It can be seen that this is simply the final part of the Black-Scholes formula, where:
Example: What is the value of a nine-month Cash-or-Nothing put option? The futures price is 100, the strike price is 80, the cash payout is 10, the risk-free rate is 6% per annum, and the volatility is 35% per annum.
, , , , , , .
Python Implementation Example
import numpy as np
from scipy.stats import norm
def cash_or_nothing_option_value(S, X, K, T, r, sigma, option_type='call'):
d = (np.log(S / X) + (r - 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
if option_type == 'call':
option_value = K * np.exp(-r * T) * norm.cdf(d)
elif option_type == 'put':
option_value = K * np.exp(-r * T) * norm.cdf(-d)
else:
raise ValueError("Invalid option type. Use 'call' or 'put'.")
return option_value
# Example parameters
S = 100
X = 80
K = 10
T = 0.75
r = 0.06
sigma = 0.35
# Calculate the value of the Cash-or-Nothing put option
put_option_value = cash_or_nothing_option_value(S, X, K, T, r, sigma, option_type='put')
print(f"The value of the Cash-or-Nothing put option is: {put_option_value:.4f}")