Python में बॉन्ड वैल्यूएशन और एनालिसिस
Joshua Mayhew
Options Trader
ज़ीरो कूपन बॉन्ड की कीमत का फ़ॉर्मूला याद करें:
$PV = \frac{FV}{(1 + r)^n}$
इस समीकरण को पुनर्व्यवस्थित कर हम यील्ड $(r)$ निकाल सकते हैं:
$FV = PV \times (1 + r)^n$
$ \frac{FV}{PV} = (1 + r)^n$
$ \sqrt[n]\frac{FV}{PV} = (1 + r)$
$ \sqrt[n]\frac{FV}{PV} -1 = r$
चलिए उसी ज़ीरो कूपन बॉन्ड को उल्टा चलते हुए देखते हैं:
इस बॉन्ड की यील्ड क्या है?
3 साल का ज़ीरो कूपन बॉन्ड, प्राइस USD 90.19, फेस वैल्यू USD 100:
$r = \sqrt[n]\frac{FV}{PV} -1$
ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035
हम 'yield to maturity' के लिए ytm इस्तेमाल करेंगे।
कूपन बॉन्ड फ़ॉर्मूला:
$ PV = \frac{C}{(1 + r)^1} + \frac{C}{(1 + r)^2} + ... +\frac{C}{(1 + r)^n} + \frac{P}{(1 + r)^n}$
$ = \sum_{i=1}^n \frac{C}{(1 + r)^i} + \frac{P}{(1 + r)^n}$
इस समीकरण को $r$ के रूप में पुनर्व्यवस्थित नहीं कर सकते
$r$ खोजने के लिए ट्रायल-एंड-एरर का उपयोग करते हैं
npf.rate() फंक्शन यही करता है
आइए पहले वाले कूपन-पेइंग बॉन्ड पर विचार करें जो:
इसका yield to maturity क्या है?
3 साल का कूपन बॉन्ड, 3% वार्षिक कूपन, प्राइस USD 97.22:
import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04
याद रखें, PV को नेगेटिव सेट करना है।
क्योंकि बॉन्ड की कीमत वह नकद-आउटफ्लो है जो हम भुगतान करते हैं।
Python में बॉन्ड वैल्यूएशन और एनालिसिस