Monday, October 13, 2014

compute FX swap bid/ask quotes from spotFX+IR quotes

Trac Consultancy's coursebook has an example --

USD/IDR spot = 9150 / 9160
1m USD = 2.375% / 2.5%
1m IDR = 6.125% / 6.25%

Q: USD/IDR forward outright = ? / ?

Rule 1: treat first currency (i.e. USD) as a commodity like silver. Like all commodities, this one has a positive carry i.e. interest.

Rule 2: Immediately, notice our silver has lower interest than IDR, so silver is at fwd Premium, i.e. fwd price must be higher than spot.

Rule 3: in a simple zero-spread context, we know fwd price = spot * (1 + interest differential). This same formula still holds, but now we need to decide which spot bid/ask to use, which 1m-USD bid/ask to use, which 1m-IDR bid/ask to use.

Let's say we want to compute the fwd _b_i_d_ price (rather than the ask) of the silver. The only fulfillment mechanism is -- We the sell-side would borrow IDR, buy silver, lend the silver. At maturity, the total amount of silver divided by the amount of IDR would be same as my fwd bid price. In these 3 trades, we the sell-side would NOT cross the bid/ask spread even once, so we always use the favorable side of bid/ask, meaning

Use the Lower 1m-IDR
Use the Lower spot silver price
Use the Higher 1m-silver

Therefore fwd bid = 9150 [1 + (6.125%-2.5%)/12] = 9178

...... That's the conclusion. Let's reflect --

Rule 4: if we arrange the 4 numbers ascending – 2.375 / 2.5 / 6.125 / 6.25 then we always get interest differential between ... either the middle pair (6.125-2.5) OR the outside pair (6.25-2.375). This is because the sell-side always uses the favorable quote of the lend and borrow.

Rule 5: We are working out the bid side, which is always lower than ask, so the spot quote to use has to be the bid. If the spot ask were used, it could be so much higher than the other side (for an illiquid pair) that the final fwd bid price is higher than the fwd ask! In fact this echos Rule 9 below.

Rule 5b: once we acquire the silver, we always lend it at the ask (i.e. 2.5). From Rule 4, the interest differential is (6.125-2.5)

Rule 9: As a dealer, always pick the favorable side when picking the spot, the IR on ccy1 and IR on ccy2.  If at any step you were to pick the unfavorable number, that number could be so extreme (huge bid/ask spread exists) as to make the final fwd bid Exceed the ask.

Let's apply the rules on the fwd _a_s_k_ = 9160 [ 1+ (6.25% - 2.375%)/12 ] = 9190

Rule 1/2/3/4 same.

Apply Rule 5 - use spot ask (which is the higher quote). Once we sell silver spot, we lend the IDR sales proceeds at the higher side which is 6.25%....

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