Tuesday, June 12, 2012

FX vol quoting convention

? the terms "strangle" and "butterfly" seem to be used rather loosely. Not sure which is actually right. Do they mean the same thing?

---
On the fx vol dealer market, you get quotes in the form of RiskReversal, Strangle and ATM straddle.

An example of a RR quote is a 25 delta RR contract to convert 1 million USD to JPY. The exact sums of yens are denoted Kp25 and Kc25, and not in the quote. In this kind of confusing discussions, just treat the commodity currency (USD in this case) as a commodity like silver. When you (market-Taker) go Long any RR contract, you are Long the Call and Short the Put on that silver - Be very clear about these in your mind.

Now let’s zoom into a hypothetical RR quote. The quote says

“            On Mar 1, dealer UBS is willing to WRITE a USD call + BUY a USD put for a premium amount of x yens[1], where x will be determined at the RR volatility of 3.521% per annum. (An unrealistic fictitious vol value, because USD/JPY RR quote is usually Negative.)
The underlying Put has a strike Kp25 corresponding to a delta of -0.25. (But since you the market Taker will be Short the Put, your delta is +0.25.)
The underlying Call has a strike Kc25 corresponding to a delta of +0.25. This Call strike will be Above the Put strike.
Both the put and the call are OTM for 1 million unit of USD and expire end of May.
Optionally, the quote might mention a reference spot rate of “USD/JPY = 93.32”. This probably helps people back out the strikes Kp25 and Kc25.

That is a one-way Offer/Ask quote. For a 2-way, dealer would give 2 quotes -- a bid and an ask.

[1] Note the RR instrument is denominated in yen i.e. yen is the "2nd" currency whereas dollar is the commodity like "silver"

At the time when you accept this quote, Kp25 might come out to be 88 million yens, and Kc25 might come out to be 111 million yens. The premium x might come out to be 2.5 million yens – all hypothetical figures. However, if you accept the quote an hour later, live prices would move, and Kp25, Kc25 and x would be different even if the 3.521% quote stays largely unchanged. FX volatility smile curve is known to be sticky-delta, rather than sticky-strike (stocks).

Lets see how to compute Kp25 from this quote. In the standardized RR contract, the quoted vol of 0.03521 pa is defined as the vol difference i.e. 

sigmaKc25sigmaKp25 = 0.03521 per annum

sigmaKc25 is the implied vol of the underlying call (subcontract) at strike Kc25
sigmaKp25 is the implied vol of the underlying put (subcontract) at strike Kp25

On any FX/Equity smile curve, Kp25 < Kp25, so on the graph the sigmaKc25 (implied vol on the OTM Put) is always marked on the LHS and the Call always on the RHS. For USD/JPY, smile curve looks like a stock, so LHS sigma is Higher than RHS. Therefore the RR vol is usually negative.

To determine the exact Kc25 and Kp25 values, we need to compute the 2 above-mentioned sigmas, which bring us to the Strangle and ATM quotes.

The Strangle quote says something like
“           On Mar 1, dealer UBS is willing to WRITE 2 options -- a USD (i.e. silver/JPY) put + WRITE a USD (i.e. silver/JPY) call for a premium amount of x yens, where x will be determined at the volatility level of 5.1% per annum.
The put has a strike Kp25 corresponding to a delta of -0.25.
The call has a strike Kc25 corresponding to a delta of +0.25.
Both the put and the call are OTM for 1 million unit of USD (silver) and expire end of May.
The quoted vol of 0.051 pa is defined as (sigmaKc25 + sigmaKp25) / 2 – sigmaATM = 0.051 per annum

The ATM (straddle) quote says something like
“            On Mar 1, dealer UBS is willing to WRITE a USD (i.e. silver/JPY) call + WRITE a USD (i.e. silver/JPY) put for a premium amount of x yens, where x will be determined at the volatility level of 11% per annum.
The call and the put both have exactly the same strike K such that net delta = 0.0. (This K is not specified in the quote. This K makes both options ATM but K is not exactly equal to current spot rate.)
Both are ATM for 1 million unit of USD (“silver”) and expire end of May.
The quoted 11% vol is the above-mentioned sigmaATM. ATM put and call should have very similar (implied) sigmas. Their delta should both be very close to 0.50.

