Sunday, May 2, 2010

yield^price^coupon

For a given bond with a pre-determined series of payouts, you discount every payout with the same YTM to get the PV. Sum up the present values and you get the price -- From YTM, get price. Therefore, given the pre-determined payouts, from the price, you can derive YTM numerically.

For a given bond, the higher you set its YTM, the deeper the discount, the lower the PV and price.

Q: how do people compare bonds with different coupons and maturities?
A: YTM. prices aren't comparable. Therefore, YTM is a way to *characterize* a bond's price, coupon rate and maturity.

Q: for a given bond, how is price/YTM determined by the market.
A: a bond trader set price (or YTM) on his bond. A buyer probably bid at another price. Offer is lifted when they match.

Among AA bonds for example, the higher the YTM, the more worthwhile(?) is this investment? I don't think so. If it's such a bargain, then the offer would be grabbed right away. Trader is forced to set the YTM so high (and price so low) perhaps because maturity is in the *distant* future.

YTM is not closely related to ROI. For a beginner, I would say it's nothing to do with return. YTM is a *discount-rate*. Across all bonds, the higher this rate, the deeper the discount. I feel YTM is mostly influenced by credit rating and also maturity. I don't think it's influenced by coupon rate -- Everything else being equal[Q1], a low coupon bond is priced below a high coupon bond. But I guess identical YTM.

Everything else being equal[Q2], a CCC bond is priced below a AAA bond. Therefore, that CCC's YTM is much higher than that AAA bond. Sellers have to set the YTM high to attract buyers. More precisely, sellers must discount the CCC's payouts more than the AAA's payouts.

If a trader increases his bond's YTM, he is applying deeper discount to lower his asking price.

In reality, premium bonds are discounted deeply compared to par bonds. Remember discount rate (ie yield) is chosen by sellers and buyers. Compared to a comparable par bond (comparable rating), a premium bond has higher price, slightly higher yield and higher coupon.

I don't think FI developers need this level of familiarity, but If you need to get thoroughly comfortable with basic yield concepts, then master the reasoning behind scenarios below.

Q: For a single bond (ie same coupon rate), what does it mean when price drops?
A: Trader is discounting the payouts more deeply, so yield rises.

Q1: 2 bonds of same issurer and maturity but different coupon rates. Yield should match. what about price?
A: price probably follows coupon rate

Q: 2 bonds of same issurer and same price. What about yield and coupon rate?
A: yeild reflects credit rating so should match. price probably follows coupon rate, so coupon should match too. All 3 attributes should show no difference.

Q2: 2 bonds of different issuer but same maturity selling at the same price. What can you say about yields and coupon rates.
A: the higher coupon is discounted deeply to give the same NPV ie price.

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