站長強力推薦

我的 Windows XP 是不裝防毒軟體的(現在我已經沒有實體 Windows 了,都是用 VirtualBox 來跑),第一、它會拖慢我的速度;第二、我的安全觀念還不錯,除了不亂裝來源不明的軟體,我上網都是用 Firefox 瀏覽器,它輕快、安全、瀏覽頁面效果好,而我最喜歡的一個功能是:「它可以用<Ctrl>+<加>把字放大到你看得到為止」,強烈建議你安裝 Firefox 瀏覽器

另外各位可以看到我的站台中放著我與內人的結婚照與大家分享我們的喜悅。過去是自行安裝一個 Gallary2 相簿系統來將相片備份在網路上,然而並不是每個人都可以架一個網站來作這件事的。但把相片放置在網路上是有其需要的,第一、可以多了一個備份的地方;第二、如果你想分享給親友,只要貼個連結即可;第三、如果不想分享只要按個按鈕就能隱藏相簿。我推薦各位使用 picasa ,現在我為了省事,也是把所有的舊相片全搬到 picasaweb 去了。因為我是使用 picasa 軟體,所以搬相片非常簡單,按個鈕就可以把相片全上傳出去,過程當中,你還可以設定相簿公開或是隱藏。欲安裝 picasa ,請先安裝 Google 軟體集,除了給你 Picasa 軟體,它也提供免費的防毒軟體,防間諜軟體及一些好用的小工具。滿建議你們全裝的。

最後,各位一定有注意到我的 Blog 到處都有 Google 所提供的廣告,對吧!這些廣告都是用 Google AdSense 作出來的,這些廣告讓我在 1 年內賺了 35 塊美金,錢是不多,但我也沒花什麼力氣呀!我只是寫寫文章而已,而寫文章本來就是我的收穫了。所以你也可以申請 Google AdSense 。這樣除了練習自己的思考能力,還有錢可以拿,不賴吧!

FOClass: 債券殖利率曲線計算

前篇文章中,我們已可算出零息債券的殖利率,但如果要套用在實務上的應用中,我們必須將觀察到的各點作一迴歸函式,讓我們可以找到各天期的殖利率。

運用原理為 Cubic Spline 方法。假設債券的 Discount 因子為一個三次方程式:



而每張債券的現金流量再套入下方方程式:



可得到類似 3.3a + 1.2b + 5.5c = 30 的等式。像是代入前篇文章的九張債券可得如下式子:





透過 OLS(ordinary least square) 方法求出 a, b, c 的適當值後,再代入:



即可算出殖利率曲線。如下圖:


  • 綠色線為零息債券殖利率曲線
  • 紅色線為附息債券殖利率曲線
我們可以看到 20~30年期的殖利率下降的十分奇怪。原因是我們的觀察值債券的年期最大只有 20 年,所以這一條函式在預測 20~30 年期的數據應該是有問題。

相關的 Python 程式如下:
 1 class CubicSpline:
2 """ 使用最小平方和原則作三次方方程式的迴歸
3 """
4 def __init__(self):
5 self.PVs = array([])
6 self.X = array([])
7
8 def addBondData(self, PV=0, Ci=[], Ni=[]):
9 self.PV = PV < 0 and PV or -1*PV
10 if Ni[0] == 0:
11 self.PVs = append(self.PVs, -1*self.PV-Ci[0])
12 self.Ci = array(Ci[1:])
13 self.Ni = array([[1, t, t**2, t**3] for t in Ni[1:]])
14 else:
15 self.PVs = append(self.PVs, -1*self.PV)
16 self.Ci = array(Ci)
17 self.Ni = array([[1, t, t**2, t**3] for t in Ni])
18
19 self.dt = dot(self.Ci, self.Ni)
20 if len(self.X):
21 self.X = append(self.X, [self.dt[1:]], axis=0)
22 else:
23 self.X = array([self.dt[1:]])
24
25 self.PVs[-1] -= self.dt[0]
26
27 def runOLS(self):
28 self.X = matrix(self.X)
29 self.PVs = matrix(self.PVs).T
30 self.b = linalg.inv(self.X.T * self.X) * self.X.T * self.PVs
31 return self.b

0 comments: