I'm trying to replicate the following FX vanilla option pricing exercise (and the conversion between the quote types), taken from Wystup (2006).

enter image description here

A call's value today is well-known given by BS / Garman-Kohlhagen formula:

enter image description here

This is my solution in Excel:

enter image description here

enter image description here

Actually the only relevant point is the calculation of d pips, the rest is just simple transformation thereof. The solution is really close (291.48 in the book vs. 291.94 in my Excel), but just shy of the one provided in the book. Does anyone spot a mistake in my approach and/or calculations? I assume they should be 100% equivalent, but can't find anything I miss...

  • $\begingroup$ I think yours is correct. I did the same calculation a few years ago and obtained the same observation as yours. $\endgroup$
    – Gordon
    Jan 15 at 15:03
  • $\begingroup$ Many thanks for taking the time & double checking! $\endgroup$
    – KevinT
    Jan 15 at 20:41
  • $\begingroup$ Ian Clark has some more examples in his book you can cross-reference to make sure your formulas are correct. I’ve written unit tests against Clark’s examples and can reproduce them just fine. $\endgroup$ Jan 19 at 18:11

You are definitely correct in this example. There is one caveat though. I think that is an error in the book and despite it being defined as a continuous rate, they actually use it like it would not be (see below). I you convert it to continuous it matches the book.

I have NOT read the book. The book may explain interest rate conventions somewhere. Irrespective, the author himself (or whoever wrote that section) definitely mixed this up and the notation is sloppy and wrong.

A few side remarks before showing what I think is wrong here:

  • Usually interest rates would not be continuous. How adjustment for actual rates work can be seen here. Usually there are daycount differences between quotes of implied vol and interest rates.
  • In actual pricing engines, there is a distinction between 'Premium Date' and 'Price Date' where the former is when you actually pay the premium, and the latter when you price the option. That is not something most implemented BS pricers you can get in programming languages like Matlab and others handle correctly (makes little difference as long as you do not have deferred premium).
  • Some of the nuances are discussed here; e.g. what is the notional currency, what is the price currency, what ccy is the call option in Call on EUR = Put on USD etc.
  • Even IVOL itself is tricky in FX as is outlined here

Interestingly, the book defines the forward by using continuous interest rates. This means that the quotes should be continuous already.

Now, there is the problem. I think they are NOT. Why? Let me demonstrate with some code. The formulation with the the forward rate is not really Garman Kohlhagen but Black. Makes no difference though as you can see here.

I coded both in Julia. I hope the screenshots are self explanatory, if not, let me know. Let's define the models (GK and Black) first. enter image description here

Now we can compute both. It will require computing the forward and I simply used the formula outlined in your picture. Since t=1 I simply excluded it.
enter image description here

Exactly what you get (as is expected, given you simply code out the given formula). Note that I used both GK and Black and it all matches, which it should based on continuous compounding of rates. However, as mentioned before, interest rates are usually not continuous. Continuous rates should be lower than it's discrete analogue. So I ran a test. The reason I added the 365/365 is to allow for $\tau \neq1$ and to show that technically it is possible to account for actual market conventions (daycount varies across countries and interest rate quotations, so there is no one size fits all transformation).

enter image description here

Et voilà ! That is the (incorrect) result. You can take it one step further and compute CIP with discrete rates to see if Wystup's formula (Black) works (ignoring the way he denotes it).

enter image description here

That said, even if it were explained somewhere in the book, defining the forward as $X*exp^{(rd-rf)*\tau}$, while claiming $r_d = 3$% and $r_f = 2.5$% is simply wrong. Just like most people (I know) would not denote spot as X. That said, FX Vol Smile Construction by Uwe Wystup and Dimitri Reiswich, among many other books and papers written by Uwe Wystup, is a brilliant piece of work. If the link does not work anymore, just Google it. Making errors is just human, and I am certain I have a couple obvious typos in this answer as well.

Hope it still helps.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.