Quantitative Finance & Derivatives
Asymmetric Power Option Formula: Lognormal Power Forward and Volatility
Price power calls MAX(S_T^p - K, 0) in Excel and Arte Sheets by exploiting lognormal closure: S_T^p has exact volatility p*sigma and convexity-boosted power forward E[S_T^p].
Catch the Jensen convexity boost 0.5*p*(p - 1)*sig^2 in S_T^p forwards
When an energy weather derivative or quadratic variance-proxy note pays MAX(S_T^p - K, 0) for power exponent p > 0, raising a lognormal price S_T to power p preserves exact lognormality! However, raising the forward (S*EXP(b*T))^p is WRONG: by Ito’s lemma, E[S_T^p] = S^p * EXP((p*(b - 0.5*sig^2) + 0.5*(p^2)*sig^2)*T) = S^p * EXP((p*b + 0.5*p*(p - 1)*sig^2)*T), with effective volatility sig_p = p * sig.
Verify by hand for S = 10 (B2), power p = 2 (B3), strike K = 100 (B4, ATM in squared units 10^2 = 100), r = 0.05 (B5), carry b = 0.05 (B6), sig = 0.20 (B7), and T = 1.0 (B8): naive (S*EXP(0.05))^2 = 100 * EXP(0.10) = 110.5171, whereas true quadratic forward F_p = 100 * EXP((2*0.05 + 0.5*2*1*0.04)*1) = 100 * EXP(0.14) = 115.0274 (+4.5103 convexity boost!), with effective volatility sig_p = 2 * 0.20 = 0.4000.
| Power Option Quantity (p = 2) | Exact Lognormal Formula | Sample Output |
|---|---|---|
| Effective Power Volatility sig_p | p * sig = 2 * 0.20 | 0.4000 |
| Naive Squared Forward (Bug) | (S * EXP(b * T))^p = 100 * EXP(0.10) | 110.5171 (Misses convexity!) |
| True Lognormal Power Forward F_p | S^p * EXP((p*b + 0.5*p*(p - 1)*sig^2) * T) | 115.0274 |
| Asymmetric Power Call Value | EXP(-r*T) * (F_p * N(d_1) - K * N(d_2)) | 24.3270 (Reduces to BSM at p = 1) |
Exact Lognormal Power Forward F_p Formula
Check p = 1 first: 0.5 * 1 * 0 * sig^2 = 0, recovering ordinary forward S * EXP(b * T) identically.
=IF(OR(B2 <= 0, B3 <= 0, B7 <= 0, B8 <= 0), "Invalid Power Input", ROUND((B2^B3) * EXP((B3 * B6 + 0.5 * B3 * (B3 - 1) * (B7^2)) * B8), 4))Asymmetric Power Call Value MAX(S_T^p - K, 0) Formula
Apply Black’s forward formula directly to power forward F_p and power volatility sig_p = p * sig. Test setting p = 1 in B3 and K = 10 in B4: the formula collapses identically to standard Black-Scholes!
=LET(s_px, B2, p_exp, B3, k_str, B4, r_rf, B5, b_car, B6, sig_v, B7, t_yr, B8, IF(OR(s_px <= 0, p_exp <= 0, k_str <= 0, sig_v <= 0, t_yr <= 0), "Invalid Power Input", LET(f_pow, (s_px^p_exp) * EXP((p_exp * b_car + 0.5 * p_exp * (p_exp - 1) * (sig_v^2)) * t_yr), sig_p, p_exp * sig_v, st_p, sig_p * SQRT(t_yr), d_1, (LN(f_pow / k_str) + 0.5 * (sig_p^2) * t_yr) / st_p, d_2, d_1 - st_p, u_1, 1 / (1 + 0.2316419 * ABS(d_1)), ph_1, 0.3989422804014327 * EXP(-0.5 * d_1^2) * u_1 * (0.31938153 + u_1 * (-0.356563782 + u_1 * (1.781477937 + u_1 * (-1.821255978 + 1.330274429 * u_1)))), nd_1, IF(d_1 >= 0, 1 - ph_1, ph_1), u_2, 1 / (1 + 0.2316419 * ABS(d_2)), ph_2, 0.3989422804014327 * EXP(-0.5 * d_2^2) * u_2 * (0.31938153 + u_2 * (-0.356563782 + u_2 * (1.781477937 + u_2 * (-1.821255978 + 1.330274429 * u_2)))), nd_2, IF(d_2 >= 0, 1 - ph_2, ph_2), ROUND(EXP(-r_rf * t_yr) * (f_pow * nd_1 - k_str * nd_2), 4))))Try the example
Use the original values or change them to test your understanding.