With these 3 quotes, it’s simple arithmetic to back out the 2 unknown sigmas – the implied vol for the underlying 25-delta OTM call and the underlying 25-delta OTM put. The RR is a portfolio of these 2 primitive instruments. The Strangle is also a combination of these 2 basic instruments. Note the 3 quotes may come from 3 dealers, so as a market taker we can mix and match the available contracts.

If we know the implied vol (sigmaKc25) of a 25-delta OTM call, and also the spot price and expiration, BS can back out the strike price Kc25. Remember there’s a one-to-one math relationship between delta values and strike values. Imagine we have a lot of (3000) call contracts with equally spaced strikes, same expiration. If we plot their Theoretical values against their strikes, we will see a smile curve. Mathematically, their delta values (not defined this way but) are numerically identical to the gradient along this smile curve. If we plot delta against strikes, we will see the one-to-one-mapping.

No comments:

Total Pageviews

my favorite topics (labels)

_fuxi (302) _misLabel (13) _orig? (3) _rm (2) _vague (2) clarified (58) cpp (39) cpp_const (22) cpp_real (76) cpp/java/c# (101) cppBig4 (54) cppSmartPtr (35) cppSTL (33) cppSTL_itr (27) cppSTL_real (26) cppTemplate (28) creditMkt (14) db (65) db_sybase (43) deepUnder (31) dotnet (20) ECN (27) econ/bank` (36) fin/sys_misc (43) finGreek (34) finReal (45) finRisk (30) finTechDesign (46) finTechMisc (32) finVol (66) FixedIncom (28) fMath (7) fMathOption (33) fMathStoch (67) forex (39) gr8IV_Q (46) GTD_skill (15) GUI_event (30) inMemDB (42) intuit_math (41) intuitFinance (57) javaMisc (68) javaServerSide (13) lambda/delegate (22) marketData (28) math (10) mathStat (55) memIssue (8) memMgmt (66) metaProgram` (6) OO_Design (84) original_content (749) polymorphic/vptr (40) productive (21) ptr/ref (48) py (28) reflect (8) script`/unix (82) socket/stream (39) subquery/join (30) subvert (13) swing/wpf (9) sysProgram` (16) thread (164) thread_CAS (15) thread_cpp (28) Thread* (22) timeSaver (80) transactional (23) tune (24) tuneDB (40) tuneLatency (30) z_ajax (9) z_algoDataStruct (41) z_arch (26) z_arch_job (27) z_automateTest (17) z_autoTrad` (19) z_bestPractice (39) z_bold (83) z_bondMath (35) z_book (18) z_boost (19) z_byRef^Val (32) z_c#GUI (43) z_c#misc (80) z_cast/convert (28) z_container (67) z_cStr/arr (39) z_Favorite* (8) z_FIX (15) z_forex (48) z_fwd_Deal (18) z_gz=job (33) z_gzBig20 (13) z_gzMgr (13) z_gzPain (20) z_gzThreat (19) z_hib (19) z_IDE (52) z_ikm (5) z_IR_misc (36) z_IRS (26) z_javaWeb (28) z_jdbc (10) z_jobFinTech (46) z_jobHunt (20) z_jobRealXp (10) z_jobStrength (15) z_jobUS^asia (27) z_letter (42) z_linq (10) z_memberHid` (11) z_MOM (54) z_nestedClass (5) z_oq (24) z_PCP (12) z_pearl (1) z_php (20) z_prodSupport (7) z_py (31) z_quant (14) z_regex (8) z_rv (38) z_skillist (48) z_slic`Problem (6) z_SOA (14) z_spring (25) z_src_code (8) z_swingMisc (50) z_swingTable (26) z_unpublish (2) z_VBA/Excel (8) z_windoz (17) z_wpfCommand (9)

About Me

New York (Time Square), NY, United States
http://www.linkedin.com/in/tanbin