Python 金融實戰 (Python for Finance) Python金融实战

嚴玉星

  • 出版商: 人民郵電
  • 出版日期: 2017-07-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 320
  • 裝訂: 平裝
  • ISBN: 7115457077
  • ISBN-13: 9787115457073
  • 相關分類: Python程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

相關主題

商品描述

Python憑借其簡單、易讀、可擴展性以及擁有巨大而活躍的科學計算社區,在需要數據分析和處理大量數據的金融領域得到了廣泛而迅速的應用,並且成為越來越多專業人士首選的編程語言之一。

本書通過12章內容介紹了Python在金融領域的應用,從Python的安裝、基礎語法,再到一系列簡單的編程示例,本書循序漸進地引導讀者學習Python。

同時,本書還結合Python的各個模塊以及金融領域中的期權價格、金融圖形繪制、時間序列、期權定價模型、期權定價等內容,深度揭示了Python在金融行業中的應用技巧。

本書適合金融、會計等相關專業的高校師生閱讀,也適合金融領域的研究人員和從業人員參考學習。對於有一定電腦編程基礎,但想要從事金融行業的讀者,本書也是不錯的參考用書。

作者簡介

嚴玉星畢業於麥吉爾大學,獲金融學博士學位。

他有著豐富的教學經驗,教授過各類本科學位和研究生學位的金融課程,如金融建模、期權和期貨、投資組合理論、定量財務分析、企業融資和金融數據庫等。他曾在8所全球知名的大學任教:兩所在加拿大,一所在新加坡,5所在美國。

嚴博士一直活躍於學術研究的前沿,他的研究成果在多個國際學術期刊發表。此外,他還是財務數據方面的專家。在新加坡南洋理工大學任教時,他曾為博士生講授一門名為“金融數據庫入門”的課程。

目錄大綱

第1章Python簡介及安裝1 

1.1 Python簡介1 

1.2如何安裝Python 3 

1.3 Python的不同版本3 

1.4運行Python的3種方式4 

1.4.1用GUI啟動Python 4 

1.4.2從Python命令行啟動Python 5 

1.4 .3從DOS窗口啟動Python 6 

1.5如何退出Python 7 

1.6錯誤提示7 

1.7 Python語言是區分大小寫的8 

1.8變量的初始化8 

1.9尋找在線幫助9 

1.10查找學習手冊和教程10 

1.11如何找出Python的版本12 

1.12小結12 

練習題12 

第2章用Python完成普通計算器的功能14 

2.1變量的賦值及顯示15 

2.2錯誤提示15 

2.3不能調用沒有賦值的變量16 

2.4選擇有意義的變量名16 

2.5使用dir( )來查找變量和函數17 

2.6刪除或取消變量17 

2.7基本數學運算:加、減、乘、除18 

2.8冪函數、取整和余數函數19 

2.9一個真正的冪函數20 

2.10選擇合適的數值精度21 

2.11找出某個內置函數的詳細信息22 

2.12列出所有內置函數22 

2.13導入數學模塊23 

2.14 e、對數和指數函數24 

2.15 i mportmath與frommathimport*的區別24 

2.16一些常用的函數25 

2.16.1 print()函數25 

2.16.2 type()函數26 

2.16.3下劃線_ 26 

2.16.4結合兩個字符串26 

2.16.5將小寫字符變成大寫字符的函數:upper() 27 

2.17元組數據類型28 

2.18小結29 

練習題30 

第3章用Python編寫一個金融計算器32 

3.1編寫不需要保存的Python函數33 

3.2函數的輸入參數及它們的預設值33 

3.3縮進格式在Python編程中至關重要34 

3.4檢查自己編寫的函數是否存在35 

3.5在Python編輯器裡定義函數35 

3.6利用import()在Python編輯器裡激活自己編寫的函數36 

3.7使用Python編輯器調試程序37 

3.8調用pv_f()函數的兩種方法37 

3.9生成自製的模塊38 

3.10兩種註釋方法39 

3.10.1第1種註釋方法39 

3.10.2第2種註釋方法39 

3.11查找有關pv_f()函數的信息40 

3.12條件函數:if() 41 

3.13計算年金41 

3.14利率換算42 

3.15連續複利利率44 

3.16數據類型:列 45 

3.17淨現值和淨現值法則45 

3.18投資回收期和投資回收期法則47 

3.19內部收益率和內部收益率法則47 

3.20顯示在某個目錄下的指定文件49 

3.21用Python編寫一個專業金融計算器49 

3.22將我們的目錄加到Python的路徑上50 

3.23小結52 

練習題52 

第4章編寫Python程序計算看漲期權價格56 

4.1用空殼法編寫一個程序57 

4.2用註釋法編寫一個程序59 

4.3使用和調試他人編寫的程序61 

4.4小結61 

練習題61 

第5章模塊簡介64 

5.1什麼是模塊64 

5.2導入模塊65 

5.2.1為導入的模塊取個簡稱66 

5.2.2顯示模塊裡的所有函數66 

5.2 .3比較importmath和frommathimport* 67 

5.2.4刪除已經導入的模塊67 

5.2.5導入幾個指定的函數68 

