Skip to content
All library documents

Black–Scholes Pricing for Cash-or-Nothing Currency Options

Article Quant Q&A · Author: Snapula

Summary

The document presents a Black–Scholes calculation for a cash-or-nothing binary option on a currency price. The contract pays one unit of the same currency when the terminal price exceeds the strike, and nothing otherwise. The code calculates the discounted risk-neutral probability of finishing above the strike using the model’s second standardized variable, then asks how to adapt the calculation for an asset-or-nothing payout.

It does not provide the requested conversion or compare the two payoff structures, so the central question remains unanswered. The example offers a starting point for understanding binary option pricing, but it gives no derivation, validation, market data, or discussion of assumptions such as volatility estimation and exercise conventions. The stated time value and volatility units should also be checked carefully when applying the formula.

Key ideas

  • A cash-or-nothing binary pays a fixed amount if the terminal price finishes above the strike.
  • The example discounts the model-implied probability of that event.
  • An asset-or-nothing payoff requires a different pricing expression, which the document does not supply.
  • The calculation depends on consistent annualization of volatility and time to expiry.

Tags

Full text
# Binary Options: convert from "Cash or Nothing" to "Asset or Nothing"


# Binary Options: convert from "Cash or Nothing" to "Asset or Nothing"












I have a formula that uses Black-Scholes to compute the implied pricing of a "Cash or Nothing" binary option on the price of a currency.

The option is priced/traded in the same currency as S, K and the payout is 1 unit of same currency if S(T) > K and 0 if S(T) < K. The option's price ranges from 0 - 1. I'm trying to figure out how to change the formula from what I believe is the cash_or_noting formula to what I think should be the asset_or_nothing formula.

```
S = 110 #current_price
K = 100 #ATM strike
v = 1.20 #annualized volatility
r = 0.00 #interest rate
T =  0.44 #days remaining (annualized)

from scipy.stats import norm
from math import exp, log, sqrt

d2 = (log(S/K) + (r - 0.5 * v**2) * T) / (v*sqrt(T))
print (exp(-r * T) * norm.cdf(d2))
```

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.