• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Implied Vol smile roll with spot

Joined
10/14/08
Messages
8
Points
11
Hi,

I am new to the quant world and as such do not have too much experience in modelling. Would appreciate any help that I may get from you guys.

I have created the implied vol surface using eq 14 approximation mentioned in fabio paper "consistent pricing of FX options". Now i wanna implement rolling of this smile with spot. I understand sticky delta rule but thats a very rough cut approximation for the smile roll. I am looking for smthing more robust than that, but haven't been able to come across any litt. on how to roll this vanna-volga smile surface with spot. Any ideas please?

Thanks very much.
 
Like i said earlier, i have implemented the fabio paper eq 14 approximation for creating a vol surface. Although that fails at certain extremely low delta puts for ccycpls with extreme skew. So need to implement it via eq 12 to get a more robust implementation.

Now i am trying to implement Malz paper for the same to be able to compare the two results. However I am facing difficulty in strike inversion given a delta and vol associated with it (calc using the malz formla).

This is my two bit code for getting strike given delta and vol. (in vba)

x = delta / 100 * Exp(Rf(j) * T(j))

y = -Application.NormSInv(x)

GetExactStrikeForDelta = spot * Exp(Rd(j) * T(j)) * Exp(y * vol * (T(j) ^ 0.5) + (Rd(j) - Rf(j) + 0.5 * vol * vol) * T(j))

Here j is the subscript for tenor.

The problem i am facing is that x becomes >1 at some point and hence the code fails.

Can anyone help me? What am i doing wrong here?

Thanks.
 
Attaching the paper as well as the excel sheet with my code. Would appreciate any guidance u can provide me.

I have been told that malz paper is derived for fwd deltas; which basically means that i use fwd instead of spot in the delta formula.. right?

Thanks.
 

Attachments

  • Volga-Vanna pricing_Fabio_Malz.xls
    139 KB · Views: 126
  • option implied probability distribution and excess currency returns.pdf
    3 MB · Views: 141
Seems to me the formula used should be, in terms of spot:
\[K = S_0 exp{(r-q+\frac{1}{2}\sigma^{2})T-\sigma \sqrt{T}N^{-1}[\Delta_{spot} e^{qT}]}\]
Looks to me like your problem is that you're using the domestic rate inside your normsinv call, rather than the foreign rate.

Note that delta in terms of forward rather than spot is \(exp{-rT}N[d_1]\), which may be where you're getting confused. The same formula in terms of the forward would be:
\[K = F exp{\frac{1}{2}\sigma^{2}T-\sigma \sqrt{T}N^{-1}[\Delta_{forward} e^{rT}]}\]
 
hey bob.. tks for the reply.

i checked...am using foreign rate only...

I fixed the problem by calculating values for only otm options...So instead of trying to invert for a 95delta itm call, i am now calculating it for 5d otm put..It works..although not sure if its the correct method..the surface looks better than the one obtained by fabio method. attaching my sheet here..Any comments / guidance to improve my work is very appreciated.


thanks vm.
 

Attachments

  • Volga-Vanna pricing_Fabio_Malz.xls
    167.5 KB · Views: 77
also...I have heard that malz paper is derived for fwd deltas... i interpreted it to mean that instead of spot, we use fwd in this formula [ Replace S by F = S* exp(r*T)]
\(K = S_0 exp{(r-q+\frac{1}{2}\sigma^{2})T-\sigma \sqrt{T}N^{-1}[\Delta e^{qT}]}\)

is that incorrect? plz lemme know if my interpretation of fwd delta is wrong?Thanks in advance for your help
 
Just made an edit to my original post; you might find it helpful.
 
Just made an edit to my original post; you might find it helpful.


Thanks Bob..Your post was very helpful. I was indeed confused between spot n fwd deltas.

Now i am using your eqn for strike inversion:
\(K = F exp{\frac{1}{2}\sigma^{2}T-\sigma \sqrt{T}N^{-1}[\Delta_{forward} e^{rT}]}\)

where F = S * exp((r-q)*T)

Posting my updated file here.

Many Thanks once more.
 

Attachments

  • Volga-Vanna pricing_Fabio_Malz_fwddelta.xls
    168 KB · Views: 132
Smile Invertion

Can you post the paper?

Hello!

