Repos in Murex

Thought about this one and follow up on some questions I answered, I thought it could be of interest to some of you.

Repos and Buy/Sell backs used to be quite difficult to work with, bugged till effectively Murex reworked them into what was called the “new module” (agreed it sounds a bit like the promised land!).

The repos (I use that word loosely to cover sec lending, BSB, repos, etc… too much typing otherwise) are first defined as a template (similar to generator): you define some basic rules knowing that what you don’t provide will be provided by either the bond you choose or by the currency you choose. For instance, if you don’t input a start delay, the bond settlement delay will apply instead (usually 3OD, so you will need to define the start delay as most repos are start 1OD or 0 day).

Once you’re done with the template, you can then start pricing them and inputting them, it is simple to use, got everything you need to have: sec for fee, haircuts, etc… It pretty much looks like a swap: physical on one leg (bond, security) and cash on the other leg.

Open repos? Not a worry, just enter open as the maturity and that’s it.

I know it sounds simple but it is actually. Very simple to use, pretty much like a walk in the park.

And finally repos need bulk event and bulk events Murex has: global reneg (rate changing) either as absolute or as variations (e.g. 25bp for all your repos), termination, increase/decrease nominals, etc… And all is integrated in the Murex workflows.

Again, I know sounds simple and it is (I guess they could put that in a brochure! )

But the best thing about repos is a much more recent new transaction type: the basket repo.

This transaction is incredibly flexible and opens the door to so many opportunities, well, I just hope your repo desk is big enough! The basket repo, as the term could suggest, mean that on the first leg you have a basket instead of 1 line. Best of all the basket can be made of bonds, equities, commodities or cash, completely flexible. Input is done through a viewer, price, yield, haircut and quantity can be input for each line and you can check the valuation versus the other leg of the repo. You can even copy paste directly from Excel.

The specific event called repo basket substitution basically lets you remodel the basket the way you want: you can change quantity, remove lines or add new lines. Of course you can also use the other repo events.

It is a great tool for collateral management or for triparty repos where you can import the actual position at the end of the day.

In summary, before, repos in Murex meant you like making your life a challenge. Nowadays, they are very simple, very easy to use with most if not all functions your repo desk will need.

Hum, this article definitely sounds like advertising, which in a way is true: I really like that module!

PL reports – solutions

Shazmd asked a question through the forum about how to make a report giving out PL as of 3 dates.

There are couple of solutions to this question and which one you need to use is totally up to you 🙂

First thing to keep in mind is that when people mention reports it should not always equal datamart. For instance, simulation is a live report showing the risk and which could fetch data as of couple of days in the past.

Trade query is also in a way a report, with no calculated data. So it is important to understand what is the end user after so you give him/her the most appropriate solution.

  1. User definable P&L notepad

This first solution is probably the simplest and is perfect if the request is just a one off that would not repeat very frequently. User definable notepad is a dynamic table based on PL, there is just a direct menu to access it. So if you search for it (it is under middle office, P&L related procedure (or just type in the search notepad)) and get into it, Murex will ask you to choose a filter. Space bar on the default one. You then see a filter screen. You have 3 dates you can choose from (Inception means not calculated) and you can pick a portfolio or any other criteria. The data for the 3 dates will be computed when you validate the filter.

You then get a matrix will all the deals selected and the data you need. Just change the view to be what you need using Tools-View and choose the columns which make sense. You will see some fields available 3 times, they are the data computed as of the 3 different dates. Just change from description to field name. The field ending in 0 corresponds to the data for the first date selected, the one ending in 1 corresponds to the data for the 2nd date selected and the last one ending in 2 corresponds to the data for the 3rd date selected.

You can then copy paste (ctrl-shift-C to copy all lines) the results or export them from the file menu. You can then work out the data in Excel.

2. Datamart

Datamart for 3 PL dates is the 2nd solution. It is easy to re-use and the format will be up to you.

First of all, you need to choose which engine to use for computing the data (note that it is using the same code underneath but there could be differences in usage). The first one is a dynamic table of type PL (TRNRP_PL). You need to define one and choose the fields you want. Remember that you can test a dynamic table to check if the content is ok. The dynamic table should produced only 1 set of PL result not 3.

Once you’re happy with the dynamic table, you need to wrap it so that it will produce data into the datamart. To do so (and in high speed): you will need to define a feeder and then inject that feeder into a batch of feeders. The feeder will go through creating a table in the datamart and attaching data to it (data coming from your dynamic table). When you define your batch of feeders make sure that you can have at least 1 set per date so that data in the datamart is historized.

