I'm trying to replicate the Example given in pag. 229-230 of Dynamic Hedging by N. Taleb and I am not sure on how to convert the Greeks in Dollars and how the author is computing the Greeks.
Start with a currency position in GBP-USD. Spot is 1.605. The trader buys a 6-month call (183 days) in the amount of GBP 100 mil. The price is 4.578% and the trader pays $4'578'000. USD rate is 5.8438% (yearly) and GBP is 6.915%. He computes the Forward exchange rate to be 1.5973.
I managed to obtain the call value with BS (see formula in the Appendix) by supposing the market trades at 1, thus dividing the spot rate and the strike (=1.5973 I suppose) by the spot rate.
I would like to replicate the whole "Taleb \$-value column" in the below Table. Take the Delta, which is around 0.50. How do you calculate its value in dollars? Since it is negative, is the trader selling GBP or USD?
Please, let me know if more details are needed. Thanks for the help. I am new to FX Options.
Bonus Part for the ones willing to read everything
I report in the Table below the Greeks, in Dollars values, computed directly from Black-Scholes Model and from "discretization" of the underlying or parameters that affects the BS formula, as it seems Taleb is doing. (see Appendix for formulas).
Greek | BS Model | \$ Value | "Discrete" Method | \$ Value | Taleb \$ Value |
---|---|---|---|---|---|
Delta | 0.5021 | 80'198'736 | 0.00519 | 829'283 | -82'656'000 |
Gamma | 3.4365 | 548'918'092 | 0.03407 | 5'442'567 | 8'355'000 |
Vega | 0.2742 | 43'808'238 | 0.00274 | 438'038 | 438'000 |
$\text{Rho}$ | 0.2334 | 37'292'607 | 0.00237 | 379'053 | 385'000 |
$\text{Rho}_f$ | -0.2464 | -40'767'691 | -0.00250 | -399'570 | -408'000 |
Bonus Questions:
It seems that the face value of 159'730'000$ is used, instead of the one of the call, to compute the "\$-values" above? How Taleb is computing the Dollar value of the Greeks?
Except Gamma, some Greeks are distant some power of 10. I suppose I should multiply the BS Greeks for $0.01$, the increment that I am considering in the "discrete" version of the Greeks since they represent, mathematically, a derivate. Correct?
How is the author calculating the Gamma?
Taleb states that the trader hedge is "50 deltas": what does this means? How does this affect the numbers in my Table?
Taleb is also calculating the sensitivity to $r_f$ in this way: $(183/360) \times 100\text{bp}\times \text{Delta} $. Where does this formula come from?
Again, thanks for the help.
Appendix
Appendix: Black Scholes - Formulas (see Options, Futures and Other Derivatives by Hull, ch. 19)
$d_1 = \frac{\log(S/K)+(r-r_f+0.5\sigma^2)T}{\sigma\sqrt{T}}$
$d_2 = d_1 - \sigma\sqrt{T}$
$c(S;K;T,\sigma,r,r_f) = Se^{-r_f T}\Phi(d_1)-Ke^{-rT}\Phi(d_2)$
$\text{Delta} = \Phi(d_1)e^{-r_f T}$
$\text{Gamma} = \frac{\phi(d_1)e^{-r_f T}}{\sigma S\sqrt{T}}$
$\text{Vega} = S\sqrt{T}\phi(d_1)e^{-r_f T}$
$ \text{Rho} = KTe^{-r_f T}\Phi(d_2) $
$ \text{Rho}_f = STe^{-r_f T}\Phi(d_1)$
Appendix: Discrete Formulas Note: the asset is supposed to trade at 1. I indicate here only the parameter that change.
$\text{Delta} = c(S=1.01S)-c(S=S)$
$\text{Gamma} = \text{Delta}(S=1.01S)-\text{Delta}(S=S)$
$\text{Vega} = c(\sigma=16.7\%)-c(\sigma=15.7\%)$
$ \text{Rho} = c(r=6.8438\%)-c(r=5.8438\%)$
$ \text{Rho}_f =c(r_f=7.915\%)-c(r_f=6.915\%) $
Appendix: R code
call_BS_currency=function(S,K,t,r,rf,sigma=0.157,base=365)
{
d1=(log(S/K)+(r-rf+0.5*(sigma^2))*t/base)/(sigma*sqrt(t/base))
d2=d1-sigma*sqrt(t/base)
c=S*exp(-rf*t/base)*pnorm(d1)-K*pnorm(d2)*exp(-r*t/base)
delta=exp(-rf*t/base)*pnorm(d1)
gamma=dnorm(d1)*exp(-rf*t/base)/(S*sigma*sqrt(t/base))
vega=S*sqrt(t/base)*dnorm(d1)*exp(-rf*t/base)
rho1=K*t/base*exp(-r*t/base)*pnorm(d2)
rho2=-t/base*exp(-rf*t/base)*S*pnorm(d1)
c(c=c,delta=delta,gamma=gamma,vega=vega,rho1=rho1,rho2=rho2)
}
greek_discrete_computation=function(face_value)
{
delta=call_BS_currency(S=1.6050/1.6050*1.01,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[1]-
call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[1]
gamma=call_BS_currency(S=1.6050/1.6050*1.01,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[2]-
call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[2]
vega=call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.167)[1]-
call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[1]
rho1=call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.068438,
rf=0.06915,
base=360,
sigma=0.157)[1]-
call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[1]
rho2=call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.07915,
base=360,
sigma=0.157)[1]-
call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)[1]
c(face_value=face_value/face_value,
delta=delta,
gamma=gamma,
vega=vega,
rho1=rho1,
rho2=rho2)*face_value
}
# BS Greeks and Face Value
100*1e6*1.5973*call_BS_currency(S=1.6050/1.6050,
K=1.5973/1.6050,
t=183,
r=0.058438,
rf=0.06915,
base=360,
sigma=0.157)
# Discrete Greeks
greek_discrete_computation(100*1e6*1.5973)