Using FX ATM/RR/BF Volatility to Estimate Smile

Suppose $S$ is some FX rate, EUR/USD say, and $\sigma_{S}(K,T)$ is the implied volatility for some option written on $S$, sourced from the surface $\sigma_{S}(\cdot,\cdot)$ (alternatively, consider the implied volatility surface $(\Delta,T)\mapsto\sigma_{S}(\Delta,T)$, commonly used for FX implied volatility data).

Suppose we have the following term-structure data (maturity tenors $T$ for 1D, 1W, 2W, 3W, 1M, ..., 1Y, ..., 10Y):

1. Forward rates $F(\cdot)$
2. Risk-free zero rates $r_{d}(\cdot)$ and $r_{f}(\cdot)$ for both currencies
3. ATM volatilities $\sigma_{S}(K^{*},\cdot)$ or $\sigma_{S}(\Delta^{*},\cdot)$ (the ATM strike or delta, denoted with the asterisk, is not known)
4. $25\Delta$ "Risk Reversal" $RR(\cdot)$
5. $25\Delta$ "Butterfly" $BF(\cdot)$

Is there anyway to use (1)-(5) to approximate $\sigma_{S}(K,T)$ given the option's $(K,T)$?

(The motivation for asking this question is that I have access to (1)-(5) through an automated data import tool, but not the entire surface, and would like to price some options using the data that can be imported automatically. The valuation is not being done for trading purposes, so an absolutely precise valuation is not needed, only an estimate.)

This is pretty much exactly the problem description for a standard over-the-counter FX option pricing tool from 10-20 years ago. (For more modern contexts, the data would almost surely contain also 10 delta RR and BF, and perhaps more points as well.)

The best solution is, don't build this yourself, but instead use a prexisting tool. FX conventions are somewhat tricky and poorly documented; it takes some effort to build a tool to do this right. Unfortunately I don't know of any free tools, but there are many vendors who have solutions, so maybe you have access to something already.

If you really want to hack something together yourself, I suggest this paper by Reiswich and Wystup : http://www.thfinance.de/Playground/fxblog/website/wp-content/uploads/2009/09/CPQF_Arbeits20.pdf. They detail the most common variants of FX quoting conventions and compare several simple techniques for building complete option smiles from ATM/RR/BF data.

• The paper you cited, besides being very informative on a number of other matters in pricing FX derivatives, was exactly what I needed. Those interested in the solution to this question, but don't have time to read the paper, may wish to skip to equation (36) - although you will need to familiarize yourself with the author's notation and the usefulness of the equation will depend on what you already know. – Sargera May 29 '15 at 22:51

If quick and simple works, the formula by Malz is quite easy to implement.

If you have access to an automated data import tool, I suspect you use one of the common vendors. In this case it may be worth to ask if they have an API that pulls you the exact value based on a request for say 35DC with expiry in x days.

E.g. Bloomberg would allow you to pull single point vol via =BDP("EURUSD Curncy","SP_VOL_SURF_MID", "VOL_SURF_DELTA_OVR=25.000", "VOL_SURF_CALLPUT_OVR=C", "VOL_SURF_EXPIRY_OVR=20210824"). This example pulls 25DC with expiry on October 24th 2021 (as of the time of querying but even historically works).