運用數位與統計方法了解歐式選擇權定價!
※將抽象的數學公式,巧妙運用程式語言進行輸出,帶你無障礙進入統計分析的世界。
※使用熱門Python程式語言,學習數學或理論模型,瞭解選擇權的定價。
※透過量化分析方法與時間序列模型,深入解析專業財金議題。
※本書適合大學部高年級或研究生使用及對衍生性商品有興趣的讀者自修。更是「衍生性金融商品」、「創新金融商品」或「財務工程」等課程最佳工具書。
一書在手,掌握選擇權定價方法!
一般而言,我們是利用BSM模型以決定歐式選擇權價格,不過BSM模型存在不少缺點,其中波動率固定的假定經常為人所詬病;換言之,我們需要BSM以外的模型。通常介紹選擇權定價的書籍或文獻大多艱澀難懂,本書另闢蹊徑,以另外一種方式來介紹屬於財務工程領域的選擇權定價。全書運用Python按部就班介紹BSM以及其他的模型。
本書仍維持作者之前一貫的特色,舉凡書內牽涉到讀(存)資料、計算、模擬、估計、編表或甚至於繪圖等動作,皆有對應的Python程式碼供讀者練習。利用臺灣實際的選擇權歷史資料,本書發現於波動較大的環境內,BSM之外的模型有可能較優。BSM之外的模型有哪些呢?請翻閱本書。
作者簡介:
林進益
學歷:
國立中山大學財務管理博士
國立政治大學經濟學研究所碩士
東海大學經濟學系學士
經歷:
國立屏東大學財務金融學系副教授
國立屏東商業技術學院財務金融系副教授
國立屏東商專財務金融科講師
致理商專國貿科講師
著作:
財金統計學:使用R語言(2016,五南)《財統》
經濟與財務數學:使用R語言(2017,五南)《財數》
衍生性金融商品:使用R語言(2018,五南)《衍商》
財金時間序列分析:使用R語言(2020,五南)《財時》
統計學:使用Python語言(2020,五南)《統計》
時間序列分析下的選擇權定價:使用R語言(2020,Pubu電子書)《時選》
個人網站:c12yih.webnode.tw
章節試閱
第1章 基本觀念
本書的目的是欲介紹 (基本的) 選擇權定價方法,因此本書可視為《衍商》與《時選》二書 (詳見本書封面) 的延伸或補充。上述二書是使用R語言,但是本書卻使用Python語言 (底下簡稱為Python) 當作輔助工具,由此可看出本書與上述二書之不同。
為何需要撰寫本書?其理由可為:
(1)Python的使用已日趨頻繁且尋常,即Python似乎已逐漸取代R語言的使用,因此有必要重新以Python詮釋。
(2)畢竟《衍商》是以 「衍生性金融商品」 的介紹為主,故有關於 「選擇權定價」 方面仍只是屬於基本模型的檢視。例如:《衍商》並未檢討BSM模型 的缺失以及論及到後續的定價模型。
(3)雖說《時選》有討論到BSM的後續模型,不過該書內容仍偏向於較 「理論且抽象」,我們的確需要以較為簡單的方式而以Python重新詮釋。
(4)雖說《統計》有使用Python,不過相對於R語言而言,Python的使用仍嫌生疏,故我們仍需要練習而以Python來思考。
因此,本書仍秉持著過去筆者書籍的特色,即書內只要有牽涉到例如讀存資料、計算、模擬、編表或甚至於繪圖等,本書皆附有對應的Python程式碼供讀者參考;換言之,讀者閱讀本書不僅可以得到選擇權定價的相關知識,同時亦可以練習Python的使用。
本章內容可視為選擇權定價方法的暖身。本章將以簡單的方式介紹選擇權的基本觀念;當然,若有不足,可以參考《衍商》。
1.1 基本金融觀念
於此,我們將介紹一些有關的基本金融觀念,較完整的說明可參考例如 Bodie et al. (2003)。
金融資產
資產 (assets) 一詞可幫我們認定能產生利潤或價值的經濟資源;當然,若擁有資產,即可從事買或賣交易,即其可轉換成現金。資產可以分成實質資產 (real assets)與金融資產 (financial assets) 二種,前者可以包括例如土地、機械或設備等有形資產,而後者則包括股票、債券或選擇權合約等無形資產。金融資產與實質資產最大的不同是前者是一種合約的索求權 (contractual claim)。例如:擁有台積電 (TSMC) 的股票,即使我們並沒有擁有TSMC的廠房設備 (實質資產),我們仍可以透過TSMC的晶片生產與銷售獲利。由於我們所探討的標的是金融資產,故本書所講的資產指的就是金融資產
價格
金融資產的價格 (price) 指的是價值 (value) (可用不同的幣值表示),其只是買方與賣方同意交換資產擁有權的 「磋商」 價值。或者說,賣價 (ask price) 是指賣方願意賣出的最低價格,而買價 (bid price) 是指買方願意買進的最高價格,因此若買-賣價差 (bid-ask spread) 接近於0,則資產交換所對應的就是資產價格 (市價)。
假定資產可用 表示而其對應的 期價格則為 。雖說某些金融資產的價格為0 (例如遠期合約),不過通常金融資產的價格為大於0,即 。由於本書所討論的標的資產幾乎以股票為主,故金融資產的價格亦可以用 「每股」 表示。
市場
金融資產可以於官方市場 (official markets) 以及場外交易市場 (OTC markets) 交易。通常,外幣與債券市場屬於場外交易市場,而股票市場、選擇權市場以及期貨市場則屬於官方市場。不管官方市場或是場外交易市場,資產的買方與賣方可稱為投資人或經紀 (理) 人。
多頭與空頭部位
看好 (多) 市場趨勢,而買進金融資產謂之持有長部位或稱為多頭部位 (long position);相反地,看壞 (空) 市場趨勢,而賣出金融資產謂之持有短部位或稱為空頭部位 (short position)。除了上述二種交易部位外,另外尚有賣空 (short-selling) 交易。所謂賣空指的是手中未擁有金融資產 (通常是股票資產) 卻賣出該金融資產;換言之,若預期上述金融資產的未來價格會下跌,則可採取賣空交易策略。舉例來說,若以 的價格賣空 股 股票,令 表示買回該 股 股票的時間,則當 ,該投資人可有 的獲利。因此,若投資人持有多頭部位,則可於多頭行情獲利;相反地,若屬於空頭行情,當然若投資人有採取賣空交易策略的話,則持有空頭部位的投資人可獲利。最後,我們必須強調任何金融資產交易必須負擔交易成本 (如手續費或介入成本等費用) 與交易延遲 (畢竟真實交易市場並非24小時立即交易) 等成本。
股票與股利
股票會於集中市場 (官方市場) 交易。通常,公司會經常性地發放股利 (dividend) 給股東,此隱含著股價的某一份額 (會轉成現金) 而轉存於股東的帳戶;因此,若已支付股利,相當於股價被扣除股利份額。
第1章 基本觀念
本書的目的是欲介紹 (基本的) 選擇權定價方法,因此本書可視為《衍商》與《時選》二書 (詳見本書封面) 的延伸或補充。上述二書是使用R語言,但是本書卻使用Python語言 (底下簡稱為Python) 當作輔助工具,由此可看出本書與上述二書之不同。
為何需要撰寫本書?其理由可為:
(1)Python的使用已日趨頻繁且尋常,即Python似乎已逐漸取代R語言的使用,因此有必要重新以Python詮釋。
(2)畢竟《衍商》是以 「衍生性金融商品」 的介紹為主,故有關於 「選擇權定價」 方面仍只是屬於基本模型的檢視。例...
作者序
本書底下有時簡稱為《歐選》或《時選》 (見本書封面) 原本書名稱為 《時間序列分析下的選擇權定價:使用R與Python語言》;換言之,筆者原本打算同時使用R語言 (簡稱R) 與Python 語言 (簡稱Python) 介紹歐式選擇權定價的後續發展 (BSM模型之後)。不過,寫了之後才發現R與Python同時使用容易產生混淆;另一方面,因Python的指令 (或程式碼) 仍需多練習或多熟悉,故只能作罷。因此,本書相當於用Python重新解釋 《時選》與部分的《衍商》,即本書的讀者需熟悉《統計》。
完成本書之後,筆者倒有下列的感想:
(1)若與R比較,於專業的應用上 (例如財金領域),Python的使用的確比較麻煩;換言之,相對於Python而言,R的程式碼不僅較 「直接且也少變化」 同時也較為簡單易懂,故初學者較適合用R。
(2)學習R至少有一個優點,就是大致能了解電腦程式設計的邏輯與推理過程。
(3)畢竟R已使用多年了,網路上的程式套件 (packages) 也已相當多元了,不使用它其實有點可惜;或者說,若不使用R之程式套件,有些時候反而需要利用Python重寫,反而更累。
(4)欲熟悉Python,可能還需要相當時日;也就是說,筆者於寫《歐選》時,若沒有與《衍商》或《時選》內的R程式結果比較,有些時候「結果錯了仍不自知」,即利用Python來書寫,最好能同時與另一種程式語言結果比較,方較客觀。
(5)筆者大多直接將《衍商》與《時選》內的R程式碼 「翻譯」 成對應的Python程式碼,即利用此方式,好像Python的撰寫變成比較簡單;換言之,讀者若不知如何撰寫Python的程式碼,有些時候,直接將R、Gauss或Matlab等的程式碼譯成Python,反而較容易進入狀況。
(6)就財金專業領域而言,Python的模組 (module) 仍嫌不足,此有待我們更加努力。此可看出我們仍可以扮演一些重要的角色。
現在我們來檢視《歐選》。如前所述,《歐選》是利用Python重新詮釋《時選》;也就是說,《歐選》可視為《財時》、《衍商》與《時選》的延伸。基本上,《時選》 或 《歐選》 強調利用統計方法 (或時間序列分析) 檢視BSM模型的後續發展。於歐式選擇權領域內,BSM模型可說是被奉為圭臬或被視為最基本的理論模型,不過因BSM模型存在不少的缺點或限制 (例如:BSM模型假定波動率是一個固定數值、標的資產價格不會出現跳動以及報酬率屬於常態分配等現象皆與實際市場情況不一致),使得我們必須重新檢視BSM模型以及後續的發展模型。
於後續的發展模型內,至少有五項特色值得我們注意:
(1)波動率是一種隨機變數,而我們可以用GARCH或SV過程模型化波動率。
(2)BSM模型假定標的資產價格屬於GBM,而我們發現後者只是Lévy過程的一個特例,即於Lévy過程內,標的資產價格有可能會出現跳動的情況。直覺而言,只要標的資產價格有出現跳動的情形,其對應的報酬率應該就不屬於常態分配。
(3)真實機率與風險中立機率之間的轉換。
(4)利用特性函數來決定選擇權的價格。
(5)使用FFT (快速傅立葉轉換) 或數值方法。
因此,簡單地說,當代選擇權的定價理論因會牽涉到Lévy過程、GARCH或SV模型、風險中立機率的決定與轉換、特性函數、傅立葉轉換 (FT)、FFT或數值方法等觀念的使用,使得選擇權定價理論並不容易接近。我們可以想像介紹選擇權定價理論的文獻或書籍會如何描述上述觀念或特色,即其所使用的數學或模型應該是「既抽象且複雜」,無怪乎有人戲稱「財務工程」的數學像「火箭科學」 的數學。
不管如何,我們總要繼續,否則如何知道選擇權的定價?只是,應該如何學習上述的數學或理論模型?似乎仍沒有人注意此點或提供方法來學習上述專業。就筆者而言,筆者仍建議應使用電腦程式語言來學習;或者說,於介紹上述數學或模型的過程當中,除了必要的理論模型或數學推導過程之外,應多使用電腦程式語言來模擬或說明。使用電腦程式語言來學習至少有一個優點,即其可以將 「抽象且複雜」 的觀念轉換成較為實際的情況;換言之,從 「事後」 來看,學習的困難度的確降低了。
於上述的後續模型中,本書強調Carr與Madan (CM, 1999) 以及Heston與Nandi (HN, 2000) 模型的重要性,上述二者皆利用特性函數來決定歐式選擇權的價格,其中前者是使用FFT 或部分的FFT (FRFT) 方法而後者則使用數值積分方法。利用TXO合約的實際歷史資料,本書發現於某些情況下,CM與HN模型可能優於對應的BSM模型;換言之,除了BSM模型之外,本書發現其實應該還有其他的模型 (如CM與HN模型等) 可以當作參考依據。
本書全部用Python思考或用Python來當作輔助工具,即《歐選》仍保留過去筆者書籍的特色,即書內只要有牽涉到例如讀存資料、模擬、計算、估計、編表或甚至於繪圖等,筆者皆有提供對應的Python程式碼供參考。Python雖然不是屬於統計或財金的軟體,不過用來學習選擇權定價,仍占有一定的優勢。或者說,也許讀者會對《財統》、《財數》或《統計》等書不以為然,不過於《時選》 與《歐選》內應可看出R或Python的威力。
本書總共分成9章。第1章簡單介紹基本觀念以及二項式選擇權定價模型。第2章介紹BSM模型以及利用Python說明BSM模型的避險參數的意義;第3章則檢視MJD模型,比較特別的是,上述二章我們皆使用最大概似方法估計模型內的參數。第4章簡單介紹傳統 (或古典) 的利率模型如Vasicek與CIR模型;另一方面,該章亦檢視CKLS模型的GMM方法。第5章除了說明FT與特性函數之間的關係之外,我們亦利用後者計算BSM與MJD模型的選擇權價格。第6章說明Lévy過程的意義與內涵。第7章除了介紹CM模型之外,我們亦以實際的TWI歷史資料 「校準」。第8章則介紹時間序列分析下的GARCH模型。最後,第9章則介紹普遍被使用的HN模型以及應用該模型檢視TXO合約資料。
本書內容適合給大學部高年級或研究生使用,當然未必侷限於財金 (經) 學系領域 (即《歐選》的財金門檻並不高)。讀者應該不要被上述所提及的觀念給震懾住了,書內的確會有抽象且複雜的數學模型,不過那只是數學式子而已,讀者反而要注意我們如何將上述數學模型或式子轉換成用Python或用R (《時選》) 表示,如此應可降低學習上的困難度。因此,讀者最好有學習以及操作過《財數》 或《財統》的經驗,尤其是《財統》,畢竟本書全部用統計方法。為了提高學習上的興趣,本書較少使用數學上的證明,我們反而是用模擬的方式取代。因此,本書適合用於「衍生性金融商品」、「創新金融商品」或「財務工程」等課程;當然,本書亦可供給對衍生性商品有興趣的讀者自修之用。
筆者感謝 「五南文化事業機構」 給予筆者機會以出版一系列的財金專業書籍,使得筆者於退休後仍能「振筆直書」;當然,筆者的書籍並不容易閱讀而且也不容易「操作」與說服讀者 (畢竟比較辛苦) (也許就是因為不易閱讀才值得筆者書寫),不過筆者仍相信此種以電腦程式語言當作輔助工具的趨勢已逐漸成形。筆者發現透過電腦程式語言的輔助,許多專業的學習困難度的確降低了。面對資訊科技的日新月異,我們是用何態度面對此趨勢?總不能仍原封不動,一成不變吧!可惜的是,坊間似乎仍有太多書籍忽略此一發展趨勢。每當筆者回想過去學習的困難度與受阻礙度,總會忍不住想重新試試。因仍有太多的專業領域內容值得重新詮釋,故原本再用紙本的型態發行已不適當了;不過,因專業書籍利用Python來書寫仍較少見,故此次仍採用紙本的型態發行,希望透過本書能拋磚引玉,能吸引更多人投入此領域。
隨書仍附上兒子的一些作品,有努力就有收穫。依稀可看出兒子的畫風與畫境。仍需繼續努力。感謝內人提供一些意見。筆者才疏識淺,倉促成書,錯誤難免,望各界先進指正。最後,祝操作順利。
本書底下有時簡稱為《歐選》或《時選》 (見本書封面) 原本書名稱為 《時間序列分析下的選擇權定價:使用R與Python語言》;換言之,筆者原本打算同時使用R語言 (簡稱R) 與Python 語言 (簡稱Python) 介紹歐式選擇權定價的後續發展 (BSM模型之後)。不過,寫了之後才發現R與Python同時使用容易產生混淆;另一方面,因Python的指令 (或程式碼) 仍需多練習或多熟悉,故只能作罷。因此,本書相當於用Python重新解釋 《時選》與部分的《衍商》,即本書的讀者需熟悉《統計》。
完成本書之後,筆者倒有下列的感想:
(1)若與R比...
目錄
第1章 基本觀念
1.1 基本金融觀念
1.2 二項式模型
1.3 歐式與美式選擇權
1.3.1選擇權合約的性質
1.3.2二項式選擇權定價模型
第2章 BSM模型
2.1 幾何布朗運動
2.1.1 GBM的意義與模擬
2.1.2 GBM內參數的估計
2.2 BSM模型
2.2.1 BSM模型的應用
2.2.2 BSM模型的避險參數
2.3 波動率微笑曲線與波動率曲面
第3章 MJD模型
3.1 跳動的GBM
3.1.1卜瓦松過程與複合卜瓦松過程
3.1.2 跳動-擴散過程
3.2 估計的MJD模型
3.2.1 最大概似估計法
3.2.2 動差法
3.3 MJD模型下的選擇權定價
第4章 利率的模型化
4.1 Black模型
4.1.1 期貨選擇權價格的計算
4.1.2 利率上限、利率下限與利率上下限選擇權
4.2 利率的模型化
4.2.1 Vasicek模型
4.2.2 CIR模型
4.3 GMM的應用
4.3.1 GMM
4.3.1.1 動差法
4.3.1.2 GMM的估計步驟
4.3.2 CKLS模型
第5章 傅立葉轉換
5.1 傅立葉轉換的意義
5.1.1 一些準備
5.1.2 傅立葉轉換的定義
5.2 特性函數
5.2.1 特性函數的意義
5.2.2 累積與動差母函數
5.3 選擇權的定價
第6章 Lévy過程
6.1 一些準備
6.2 Lévy過程
6.2.1 Lévy過程的內涵
6.2.2有限活動與無限活動的Lévy過程
6.2.2.1 Kou模型
6.2.2.2 NIG模型
6.2.2.3 VG過程
6.3 NIG與VG分配
第7章 快速傅立葉轉換
7.1何謂FFT?
7.2 選擇權定價:使用FFT
7.2.1 CM方法
7.2.2 FRFT
7.3 校準
附錄:TXO201101買權價格資料
第8章 GARCH模型
8.1 財金時間序列資料的獨特性
8.2 ARCH/GARCH模型
8.2.1 ARCH/GARCH模型的簡介
8.2.2 GARCH模型的估計與檢定
8.3 非對稱的GARCH模型
第9章 Heston模型
9.1 H模型
9.1.1 蒙地卡羅方法
9.1.2 德爾塔-機率分解方法
9.2 HN模型
9.2.1 HN模型的模擬
9.2.2 HN模型的選擇權定價
9.3 ML估計
附錄:TXO202009C買權價格資料
參考文獻
中文索引
英文索引
第1章 基本觀念
1.1 基本金融觀念
1.2 二項式模型
1.3 歐式與美式選擇權
1.3.1選擇權合約的性質
1.3.2二項式選擇權定價模型
第2章 BSM模型
2.1 幾何布朗運動
2.1.1 GBM的意義與模擬
2.1.2 GBM內參數的估計
2.2 BSM模型
2.2.1 BSM模型的應用
2.2.2 BSM模型的避險參數
2.3 波動率微笑曲線與波動率曲面
第3章 MJD模型
3.1 跳動的GBM
3.1.1卜瓦松過程與複合卜瓦松過程
3.1.2 跳動-擴散過程
3.2 估...