Black–Scholes Pricing for an Inverse-Asset Call Payoff
Summary
The document derives a Black–Scholes–Merton value for a call-like payoff that is positive when the terminal asset price exceeds the strike and scales with the reciprocal of that price. It rewrites the payoff using an indicator and inverse asset, relating the first component to a cash-or-nothing digital call and the second to an inverse-price expectation.
It also presents an equivalent transformation into a put on the reciprocal asset, with adjusted carry, and gives a closed-form expression involving normal cumulative distribution terms. A numerical integration example is offered as a check against the formula. The derivation assumes the underlying follows geometric Brownian motion under the risk-neutral measure, with constant rates and volatility; the result does not address more general dynamics, market frictions, or calibration.
Key ideas
- The payoff can be decomposed into a digital call component and an inverse-price component.
- The reciprocal of a geometric Brownian asset follows a process that supports a transformed Black–Scholes valuation.
- A closed-form price can be expressed using normal cumulative distribution terms.
- Numerical integration of the discounted payoff can check the analytical result.
- The formula depends on the Black–Scholes assumptions for rates, volatility, and asset dynamics.
Tags
Full text
# How to derive a valuation formula for an "Asymptotic" Call option?
# How to derive a valuation formula for an "Asymptotic" Call option?
Suppose you have an "Asymptotic" Call option with a payoff equal to $ K * max[1 - K/S_{T}, 0] $, where $K$ is the strike price and $S_{T}$ is the underlying asset's price at maturity.
How would one derive a closed-form valuation formula for this option using the Black-Scholes-Merton framework?
## Answer by Andrea (score 3)
https://quant.stackexchange.com/a/82104
One can apply Ito to $S^{-1}$ and obtain
$d S^{-1} = (\sigma^2 - r) S^{-1} dt - \sigma S^{-1} dW$
The payoff is a put on $S^{-1}$
$K^2 \max (K^{-1} - S^{-1}, 0)$
So the price comes from the Black-Scholes put formula
$K^2 \, \text{Put}\left (\frac{1}{S_0}, \frac{1}{K}, r, q=2r-\sigma^2, \sigma, T \right)$
## Answer by user35980 (score 2)
https://quant.stackexchange.com/a/82061
Interesting. Looks like some kind of deformed digital. By BSM framework I assume you mean $S_T$ follows GBM. Here goes: $$V=e^{-rT}E_Q\left[K\max\left(1-\frac{K}{S_T},0\right)\right] =e^{-rT}E_Q\left[K\left(1-\frac{K}{S_T}\right)1_{S_T>K}\right]$$ which can be simplified to $$ V=Ke^{-rT}E_Q\left[1_{S_T>K}\right] - K^2e^{-rT}E_Q\left[\left(\frac{1}{S_T}\right)1_{S_T>K}\right].$$ So the first term is a $K$-strike digital call with payout $K$. The second term is the "exotic" part which can also be solved for in closed form. So I think your option looks like a regular $K$-strike digital call with a funky payout.
See Kurt G's answer for the explicit solution.
## Answer by Kurt G. (score 2)
https://quant.stackexchange.com/a/82072
The correct pricing formula is $$\tag1 e^{-rT}KN(d_2)-e^{-2rT\,+\,\sigma^2T}\frac{K^2}{S_0}N(d_3) $$ where \begin{align*}\tag2 d_2&=\frac{\ln(S_0/K)+(r-\sigma^2/2)T}{\sigma\sqrt{T}}\,,\\[2mm] d_3&=\frac{\ln(S_0/K)+(r-3\,\sigma^2/2)T}{\sigma\sqrt{T}}=d_2-\sigma\sqrt{T}\,.\tag3 \end{align*} Note that the first term in (1) appears in the BSM formula with a minus sign.
To understand the second term observe that it comes from
$$\tag4 \frac{e^{-2rT}K^2}{S_0}\mathbb E\left[e^{\color{red}+\sigma W_T\color{red}+\sigma^2T/2}1_{\{S_T>K\}}\right]\,. $$ This can be evaluated as usual by completing the square: \begin{align*} &\int_{-\infty}^{d_2} e^{+\sigma\sqrt{T}x+\sigma^2T/2}\frac1{\sqrt{2\pi}}e^{-x^2/2}\,dx= e^{\sigma^2T}\int_{-\infty}^{d_2} e^{+\sigma\sqrt{T}x-\sigma^2T/2}\frac1{\sqrt{2\pi}}e^{-x^2/2}\,dx\\[2mm]&= e^{\sigma^2T}\int_{-\infty}^{d_2}\frac1{\sqrt{2\pi}}e^{-\frac{(x-\sigma\sqrt{T})^2}2}\,dx=e^{\sigma^2T}N(d_2-\sigma\sqrt{T})\,.\tag5 \end{align*} The following code helps to verify this numerically
```
from numpy import log, exp, sqrt
from scipy.integrate import quad
from scipy.stats import norm
def option( S, K, T, r, sig ):
d2 = (log(S/K) + r*T - sig**2*T/2)/sig/sqrt(T)
d3 = (log(S/K) + r*T - 3*sig**2*T/2)/sig/sqrt(T)
Nd2 = norm.cdf(d2)
Nd3 = norm.cdf(d3)
return( exp(-r*T)*K*Nd2 - exp(-2*r*T + sig**2*T)*K**2/S*Nd3 )
def payoff( x, S, K, T, r, sig ):
Sx = S*exp( x*sig*sqrt(T) - sig**2*T/2 + r*T )
return( exp(-r*T)*K*max( 1 - K/Sx, 0 )*norm.pdf(x) )
K = 1.4
sig = 0.2
T = 3
S = 1.3
r = 0.02
PVnum = quad( payoff, -50, 50, args = (S,K,T,r,sig) )
print( PVnum[1] )
print( PVnum[0] )
print( option(S,K,T,r,sig) )
```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.