Hoe bereken ik een gewijzigde duur met Matlab?

Least-squares Problems - Mathematics - Linear Algebra - TU Delft (September 2024)

Least-squares Problems - Mathematics - Linear Algebra - TU Delft (September 2024)
Hoe bereken ik een gewijzigde duur met Matlab?
Anonim
a:

De modified duration meet de gevoeligheid van de vastrentende effecten voor veranderingen in rentetarieven. Om de modified duration in Matlab te berekenen, geeft u de couponrente, de afwikkelingsdatum, de vervaldatum en het rendementsniveau op halfjaarbasis op. De functie die de gewijzigde duur berekent in Matlab voor een bepaald rendement, wordt "bnddury" genoemd en het commando is "result = bnddury (Yield, CouponRate, Settle, Maturity)". Als u de modified duration wilt berekenen op basis van de huidige prijs van de bond in plaats van de yield to maturity, doet u dat met de functie "bnddurp" en voert u het commando "result = bnddurp (Price, CouponRate, Settle, Maturity)" uit. Het resultaat in beide gevallen is een matrix met drie matrices met gewijzigde duur, Macaulay-duur in jaren en Macaulay-duur op halfjaarlijkse basis.

De modified duration is een concept dat stelt dat de obligatiekoersen en rentetarieven omgekeerd evenredig zijn. De gewijzigde duur wordt berekend als Macaulay-duur / (1 + opbrengst / n), waarbij n de bereidingsfrequentie per jaar is. Macaulay-duur vertegenwoordigt een gewogen gemiddelde tijd tot terugbetaling van de obligatie en wordt gemeten in jaren. Modified duration meet de gevoeligheid van de obligatiekoers voor de rendementswijzigingen en wordt in procenten gemeten.

Overweeg een belegger die geïnteresseerd is in het berekenen van een modified duration voor zijn obligatie met een afwikkelingsdatum van 2 augustus 1999, de vervaldatum van 15 juni 2004, een couponrente van 5 5%, twee couponbetalingen per jaar en dagtellingbasis van feitelijk / actueel. De belegger is geïnteresseerd in het kennen van de modified duration wanneer het marktrendement voor deze obligatie 4% is.

Ten eerste moet de belegger variabelen voor rendement creëren met het bevel "Opbrengst = 0. 04", couponrente met het commando "CouponRate = 0. 055", afrekeningsdatum met het commando "Settle = '02 -Aug-1999 '" , vervaldatum met het commando "Maturity = '15 -Jun-2004 '", couponbetalingsfrequentie met het commando "Periode = 2" en de dagtelling met het commando "Basis = 0". Houd er rekening mee dat variabelen voor afwikkelings- en vervaldatums van seriële datumnummers of datumreeksen moeten zijn.

Het commando "result = bnddury (Yield, CouponRate, Settle, Maturity)" produceert een matrixresultaat dat drie getallen bevat, die de modified duration van 4. 24, Macaulay-duur op jaarbasis van 4. 33 en Macaulay-duur op een halfjaarlijkse basis van 8. 66.

Als de belegger geen opbrengst tot het einde heeft, maar een prijs van de obligatie heeft, op basis waarvan hij de modified duration wil berekenen, kan dit doen met behulp van de functie "bnddurp". Stel dat dezelfde obligatie een prijs van 106 heeft. De belegger moet een prijsvariabele opgeven met het commando "Prijs = 106".Het commando "result = bnddurp (Price, CouponRate, Settle, Maturity)" levert vergelijkbare resultaten op als de functie "bnddury".

De belegger kan ook een andere dagtellingsbasis opgeven door verschillende numerieke waarden op te geven van 0 tot 13 voor de variabele "Basis". Waarde 1 bijvoorbeeld staat voor 30/360 basis, 2 voor feitelijk / 360 basis en 3 staat voor feitelijk / 365 basis. Bovendien kan de belegger andere parameters specificeren, zoals de datum van de eerste coupon, de datum van de laatste coupon en de regel voor de eindmaand.