5.2.6找出所有的內置模塊69 

5.2.7找出所有可用的模塊69 

5.2.8找到一個已安裝的模塊的目錄位置71 

5.2.9有關模塊的更多信息72 

5.2.10查找某個未安裝的模塊72 

5.3模塊之間的相互依賴性73 

5.4小 74 

練習題75 

第6章NumPy和SciPy模塊簡介76 

6.1安裝NumPy和SciPy模塊77 

6.2從Anaconda啟動Python 77 

6.2.1使用NumPy的示例78 

6.2.2使用SciPy的示例79 

6.3顯示NumPy和SciPy包含的所有函數82 

6.4關於某個函數的詳細信息83 

6.5理解列表數據類型83 

6.6使用全一矩陣、全零矩陣和單位矩陣84 

6.7執行數組操作84 

6.8數組的加、減、乘、除85 

6.8.1進行加減運算85 

6.8.2執行矩陣乘法運算85 

6.8.3執行逐項相乘的乘法運算86 

6.9 x.sum()函數87 

6.10遍歷數組的循環語句87 

6.11使用與模塊相關的幫助87 

6.12 SciPy的一系列子函數包88 

6.13累積標準正態分佈89 

6.14與數組相關的邏輯關係90 

6.15 SciPy的統計子模塊(stats) 90 

6.16 SciPy模塊的插值方法91 

6.17使用SciPy求解線性方程92 

6.18利用種子(seed )生成可重複的隨機數93 

6.19在導入的模塊裡查找函數94 

6.20優化算法簡介95 

6.21線性回歸和資本資產定價模型(CAP M) 95 

6.22從文本文件(.txt)輸入數據:loadtxt()和getfromtxt()函數96 

6.23獨立安裝NumPy模塊97 

6.24數據類型簡介97 

6.25小結98 

練習題98 

第7章用matplotlib模塊繪製與金融相關的圖形101 

7.1通過ActivePython安裝matplotlib模塊102 

7.2通過Anaconda安裝matplotlib模塊103 

7.3 matplotlib模塊簡介103 

7.4了解簡單利率和復利利率106 

7.5為圖形添加文字107 

7.6杜邦等式的圖示109 

7.7淨現值圖示曲線110 

7.7.1有效地使用顏色113 

7.7.2使用不同形狀114 

7.8圖形演示分散投資的效果115 

7.9股票的數目和投資組合風險117 

7.10從雅虎財經網站下載歷史價格數據119 

7.10.1用直方圖顯示收益率分佈120 

7.10.2比較單隻股票的收益和市場收益122 

7.11了解現金的時間價值124 

7.12用燭台圖展示IBM的每日收盤價125 

7.13用圖形展示價格變化126 

7.14同時展示收盤價和交易量129 

7.14.1在圖形上添加數學公式130 

7.14.2在圖形 添加簡單的圖像131 

7.14.3保存圖形文件132 

7.15比較個股的表現132 

7.16比較多隻股票的收益率與波動率133 

7.17查找學習手冊、示例和有關視頻135 

7.18獨立安裝matplotlib模塊136 

7.19小結136 

練習題136 

第8章時間序列的統計分析139 

8.1安裝pandas和statsmodels模塊140 

8.1.1在Anaconda命令提示符下啟動Python 140 

8.1.2使用DOS窗口啟動Python 141 

8.1.3使用Spyder啟動Python 142 

8.2 Pandas和statsmodels模塊簡介143 

8.2.1如何使用Pandas模塊143 

8.2.2 statsmodels模塊示例144 

8.3開源數據145 

8.4用Python代碼輸入數據147 

8.4.1從剪貼板輸入數據147 

8.4.2從雅虎財經網站下載歷史價格數據147 

8.4.3從txt文件輸入數據148 

8.4.4從Excel文件輸入數據149 

8.4.5從csv文件輸入數據150 

8.4.6從網頁下載數據150 

8.4.7從MATLAB數據文件輸入數據152 

8.5幾個重要的函數152 

8.5.1使用pd.Series()生成一維時間序列152 

8.5.2使用日期變量153 

8.5.3 使用DataFrame數據類型154 

8.6計算回報率156 

8.6.1從日回報率計算月回報率157 

8.6.2從日回報率計算年回報率159 

8.7按日期合併數據集160 

8.8構建n隻股票的投資組合161 

8.9 T—檢驗和F—檢驗162 

8.9.1檢驗方差是否相等163 

8.9.2測試“一月效應” 164 

8.10金融研究和實戰的應用舉例165 

8.10.2用Roll(1984)模型來估算買賣價差166 

8.10.3用Amihud(2002)模型來估算反流動性指標167 

8.10.4 Pastor和Stambaugh(2003)流動性指標168 

8.10.5 Fama—French三因子模型171 

8.10.6 Fama—MacBeth回歸模型173 

8.10.7滾動式估算市場風險係數174 

8.10.8在險價值簡介177 

8.11構建有效組合邊界178 

8.11.1估計方差—協方差矩陣178 

8.11.2優化—最小化181 

8.11.3構建一個最優投資組合181 

8.11.4構建n隻股票的有效組合邊界183 