Just run the batch of feeders as of the 3 dates you need to compute (you might need to amend the global filter within the batch of feeders to choose which date).  Once your datamart is populated with the data (you can query it and check by SQL for example). You need to build an extraction to retrieve that data. The extraction will be an SQL piece of code which you can make fancy by letting the user choose the 3 dates he wants to query on (or you can hardcode it).

Finally, you need to format the output, csv file format requires no work, but if the user wants to look at the results on screen you’ll need to have a viewer with your field to be nicely formatted. I usually don’t recommend to format the excel file via the viewer as dates come back sometimes not as wanted, or fields formatting might require extra work.

And that’s it you’ve got a datamart with your 3 dates. The first time you will do it, you will get it wrong and it will take some time but once you start getting the hang of it, it becomes much much smoother.

3. Simulation

And yes there is another option: simulation. Simulation is a live report showing live position, cash flow, PL, etc… In simulation, build a viewer to show your PL with as much breakdown as you would like.

You can then define a dynamic table based on that simulation view. Create a feeder and batch of feeder on top. Then compute the PL data as of the 2 days in the past you need. Simulation will always compute PL as of today.

Then back in your simulation view, you can add more of the same PL fields and right click on them, output settings and select stored data. You can then choose to retrieve the data from your datamart directly in simulation and display either the datamart number or the variation with the current data. You can also choose to retrieve based on a shifter (like the day before, 1 month before, first day of the month, etc…) and you can do it as many times as you like (and as you have data of course!).

In a nutshell, that’s how you can solve your problem of a report showing PL as of 3 dates. I am sure you will have tons more questions, feel free to experiment, check your environment for already existing examples and ask here if you’re stuck!

Questions, thoughts, ideas, the mic is yours!

Hello everyone,

I sometimes see comments and remarks but not that many and sometimes I wonder if I go too much into detail or not enough.

Similarly, there might be some stuff you would like me to cover more.

So the mic is yours, feel free to put comment or write directly to me and make requests, share ideas or voice feedback. This site is mainly for all Murex users to find a place where they can exchange ideas and learn more about other parts of the system.

Thanks for reading and I hope to be able to read you guys soon!

Be nice to your support team!

Who is up in the middle of the night, unblocking the EOD because of a trade you incorrectly booked? …. Be nice to your support team!

Who takes care of correcting the report you need so that the shade of blue is exactly the one which matches your tie? ….. Be nice to your support team!

Who is there when the values returned by the system means nothing at all? …. Be nice to your support team!

Who comes to your desk to check the problem you have, which suddenly stops appearing as soon as they look at your screen? ….. Be nice to your support team!

Who basically gets all your problems but barely gets feedback when things go south? …. Be nice to your support team!

And I can go on and on and on. While it is obvious the support team does support, it does not mean that it is an easy job! So be nice to them and next time you stuff up something they won’t make much noise correcting it! 🙂

Complex trades – how to compute them

An interesting conversation I had, explaining people what are the different options when you start doing complex trades and how to be able to value them. So I feel like sharing to everyone.

The problem is that you’ll often need to price new exotic trades as quickly as possible and the question is how to best achieve it. So let’s go through the different options:

  • Use what you have (aka the BS answer (BS = Black Scholes!)). That might sound basic but it will give you a rough approximation (sometimes very rough) of the trade actual value. Far from ideal but if you do have a very limited amount of them, that could work and cost/effort is low
  • Use a proper model/payoff description with Murex. This is usually the best solution but compared to the previous one, there are some limitations: the payoff needs to be covered by Murex, the model needs to be available in your version and the payoff might need to be tested in your version. So it usually results in a longer time to market and a high cost. This is ideal for products you’ll have a bit of volume on and currently being used.
  • FleX. This assumes that you have your own model library and you also have the skills to plug it in into Murex. While there is some effort to achieve it and performance might come as an interesting question, this can be a very valid solution especially if you are looking at maintaining/expanding your model library. If you do not have such a library, the effort/cost might be a killer.
  • Other systems for low volume. There are systems which can return a price for more or less any product. Is the price very accurate? Is the model very efficient? Not really, they’re usually Monte Carlo based but these systems tend to be very good for very small volume and you also get a great time to market. Top that with the ease of importing trade valuation in Murex and have it flying through to report, accounting and you get a very solid solution. Of course, if the volume does increase then you should consider solution number 2 for these payoffs.

So as I had the discussion much before and recently, a mix of the solutions above is the best. Thinking about time to market is quite important and you can then integrate all that into Murex so that all your products are into the same system.

Slow day — holiday hangover!

Holidays are about to end, and with rain already here, it feels like fall already started.

Next week, I’ll revert back to my 2 posts a week but found this article of an agreement between Murex and Omgeo which happened during the summer.

Article here

This is clearly the trend at the moment to move to cleared trades so I expect quite a few of interfaces/partnerships coming. Very interesting times ahead for the banking industry!