P&L, P&L Var what, how, when, where

Been quite busy recently (and I am still!), but as promised here are some good pointers to help you out (hopefully).

P&L , the recipe for success!

First step in this post is to ensure that everyone is aligned how P&L is computed in Murex.

P&L is simply the sum of Past Cash, Future Cash and Market value. Sounds easy! Past Cash can be a simple of the past cash (and that’s probably the best way to look at it) or you can have Murex compute a theoretical financing, where past cash is actually capitalized.

Future cash is usually short dated. You can look at them either as non discounted or discounted. In this case, it makes usually more sense to discount them (do you prefer 100 Euros today or in 1 year time?)

Market value is the value of the trade as of settlement date (theoretical settlement date). You can also look at the discounted market value which is back to today.

That’s how most people look into P&L, then you have further breakdown: realized/unrealized, revenue/capital. If you have questions let me know!

P&L Var … Where does my P&L come from

Alright, this is the best part of the PL tool in Murex. From simulation you can run the PL Var tool (it can also then be set in a dynamic table, but start with the simulation, easier to play with).
Normally you should have some default scenarios or you can also look at the doc (pretty good!) but let’s drill down into the available options:

  • Theoretical P&L Var. That’s the one most traders are after, it’s fast and usually a good tool. In order to estimate the P&L variation, you simply take the variation of market data multiplied by the sensitivity (you can also add second order effect which takes into convexity). Usually traders like this mode as they have direct control (hopefully!) over their sensitivities and if they lose or make money overnight, they want to be able to attribute it to market data variation.
  • Actual P&L Var. This one is accurate but much much slower. Basically Murex loads the portfolio as of the day before and replays all actions (that you choose as part of the PL var setup): not only market data but events also (trade insertion, trade modification, fixings, etc…). Depending on the order of the steps, you will get a slightly different attribution for every step (if you put spot variation before rate curve changes, etc…). You can also choose to reset the PL after each step but then the total of all steps will not be equal to the PL variation between yesterday and today. Finally, you have the last bit: Global other. This should be the last step in your scenarios. It is the difference between the the computed PL variation with the scenarios and the actual variation between the 2 dates.

The best part of the Theoretical P&L Var is that you can display the market data for the 2 dates, as well as the sensitivities and convexities. So everything is available and make it easy to “debug” any unexpected jump.

One last thing: test, test and retest the PL var, there are often exceptions, some cases are also complex (like your vol smile sensitive to the rate curve) and in case you are using the actual PL var, just ensure that your global other is always very small (unfortunately not always so easy)

11 thoughts on “P&L, P&L Var what, how, when, where”

  1. Thank you for the insight any upcoming article ? I am keen to read you again .

  2. I have two question regarding the market data import/export … How we can proceed ?

    And what kind of accounting rules we can set , and how we can proceed , I am keen to know about these two interesting subjects .. Many thanks

    1. Today’s article should cover your first question.
      As for accounting rules, you can actually set them based on pretty much any criteria/event attached to a trade or to a deliverable (cash flow, security flow). Usually MXpress will give you some pre-configured accounting rules to have something to work with

  3. Thank you so much for the detailed explanation .
    I appreciate it so much !!

  4. I have one doubt. Lets say i am searching for a field in on of the class type lets say DYN_TRNRP_PL but i am not able to find the field. Can any body help in taking next step ?

    And also please let me know how to calculate P&L for 4 days ?

    Thanks in Advance.

    1. All specific fields related to PL are in the dynamic table DYN_TRNRP_PL. They all start with PL. Sometimes you indeed need to take a bunch of fields and try them out on 1 trade or a couple of trades to see what is the results. Remember the shortcut to execute a dynamic table from trade query: right click on the trade, choose dynamic table. This gives access to only additional user tables but you can do File-Import to import from any other category. Just then press enter (or double click) on the dynamic table you wish to execute to run it on that trade.
      Tip #2: if you have added fields and need to change the view, the calculated fields from your dyn table are on top of the list on the left handside. The one non evaluated by the dyanmic table have a size of 0 (usually they start with CMM as these fields are rarely used for now).

      So I’d be surprised you don’t find your happiness there.

      Now in regards to your second question, what do you mean by 4 days?
      1. If you are after the estimated PL in 4 days time, then you need to go to simulation and shift horizon date 4 days forward. You could have this automated with a Risk matrix and horizon shift scenario. (you can then even put it in a report). You could also use the Theta analysis to drill down through the effects building up your estimated PL.
      2. if you want to see PL as of 4 different days, then you need to use the datamart and have an extraction which queries the data as of the 4 different dates. You could do the same in simulation as from the sim viewer, you can also retrieve data from a DM table with different shifters.
      3. You meant something completely different and I misunderstood!

  5. I have a portfolio which is too big to be loaded in simulation. Is it possible to set some sort of pre-filter in the dynamic table, and load the simul/pl var via that dynamic table? I have tried:
    1. pre-filter in the viewer
    2. post filter in dynamic table

    both methods do not seem to work..

    1. The question is to know if it is your view which is too big or if it is your simulation. I would say that most of the time the simulation can handle big big volume. Your best bet to find out is to run the User Definable simulation, this lets you load your simulation on a subset of deals. You can then check if your view comes through ok.

      1. The portfolio is too big to be loaded even in the simulation (portfolio simulation/portfolio consolidated simulation). User definable works out fine, unfortunately I cannot go with that. There are purged deals which I am not able to load using user definable simulation.

        1. Honestly I have to say I am quite surprised that the simulation is crashing on a big portfolio. This should definitely not happen.
          I think I would consider moving the purged results to another portfolio (that’s actually quite simple to do by SQL as all you’re moving is stored cash).
          And then breaking down that simulation into sub components.
          You could also use SCF to simulate the impact of your purged trades and add these results to your filtered simulation.

          Does it also crash when running a batch of feeders with scanner template made of multiple engines and low number of trades per engine?

  6. Hi Manu,
    I am a Murex front office user and has been troubled with an issue about PL variation. In risk matrices we can calculate RTheta(real theta) which indicates time decay. And in PLVar there is also a Time effect. Normally this two number should be the same. In our simulation settings the ATM Volatility Shift mode is set as “Keep pillar dates and use forward-forward curve”. Under this setting, our RTheta in risk matrices is not the same as Time Effect in PLVar. I searched the documentation and found that the calculation in PLVar seems to be hard-coded as “Roll pillar dates and keep volatility curve constant” in ATM Volatility Shift Mode. Does this means the only way to make RTheta consistent with Time effect in PLVAR is to set ATM Volatility Shift Mode as “Roll pillar dates and keep volatility curve constant” in simulation settings ? Is there any solution to this issue ?
    Thanks and Regards.

Comments are closed.