8.12插值法簡介186 

8.13輸出數據到外部文件187 

8.13.1輸出數據到一個文本文件187 

8.13.2輸出數 據到一個二進製文件188 

8.13.3從二進製文件讀取數據188 

8.14用Python分析高頻數據併計算買賣價差188 

8.15更多關於使用Spyder的信息194 

8.16一個有用的數據集195 

8.17小結196 

練習題197 

第9章Black—Scholes—Merton期權定價模型201 

9.1看漲期權和看跌期權的收益和利潤/損失函數202 

9.2歐式期權與美式期權205 

9.3現金流、不同類型的期權、權利和責任206 

9.4正態分佈、標準正態分佈和累積標準正態分佈206 

9.5不分紅股票的期權定價模型209 

9.6用於期權定價的p4f模塊210 

9.7已知分紅股票的歐式期權價格212 

9.8多種交易策略213 

9.8.1股票多頭和看漲期權空頭的組合214 

9.8.2跨式期權組合—具有同樣執行價格的看漲期權和看跌期權的組合215 

9.8.3日曆套利組合216 

9.8.4蝶式看漲期權組合218 

9.9期權價格和輸入參數之間的關係219 

9.10與期權相關的希臘字母219 

9.11期權平價關係及其圖形 表示221 

9.12二叉樹法及其圖形表示223 

9.12.1為歐式期權定價的二叉樹法229 

9.12.2為美式期權定價的二叉樹法229 

9.13套期保值策略230 

9.14小結231 

練習題232 

第10章Python的循環語句和隱含波動率的計算235 

10.1隱含波動率的定義236 

10.2 for循環簡介237 

10.2.1使用for循環計算隱含波動率237 

10.2.2歐式期權的隱含波動率238 

10.2.3看跌期權的隱含波動率239 

10.2.4 enumerate()函數簡介240 

10.3用for循環計算內部收益率及多個內部收益率241 

10.4 while循環簡介243 

10.4.1使用鍵盤命令停止無限循環244 

10.4.2使用while循環計算隱含波動率244 

10.4.3多重嵌套的for循環246 

10.5美式看漲期權的隱含波動率246 

10.6測試一個程序的運行時間247 

10.7二分搜索的原理248 

10.8順序訪問與隨機訪問249 

10.9通過循環訪問數組的元素250 

10.9.1利用for循環賦值251 

10.9.2通過循環訪問詞典的元素251 

10.10從CBOE網站下載 權數據252 

10.11從雅虎財經網頁下載期權數據254 

10.11.1從雅虎財經網頁檢索不同的到期日期254 

10.11.2從雅虎財經網頁下載當前價格255 

10.12看跌期權和看漲期權的比率及其短期趨勢255 

10.13小結258 

練習題258 

第11章蒙特卡羅模擬和期權定價261 

11.1產生服從標準正態分佈的隨機數262 

11.1.1產生服從(高斯)正態分佈的隨機樣本263 

11.1.2利用種子(seed )生成相同的隨機數263 

11.1.3產生n個服從正態分佈的隨機數263 

11.1.4正態分佈樣本的直方圖264 

11.1.5對數正態分佈的圖形表示265 

11.1.6產生服從泊松分佈的隨機數266 

11.1.7產生服從均勻分佈的隨機數266 

11.2利用蒙特卡羅模擬計算的近似值267 

11.3從隻股票中隨機選擇m只268 

11.4可重複和不可重複的隨機取樣270 

11.5年收益率的分佈271 

11.6模擬股價變化273 

11.7圖形展示期權到期日的股票價格的分佈275 

11.8尋找有效的投資組合 有效邊界276 

11.8.1尋找基於兩隻股票的有效組合及相關係數的影響276 

11.8.2構建n隻股票的有效邊界281 

11.9算術平均值與幾何平均值283 

11.10預測長期回報率284 

11.11用模擬法為看漲期權定價285 

11.12奇異期權簡介286 

11.12.1利用蒙特卡羅模擬給均價期權定價286 

11.12.2利用蒙特卡羅模擬給障礙式期權定價288 

11.13障礙式期權的平價關係及其圖形演示289 

11.14具有浮動執行價格的回望式期權的定價293 

11.15使用Sobol序列來提高效率294 

11.16小結294 

練習題295 

第12章波動率和GARCH模型296 

12.1傳統的風險測度—標準方差297 

12.2檢驗正態分佈297 

12.3下偏標準方差300 

12.4檢驗兩個時間段的波動率是否相等302 

12.5利用Breusch和Pagan(1979)方法檢驗異方差303 

12.6從雅虎財經網頁檢索期權數據306 

12.7波動率的微笑曲線和斜度307 

12.8波動率集聚效應的圖形表示309 

12.9 ARCH模型及ARCH(1)隨 過程的模擬310 

12.10 GARCH(廣義ARCH)模型312 

12.10.1模擬GARCH隨機過程312 

12.10.2採用改良的garchSim()函數模擬GARCH(p,q)模型313 

12.10.3由Glosten、Jagannanthan和Runkle(1993 )提出的GJR_GARCH模型簡介315 

12.11小結319 

練習題319