Friday, April 23, 2010

PnL attribution -- first lesson

For any derivative risk engine, one of the most essential information
business wants to see everyday is PnL attribution.
http://en.wikipedia.org/wiki/PnL_Explained illustrates that a typical
report has
Column 1: PnL --- This is the PnL as calculated outside of the PnL
Explained report
Column 2: PnL Explained --- This is the sum of the explanatory columns
Column 3: PnL Unexplained --- This is calculated as PnL - PnL
Explained (i.e., Column 1 - Column 2)
Column 4: Impact of Time (theta) --- This is the PnL due to the change in time.
Column 5: Impact of Prices (delta) --- This is the change in the value
of a portfolio due to changes in underlier price
Column 7: Impact of Volatility (vega) --- This is the PnL due to
changes in (implied) volatility
Column xxxx: new trades, cancels,
http://pnlexplained.com/PEP_PnL_Explained_FAQ.html shows that usually
the attribution numbers (theta att, delta att, vega att...) add up to
be close to total unrealized PnL (Column 1). The mismatch is known as
PnL unexplained (Column 3)
A market maker should be delta-hedged (regulatory pressure) so delta
attribution is kept low -- MM should stay unaffected by stormy
markets. See http://bigblog.tanbin.com/2011/12/buy-side-vs-sell-side-trader-real-diff.html
Let's take volatility attribution for example.
http://www.pnlexplained.com/ has a nice hierarchical diagram showing
the breakdown of vol attribution.

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