Bistable

Z Skrypty dla studentów Ekonofizyki UPGOW

Wersja Marcin (dyskusja | edycje) z dnia 08:32, 27 paź 2010
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Obligacja ze stałym kuponem

Mamy obligację, której emitent zobowiązuje się do płacenia odsetek regularnie raz do roku i zamierza zwrócić zaciągnięte zobowiązanie (wartość nominalną) w chwili wykupu, na koniec życia zobowiązania. Wartość takie obligacji dane jest wzorem

\(\ P_o=\sum\limits_{i=1}^n\frac{C}{(1+r)^i} +\frac{P_N}{(1+r)^n},\)

który możemy zaimplementować jako funkcję w matlabie:

function P0=Bond_Fair_Price(PN,r,C,n)
  P0 = sum ( C./(1+r).^[1:n] ) + PN/(1+r)^n;
endfunction
Wykres zależności wartości obligacji od stopy procentowej

Dysponując taką funkcją możemy narysować wykres zależności ceny obligacji od stopy procentowej r:

 r=linspace(0.01,0.5,25)
 for i=1:length(r)
  p(i)=Bond_Fair_Price(100,r(i),7,25); 
 endfor
 plot(r,p)

Uwaga: Proszę zwrócić uwagę na fragment:

   C./(1+r).^[1:(n-1)]

który tworzy wektor o elementach będących funkcją wskaźnika

\(\frac{C}{(1+r)^i} \) dla \(i=1..(n-1)\).

Działanie można sobie przećwiczyć na prostym przykładzie:

octave:271> idx=[1:4]
idx =
 
   1   2   3   4
 
octave:272> idx.^2
ans =
 
    1    4    9   16


Przeliczmy teraz przykład ze skryptu Instrumenty Rynku :

octave:157>P0=1
octave:157>PN=100
octave:157>r=0.07 
octave:157>C=6
octave:157>Bond_Fair_Price(PN,r,C,2)
ans =  98.192

Analogicznie możemy zaimplementować naszą funkcje dla przypadków: m wypłat kuponu w jednym roku:

function P0=Bond_Fair_Price_multi(PN,r,C,n,m)
  P0 = sum ( (C/m)./(1+r/m).^[1:n] ) + PN/(1+r/m)^n;
endfunction

oraz dla kapitalizacji ciągłej gdzie mamy:

function P0=Bond_Fair_Price_cont(PN,r,C,t)
ti=1:floor(t);
P0 =  sum (C*exp(-r*ti)) + (t-floor(t))*C*exp(-r*t)  + PN*exp(-r*t);
endfunction
Wykres zależności wartości obligacji od stopy procentowej: porównanie modeli z kapitalizacjami: ciągłą i dyskretną.