摘 要:指出構建金融定量分析中軟件平臺的必要性和可行性、然后通過對需要進行金融定量分析問題的分類后,展示怎樣用R軟件解決這些金融定量分析問題中的三個:平方和和殘差等數據統計問題、期權分析問題和資產組合和交易策略問題。
關鍵詞:金融定量分析;R軟件;軟件平臺
中圖分類號:F830 文獻標志碼:A 文章編號:1673-291X(2012)10-0077-02
一、構建金融定量分析中軟件平臺的必要性和可行性
在進行金融學的本科教學中,雖然涉及諸如計量經濟學、貨幣銀行學、金融工程、金融風險管理等諸多學科,不過整觀整個金融學科教育體系,其實不外乎兩大核心內容的教育。
第一是金融理論的教育。主要講述金融的基礎理論知識,中間包括計量經濟學、西方經濟學和貨幣銀行學在內的核心而且經典理論框架;第二就是金融實踐的教育。由于金融學屬于定量分析的科學,尤其是隨著金融業的發展,金融領域很多問題變得越來越復雜,基于計算機的迅猛發展,在應用領域也不斷涌現出新的分析軟件,解決問題的途徑越來越多樣化。
毫無疑問,金融實踐越來越離不開計算機。同時,由于研究的需要,越來越多的統計軟件被開發出來。在進行本科金融的教育中,筆者發現金融專業的學生面臨的各種軟件和軟件包感到眼花繚亂,以及日益復雜的金融理論和實證設計,令如何選擇軟件和進行軟件教學成為一個重要的課題。
正如諾貝爾獲得者諾思所言,“人們一旦選擇了某個體制,由于規模經濟(Economies of scale) 、學習效應(Learning Effect)、協調效應(Coordination Effect)以及適應性預期(Adaptive Effect)等因素的存在,會導致該體制沿著既定的方向不斷得以自我強化”。路徑依賴總讓人們傾向于用一種思維解決所有問題,其實這未必一定是壞事,對于金融本科生來說,不同軟件對計算功能的實現沒有顯著區別。因此,筆者總在思考能否構建一款軟件將金融大部分核心問題予以解決。
構建定量金融軟件教學的統一平臺,一方面有利于整合各資源,另一方面也有利于學生的實踐知識的深化。畢竟,目前在進行常規統計,學生主要用Excel;處理時間序列數據,學生主要用Eviews或SPSS;在進行矩陣分析,學生主要用MatLab。不同課程在軟件使用上缺乏協調,各自為陣。筆者想以R軟件為工具,構建統一的金融計算軟件平臺。
R軟件作為一種免費軟件、同時作為統計軟件的后起之秀,已逐步成為主流統計軟件之一,具有較好的應用前景。我們完全可以將金融學專業的核心課程中涉及軟件計算的課程進行整合,構建基于R軟件的統一軟件教學平臺。
二、需要進行金融定量分析問題的分類
如果要構建統一軟件教學平臺,即基于R軟件要解決目前主要的金融問題,我們首先要對目前的金融問題有所分類,就是說,目前在本科金融教育層面,我們一般會遇到什么金融問題需要定量分析,筆者根據研究的頻度來做基本劃分而非金融理論的結構,就是說日常主要碰到頻率最高的金融定量分析問題。一是數據統計問題。主要包括諸如方程,中位數,平均數等關于金融市場典型事實的描述和分類。二是期權分析問題。主要包括歐式和美式期權的定價問題等。三是時間序列數據和截面數據的回歸問題。主要包括回歸分析,線性和非線性建模等。四是債券分析問題。主要包括債券收益率,凸性分析等。五是波動率研究。主要包括GARCH類模型的計算和預測等。六是資產組合和交易策略問題。主要包括金融資產優化選擇,有效邊界的計算,高頻數據交易策略的成效分析。
三、如何基于R軟件進行構建
R在處理金融統計分析中的具有很好的應用,方便簡單,更為重要的是我們完全可以通過編制不同的函數包分門別類地解決上述需定量分析的金融問題。基于篇幅所限,不能將所有問題的R軟件解決方案予以列舉,僅列三例以說明R軟件的函數實現過程。
1.基于R軟件解決諸如平方和和殘差等數據統計問題
示例:研究六種存款利率如何影響在12個地區的某銀行的居民存款總量,觀測變量是居民存款總量。實質就是六種存款利率重復測試了12次,因此共有72次觀測值。求進行平方和和殘差分析。
>data(deposit)
>result<-aov(sqrt(count)~ deposit,data=deposit)
>result
Residual standard error:0.8366
Estimated effects may be unbalanced
aov是在R函數包stats里面的方差分析函數。
第一行通過函數data把居民存款量和六種存款利率數據導入內存;第二行是對數據進行平方根轉換,然后再進行導入aov函數進行計算;第三行主要是顯示運行的結果。當然,如果第三行命令,R不會顯示結果,而是將結果儲存在一個叫做object的對象中,我們也可以通過命令的方式對結果進行提取個別提取,例如我們只想知道殘差是多少等。
2.基于R軟件解決期權分析問題
示例:已知某只不支付紅利的股票的市場價為50元,無風險利率為12%,波動率為10%,期權的執行價為50元,存續期為1年,求該股票歐式看漲期權的期權費。
在R中鍵入如下命令即可:
> call <-BS(50,50,0.12,1,0.1)
> call
[1] 5.92
第一行為函數包通過在參數已知的情況下,將計算結果賦給變量call;第二行命令是輸出call值,第三行為屏幕顯示該歐式看漲期權價格是5.92元。[1] 表示從call變量的第一個元素開始顯示,因為有些變量不止一個數值,R允許將多個數值同時賦予給一個變量。
3.基于R軟件解決資產組合和交易策略問題
在最近這些年,隨著高頻數據研究的逐漸深入,計算機輔助金融買賣在發達國家諸如美國大行其道,進行有效的資產組合或者交易策略,我們首先必須將交易策略和資產數據用過去的行情歷史進行測試。雖然過去不代表未來,但是如果資產交易策略連過去數據都無法通過檢驗,我們更加無法相信策略在未來的可行性。表1為筆者通過R語言的編程內嵌到某交易商EA的交易平臺的測試報告。
上表顯示筆者通過用固定的短線交易策略測試2000—2009年的美元對日元的19 217 766的即時價量數據,最大虧損和連續虧損數額都得到了不錯的表現,從過去的數據顯示,是一個筆者目前見過最好的交易策略模式,當然過去表現不等同未來表現。
參考文獻:
[1] Emmanuel Paradis.R for beginners[M].北京:機械工業出版社,2011.
[2] 高鐵梅.計量經濟分析方法與建模——Eviews 應用及實例[M].北京:清華大學出版社,2006.
[3] 劉明廣.本科《計量經濟學》課程教學的幾點建議[J].統計與咨詢,2008,(2).
[4] 2010中國金融交易自動化設備市場投資前景預測及發展策略[EB/OL].中策經濟研究,2010.
[責任編輯 陳麗敏]