A common usage of *quanto call options* is to benefit from the price appreciation of a foreign asset and on the same time stay immune on *exchange rate* variations.

A *European* style *quanto call option* on a foreign asset S with strike K is always cash settled and pays its holder on expiry time T the amount max{S(T) – K, 0} converted into domestic currency terms using a fixed exchange rate agreed at time **0**.

For example, let's assume I am an American investor with a bullish eye on a few Turkish stocks, such as that of Turkish Airlines that rose by **208%** last year, making it the best performing in the Borsa Istanbul 30 Index.

The recent battering of the Turkish lira – down by **7%** against USD since year start – owes to have a positive impact on the earnings of certain export oriented Turkish companies with a commensurate increase of their Turkish Lira (TRY) quoted price in the Istanbul stock exchange.

Clearly holding options in a bullish market can be far more lucrative than holding shares due to the leverage stemming from the much lower capital needed for buying options as compared to that needed for buying shares.

But exercising a regular call option on a Turkish stock would pay me in Turkish lira currency with the risk that any stock price appreciation gains could be wiped out by a Turkish lira depreciation.

For example, if the strike is K = 100 TRY and the stock price quotation at expiry reaches 110 TRY, i.e. S(T) = 100 TRY, then a regular call option would pay me (110 – 100) TRY = 10 TRY.

Then I would have to convert the 10 TRY into USD by multiplying 10 with the TRY/USD exchange rate FX(T) prevailing at time T. Clearly a low FX(T) would have a negative impact on my final USD payoff.

The situation would be completely different if I had bought a*quanto*with a pre-agreed TRY/USD conversion rate c of 0.25 USD/TRY. Then my payoff at time T would equal c(S(T) – K) = (0.25 USD/TRY) *10 TRY = 2.5 USD regardless of the actual exchange rate realized at T.

How do we calculate the price of a Quanto Option

As you may imagine, the fair USD-quoted price of a *quanto* option on a foreign asset is not the same as the USD-equivalent price of holding a regular foreign option on the foreign asset.

For example, if I wanted to buy a regular option on a Turkish stock in the Turkish market, I would have to pay P_{BS} TRY today, where P_{BS }is the Black-Scholes TRY-denominated price of the regular option as calculated by a Turkish investor.

My initial cost in USD terms would then be FX(0)*P_{BS}, where FX(0) is the spot TRY/USD exchange rate, which shows that the Turkish option price quoted in USD terms must be proportional to the spot TRY/USD exchange rate FX(0).

Instead it turns out that the price of a *quanto* option bears no dependence on the spot exchange rate FX(0), although it still depends on the anticipated future evolution of the exchange rate FX(t), as expressed by its spot volatility and correlation with the foreign asset price S(t).

So it is __not__ true that a *quanto* investor on a Turkish stock may completely ignore __all__ aspects relating to the TRY/USD exchange rate. __An exposure on the foreign exchange rate volatility and correlation is still there!__

The fair price of a *quanto* option is achieved by assuming the point of view of a Turkish investor.

A Turkish investor would naturally convert the *quanto* option's proceeds into Turkish lira currency units.

Since the payout amount c*max{S(T) – K,0} is in USD currency, the Turkish investor would convert it to the equivalent TRY amount of FX΄(T)*c* max{S(T) – K,0}, where FX΄(T) = 1/FX(T) is the USD/TRY exchange rate at time T.

But this TRY-denominated payoff is nothing else than the payoff of a regular call option on S with strike K where the quantity (number of S shares) is stochastic and equals FX΄(T)*c.

In other words, from the Turkish investor's point of view, the *quanto* option is an option with a variable quantity dependent on the USD/TRY exchange rate FX΄(T) prevailing at time T. In fact, the word "*quanto*" comes from this realization that it is equivalent to a "quantity-dependent" option.

So the Turkish investor receives a payoff at time T that depends on two stochastic variables, the asset price S(T) and the USD/TRY exchange rate FX΄(T).

The price calculation then proceeds like in the Black-Scholes case, by setting S(T) -> x and FX΄(T) -> y and integrating the probability-weighted payoff expression PROB(x,y)*y*c* max{x – K,0} over the two-dimsnional x-y plane, where PROB(x,y) is the probability density associated with the bivariate lognormal distribution over x and y.

It is intuitively clear that the calculated price will be higher when the x-y correlation increases, due to the asymmetric exposure of the product y*max{x – K,0} on values of x: High values of x contribute more than low values and are associated with also high values of y due to the high correlation.

The opposite will be true with a put option, the payoff of which relies on the product y*max{K – x,0}, which benefits from a lower correlation between x and y.

When dealing with *quanto* options, one usually references the foreign exchange rate TRY/USD, which corresponds to the inverse 1/y.

Since the correlation between x and 1/y is minus the correlation between x and y, it follows that the price of a *quanto* call (put) option decreases (increases) as the correlation between the foreign asset price S(t) and the TRY/USD exchange rate FX(t) increases.

In what follows, I will investigate these effects by using the QuantLib implementation of quanto pricing made available through Deriscope in Excel to price a European style *quanto* call option on the EURO STOXX 50 equity index from the point of view of an American investor.

So the payoff at time T will be c*max{S(T) – K,0}, where c is a fixed USD/EUR conversion rate (for example c = 1.2 USD/EUR), S(t) is the quoted EURO STOXX 50 index (for example the one from Yahoo Finance here) and K is the EUR-quoted agreed strike.

