Wednesday 8 July 2015

A RUBE GOLDBERG & HEAT ROBINSON APPROACH TO PRICE CORPORATE BONDS: ALTMAN Z-SCORE

A quick and dirty formula to price corporate bonds/notes might be given by the following formula:

rf / PS  (it looks like a KLUDGE or some sort of MacGyverism)

rf is the market risk free rate as read from the Temporary Structure Of Interest Rate or Yield Curve.  PS is the probability of success for the Corporation or (1-Probability Of Default)


This is the catch!   Probability of Default or Probability Of Success is not easy to get.  You will need to run an algorithm entitled: Altman Z-Score (by Professor Edward I. Altman) with the following figures belonging to a "Columbian" Corporation listed on BVC:

Working Capital=333,060,600

Total Assets=1312,650,600

EBIT=117,550,800

Sales=2546,934,000

Market value of equity is :744,488,400

Total Liabilites:  470,203,200

Retained Earnings: 587,754,000

T1 = Working Capital / Total Assets
T2 = Retained Earnings / Total Assets
T3 = Earnings Before Interest and Taxes / Total Assets
T4 = Market Value of Equity / Total Liabilities
T5 = Sales/ Total Assets
Z score bankruptcy model:
Z = 1.2T1 + 1.4T2 + 3.3T3 + 0.6T4 + .999T5
Zones of Discrimination:
Z > 2.99 -“Safe” Zones
1.81 < Z < 2.99 -“Gray” Zones
Z < 1.81 -“Distress” Zones

The Altman Z-Score is a Gaussian statistic and for this corporation  =  4.11522388059702.  This means a probability of success = 0.999980659810466  (you can use NORMSDIST function embedded on any spreadsheet to get this value)

The very same day these Financial Reports were issued, the "Columbian" yield curve for a 10 year Bond is 7.84%   after applying our formula and if we want to issue our Corporate Bond our cost would be 7.8402%

Is this cost a straight jacket or alluring to investors?  maybe not!  you have to compare this one to the cost you would face if you were taking a loan from a bank or an ensemble of them.  So thus, the coupon rate of your bond could be defined by the following interval [rf, ActiveRate]

After all, other than full control and a lower cost of corporate debts you are looking for an arbitrage opportunity.  The cheapest bank in this country is paying on a 10 year CD 8% and for a 10 year loan is collecting 16% a year...Our new coupon rate would be 0.08/0.999980659810466 = 8.000154725%

Either a bank or the yield curve.  The day this debt is issued to be market traded, the market's discount rate will be higher than your coupon rate...Beware of not selling your bonds at a discount rate near or above the cost of a loan from any Bank....

WHAT IF?   By using the yield curve the key reference rate is negative? No problem, at least one of the rates per maturity will be positive....We can use this one to build our Yield curve by applying calculation of the short rate curve

Acknowledgements: Edward I. Altman from NYU & Pasquale Cirillo from TU Delft
Sources:
RiskCenter, Investopedia, Wikipedia, EdX.org, Coursera.org


Friday 2 January 2015

COMPUTATIONAL FINANCE: Internal Rate Of Return for uneven cash flows (The Time Lags).

You wanted to know what was the return of a share last year, but you can not compute it due to dividends?

This is basically a problem of computational finance not one of Economics Engineering nor Financial Mathematics.

There is R, an excellent programming language if you are dealing with statistics and data science....

The following algorithm and source code is a courtesy of Professor Pasquale Cirillo:

#f=function(y) D1*exp(-t0.5*y)+D2*exp(-t1*y)+D3*exp(-t1.5*y)+PT*exp(-T*y)-P0

#uniroot(f,lower=j,upper=k)

This uniroot function is crucial and of capital importance when you are writing the upper and lower values

The following example will clear this up :

On december 18, 2013.  You bought a share of Stock Exchange.  The next 3 dates are dividends and the last date is when you are closing your position...

21.6    18/12/2013
0.78    30/04/2014
0.32    27/06/2014
0.32    31/10/2014
19.2     17/12/2014

Computer work:

f=function(y) 0.78*exp(-133*y)+0.32*exp(-191*y)+0.32*exp(-317*y)+19.2*exp(-365*y)-21.6
uniroot(f,lower=-1,upper=1) 

Your Work:

y=-0.000152587.  This is a daily rate in continuous time .  Year rate= y*365, exp^(-0.055694255)=0.9458283   =>  -1 = -0.0541717

effective rate: -5.41717%

What if...   uniroot(f,lower=-2,upper=2) or -1 and 0 ??

y=-0.0001220703.  This is a daily rate in continuous time. Annual = -0.0445556595

Converting to discrete time =0.9564224-1 = -0.0435776  => -4.35776%

By using a year scale instead of a day scale, the yearly continuous rate is: -0.048047, so thus:
0.953089-1 =-0.046911.  This is -4.6911%

By using interpolation.  Our daily continuous rate is:
-0.0001316 or -4.8034% per year but in discrete time this translates to:  -4.68986189% per year


Your effective IRR will be the third computation....These algorithms can be deployed to compute rates for ventures and other financial vehicles with not regular events


Sources: Pasquale Cirillo at TU Delft and R
              http://pbil.univ-lyon1.fr/Rweb/Rweb.general.html 
(online computations)