I have a doubt with the strikes for the generation of the "0 delta straddle" o "ATM Vol" (call - put). When i applied the Fabio's-Wystup formulas I found the strike that generates this 0 delta straddle (in terms of delta forwards), but when i looked the individual forwards deltas included in this 0 delta straddle, y note that this deltas was not 50 percent as I expected (for example for a 5 years option was 38 percent).

In other hand, when i used the strike invertion formula (not the ATM formula), I found the strikes that make 50 percent call and put respectively, but this strikes was different for call and put. This conclusion is opositte that you could infer in bloomberg XOPT, because in that page when you use forward deltas, there exist a unique strike for call and put that makes 50 percent each delta for the generation of the 0 delta straddle.

Can anyone help me with my contradiction...?
 
[\Delta_{forward} e^{rT}]}>1 ?

Seems to me the formula used should be, in terms of spot:

(K = S_0 exp{(r-q+\frac{1}{2}\sigma^{2})T-\sigma \sqrt{T}N^{-1}[\Delta_{spot} e^{qT}]})

Looks to me like your problem is that you're using the domestic rate inside your normsinv call, rather than the foreign rate.

Note that delta in terms of forward rather than spot is (exp{-rT}N[d_1]), which may be where you're getting confused. The same formula in terms of the forward would be:

(K = F exp{\frac{1}{2}\sigma^{2}T-\sigma \sqrt{T}N^{-1}[\Delta_{forward} e^{rT}]})


Hi Bob,
I have a pratical doubt in these equations, when we calculate the strikes using the surface. Sometimes [\Delta_{forward} e^{rT}]}>1 so N^{-1} does not work. In general this happen when we have a long tenor option and deltas very high"deep in the money options". Do you have an explanation for this problem?


My conclusions is that for long tenor deep in the money options the strikes are very low and we are in the tails of distribution so as the Norminv in not an analitycal function the numeric methods does not work in the tails.



Ronaldo
 
Hello!

I have a doubt with the strikes for the generation of the "0 delta straddle" o "ATM Vol" (call - put). When i applied the Fabio's-Wystup formulas I found the strike that generates this 0 delta straddle (in terms of delta forwards), but when i looked the individual forwards deltas included in this 0 delta straddle, y note that this deltas was not 50 percent as I expected (for example for a 5 years option was 38 percent).

In other hand, when i used the strike invertion formula (not the ATM formula), I found the strikes that make 50 percent call and put respectively, but this strikes was different for call and put. This conclusion is opositte that you could infer in bloomberg XOPT, because in that page when you use forward deltas, there exist a unique strike for call and put that makes 50 percent each delta for the generation of the 0 delta straddle.

Can anyone help me with my contradiction...?
Hi Raul,

I am not so sure about Fabio's formulae, but I'll suggest you try Malz. You will not get such an error with that, since the strike depends directly on delta. Hope that helps.
 
Hi Ronaldo,

From the implmentation point of view, this formula is not entirely correct. It's correct if this would be the spot delta for a call. For the put the formula is slightly different (See formulas below with phi=1 for call and phi=-1 for put). For forward delta, there is no exp(rT) in the inverse Gaussian. Hence Norminv will not end up having a param >1. Hope that helps.


Latex-Equation-8593.gif
 
Hi Raul,

I am not so sure about Fabio's formulae, but I'll suggest you try Malz. You will not get such an error with that, since the strike depends directly on delta. Hope that helps.

Hello Tuhina, thanks for your answer, but that was not the mistake. The mistake was, that I was taking in account only the spot and forward deltas to make the check, but if you are looking for the offset deltas in the 50%, you must use the "driftless" delta only in that case you will get that the zero "driftless" delta straddle is exactly in 50% given a unique strike, if you use spot or forward deltas this condition is not possible.

But I still with one doubt, which is the utility of de "driftless delta"?, I think that that measure is useless (unleast that I am wrong and I can't see the real utility).

Best Regards,
Raul Munoz
 
Raul Munoz,
sorry, im about 2 years late to the party..
im not a quant by profession so i cant claim expertise on the formulae, but:
the answer is because you pay premium in one of the currencies, which means that you have already done some of the delta simply by paying that premium.. this is why the delta is further off from 50 for longer dated options, because the premium is higher
try checking this by adding the option's value to the delta
 
Back
Top