Creating a European Quanto Option on STOXX50 object

I can use the wizard to produce a formula creating a *Quanto* *Option* object with default assignments, as shown in the video below:

The produced formulas are shown below.

### Understanding the main formula

As you see, cell **A1** contains the formula *=ds(A2:B6),* which takes one input argument and returns the text *&QOpt_A1:1.1*

The prefix *&* indicates that *&QOpt _A1:1.1 *is the handle name of some object. In fact it points to an object of type *Quanto Option*.

The input range *A2:B6* contains the input, of which the most important keys are described in the table below:

Key | Value | Description |

Reference Option |
&VanOptStkInd_A8:1.1 | Refers to the option
before its modification through the exotic features introduced here.
Expects an object of type Option.
This entry also supplies the foreign underlying asset. |

Domestic Currency | %USD | The currency in which
the option is settled when exercised. It must differ from the so called "foreign currency" in which the option's underlying is denominated. Setting a non-trivial settlement interval here is equivalent to having the strike payment delayed by that interval. |

Settle FX Rate | 1 | The pre-specified fixed exchange rate that is used to convert the foreign currency denominated payoff to the domestic currency final settlement amount. |

The Price function

The following video shows how I use the wizard to generate the **13** spreadsheet formulas required by the *Price* function:

Below is a spreadsheet image where I have shuffled the various blocks around so that the top orange-colored block contains the pricing formula in cell **G1** that returns the *quanto* *option* price of **9,884677344**.

At the center, the green-colored block creates the important object of type *Market Set* in cell **G7**, which groups together all market elements needed by the pricing formula in **G1**.

You can clearly see that this *Market Set* object is built out of **7** objects that contain the foreign and domestic yield curves, the dividend yield of the foreign asset, the spot price of the foreign asset, the volatilities of the foreign asset price and the fx rate and finally the correlation between the foreign asset price and the fx rate.

The yellow-painted cells contain wizard–generated values that I need to replace with actual current market data.

Now I fill the yellow cells with realistic values and I change their formatting in %.

For the purpose of this demonstration, I keep the flat yield curves but I set **2%** and **1%** for the domestic (USD) and foreign (EUR) flat zero rates respectively. In production I should make use of fully fledged yield curves, as I have shown elsewhere, for example here.

I use a STOXX50 dividend yield of **3%** taken from here.

I set the STOXX50 spot price at 3,525.90 taken from Yahoo Finance here. I also change the option strike to equal that value.

I am lazy to find out the actual implied vols for my given maturity and strikes, so I simply set 20% for the one year - almost atm - STOXX50 implied vol and 10% for the one year EUR/USD implied vol.

A more realistic treatment here would be to use volatility surfaces rather than flat vols.

Finally I use a correlation between STOXX50 and EUR/USD of -30%.

The final result is a *quanto* o*ption* price of **249.9888732 **as the image below indicates:

Alternative model specifications

So far I have made no attempt to change the default model generated by the Deriscope wizard.

But if I wanted, I could have instructed the wizard to use a different model. The following video demonstrates how I can use the wizard to browse through the various QuantLib models that are made available in the context of pricing a *European* *quanto* option:

Additional output data

During the price calculation, QuantLib also computes certain values that can be of interest.

When cell **G1** is selected, the wizard displays the following in its *Info Area*:

If I click on the *here* hyperlink of the top sentence "*To display extra pricing data click here"*, I see the following:

As you see, beyond the cash flows I can also see the Delta, *Gamma *and* Theta* as well.

I have already explained here how I may transfer these data in the spreadsheet.

Advanced Topic: Following the pricing algorithm step-by-step

It is also possible to track the pricing algorithm that has been run in order to produce the observed output and also see the actually used intermediate QuantLib structures and numerical outputs as described in the respective section of my Interest Rate Swap article.

###
Studying the correlation dependence

It is very easy to set up a table where one column contains various correlation inputs from -100% to 100% and another column contains the corresponding *quanto* option prices.

To do that I need to also build two intermediate columns:

The first of them will hold the objects of type *Cor Curve* corresponding to the correlation values of the first column.

The second will hold the objects of type *Market* that will include the *Cor Curve* object of the previous column.

The final column will apply the Price function on my Q*uanto* *Option* object taking into account the modified *Market* object in the third column.

Here is the result:

and here is the respective chart:

You may be surprised by the apparent linear dependence of the *quanto* *option* price on the correlation, since we know that correlation ρ introduces an exponential effect through the factor e^{-}^{ρσ}_{1}^{σ}_{2}^{τ}, where σ_{1} is the foreign asset price vol, σ_{2} is the fx rate vol and τ is the time to expiry in annual units.

The apparent linear dependence stems from the fact that σ_{1} = 0.2, σ_{2} = 0.1 and τ = 1 which results in e^{-}^{ρ0.02}, which is almost equal to 1 – ρ0.02 (first order Taylor expansion).

Indeed, if I set both vols to 100%, I get the following chart that shows a clear exponential dependence:

You may download the spreadsheet produced with the above steps here.

Feel free to contact me if you want to share any thoughts with regard to this product or if you want to request any particular features. Contact info and social media links are available at my web site https://www.deriscope.com