Python 金融數據分析, 2/e (Mastering Python for Finance, 2/e)
內容描述
本書介紹如何利用新的程序語言進行金融建模並實現複雜的數據運算。
書中講授的程序工具與數據均可以通過公開渠道獲取,
通過建模與研究分析,你會對整個Python生態體係有全局性的認識。
大量的實例分析也會加深你對金融風險管控的認知。
目錄大綱
目錄
●前言
審校者簡介
部分開始學習Python
第1章Python金融分析概述
1.1安裝Python
1.1.1準備一個虛擬環境
1.1.2運行Jupyter Notebook
1.1.3關於Python的其他建議
1.2 Quandl簡介
1.3繪製時間序列圖
1.3.1從Quandl檢索數據集
1.3.2繪製收盤價與成交量的關係圖
1.3.3繪製燭台圖
1.4對時間序列數據進行金融分析
1.4.1繪製收益率圖
1.4.2繪製累積收益率圖
1.4.3繪製直方圖
1.4.4繪製波動率圖
1.4.5 QQ圖
1.4.6下載多個時間序列數據
1.4.7顯示相關矩陣
1.4.8繪製相關性圖
1.4.9簡單的移動平均線
1.4.10指數移動平均
1.5總結
第二部分金融概念
第2章金融中的線性問題
2.1資本資產定價模型與證券市場線
2.2套利定價理論模型
2.3因子模型的多元線性回歸
2.4線性優化
2.4.1安裝Pulp
2.4.2一個用線性規劃求大值的實例
2.4.3線性規劃的結果
2.4.4整數規劃
2.5使用矩陣解線性方程組
2.6 LU分解
2.7 Cholesky分解
2.8 QR分解
2.9使用其他矩陣代數方法求解
2.9.1 Jacobi迭代法
2.9.2 Gauss-Seidel迭代法
2.10總結
第3章金融中的非線性問題
3.1非線性建模
3.2非線性模型求根算法
3.2.1增量法
3.2.2二分法
3.2.3牛頓迭代法
3.2.4割線法
3.2.5求根法的結合使用
3.3利用SciPy求根
3.3.1求根標量函數
3.3.2通用非線性求解器
3.4總結
第4章期權定價的數值方法
4.1什麼是期權
4.2二樹期權定價模型
4.3歐式期權定價
4.4編寫StockOption基類
4.4.1利用二樹模型給歐式期權定價
4.4.2利用二樹模型給美式期權定價
4.4.3 Cox-Ross-Rubinstein模型
4.4.4 Leisen-Reimer模型
4.5希臘值
4.6三樹期權定價模型
4.7期權定價中的Lattice方法
4.7.1二樹網格
4.7.2 CRR二樹Lattice方法期權定價模型
4.7.3三樹網格
4.8期權定價中的有限差分法
4.8.1顯式方法
4.8.2編寫FiniteDifferences類
4.8.3隱式方法
4.8.4 Crank-Nicolson方法
4.8.5奇異障礙期權定價
4.8.6美式期權定價的有限差分方法
4.9隱含波動率模型
4.10總結
第5章利率及其衍生工具的建模
5.1固定收益證券
5.2收益率曲線
5.3無息債券
5.4自助法構建收益率曲線
5.4.1自助法構建收益率曲線的實例
5.4.2編寫BootstrapYieldCurve類
5.5遠期利率
5.6計算到期收益率
5.7計算債券定價
5.8債券久期
5.9債券凸度
5.10短期利率模型
5.10.1 Vasicek模型
5.10.2 Cox-Ingersoll-Ross模型
5.10.3 Rendleman and Bartter模型
5.10.4 Brennan and Schwartz模型
5.11債券期權
5.11.1可贖回債券
5.11.2可回售債券
5.11.3可轉換債券
5.11.4優先股
5.12可贖回債券期權定價
5.12.1用Vasicek模型定價無息債券
5.12.2提前行權定價
5.12.3有限差分策略迭代法
5.12.4可贖回債券定價的其他影響因素
5.13總結
第6章時間序列數據的統計分析
6.1道瓊斯工業平均指數及其30種成分
6.1.1從Quandl上下載Dow成分數據集
6.1.2關於Alpha Vantage
6.1.3獲取Alpha Vantage API密鑰
6.1.4安裝Alpha Vantage的Python包
6.1.5從Alpha Vantage下載DJIA數據集
6.2 PCA分析
6.2.1特徵向量和特徵值的求法
6.2.2用PCA重新構建道瓊斯指數
6.3平穩和非平穩時間序列
6.3.1平穩性與非平穩性
6.3.2平穩性檢查
6.3.3非平穩過程的類型
6.3.4平穩過程的類型擴展Dickey-Fuller檢驗
6.5用趨勢分析時間序列
6.6如何使時間序列平穩
6.6.1去趨勢
6.6.2差分
6.6.3按季節分解
- ADF檢驗的缺陷
6.7預測和預報時間序列
6.7.1自回歸積分移動平均法
6.7.2用網格搜索求取模型參數
6.7.3 SARIMAX模型的擬合
6.7.4 SARIMAX模型的預測和預報
6.8總結
第三部分實踐操作
第7章對VIX的交互式金融分析
7.1波動率指數衍生品
7.1.1 STOXX與歐洲期貨交易所
7.1.2 EURO STOXX 50指數
7.1.3 VSTOXX
7.1.4 S&P 500指數
7.1.5 SPX期權
7.1.6 VIX指數
7.2 S&P 500指數和VIX指數的金融分析
7.2.1獲取數據
7.2.2執行分析
7.2.3 SPX與VIX的相關性
7.3計算VIX指數
7.3.1導入SPX期權數據
7.3.2查找近期期權和遠期期權
7.3.3計算所需的分鐘數
7.3.4計算遠期SPX指數水平
7.3.5尋找所需的遠期行權價格
7.3.6確定行權價格限
7.3.7按行權價格將貢獻列表
7.3.8計算波動率
7.3.9計算遠期期權波動率
7.3.10計算VIX指數
7.3.11計算多個VIX指數
7.3.12比較結果
7.4總結
第8章構建算法交易平台
8.1什麼是算法交易
8.1.1具有公共API的交易平台
8.1.2選擇一種編程語言
8.1.3系統功能
8.2建立算法交易平台
8.2.1設計代理接口
8.2.2需要的Python庫
8.2.3編寫事件驅動代理類
8.2.4存儲價格事件處理程序
8.2.5存儲訂單事件處理程序
8.2.6存儲倉位事件處理程序
8.2.7聲明一個獲取價格的抽象函數
8.2.8聲明流式價格的抽象函數
8.2.9聲明發送訂單的抽象函數
8.2.10實現代理類
8.3建立均值回歸算法交易系統
8.3.1設計均值回歸算法
8.3.2實現均值回歸交易類
8.3.3添加事件監聽器
8.3.4編寫均值回歸信號生成器
8.3.5運行交易系統
8.4建立趨勢跟踪交易平台
8.4.1趨勢跟踪算法的設計
8.4.2編寫趨勢跟踪交易類
8.4.3編寫趨勢跟踪信號發生器
8.4.4運行趨勢跟踪交易系統
8.5用VaR技術實現風險管理
8.6總結
第9章回溯測試系統的實現
9.1回溯測試概述
9.1.1回溯測試的缺陷驅動回溯測試系統
9.2設計並實施回溯測試系統
9.2.1 TickData類
9.2.2 MarketData類
9.2.3 MarketDataSource類
9.2.4 Order類
9.2.5 ition類
9.2.6 Strategy類
9.2.7 MeanRevertingStrategy類
9.2.8 BacktestEngine類
9.2.9運行回溯測試系統
9.2.10多策略運行回溯測試系統
9.2.11改進回溯測試系統
9.3回溯測試模型的10個注意事項
9.3.1模型的資源
9.3.2模型評價標準
9.3.3估計回溯測試參數的質量
9.3.4應對模型風險
9.3.5樣本數據回測的性能
9.3.6解決回溯測試的常見缺陷
9.3.7常識錯誤
9.3.8理解模型環境
9.3.9數據準確性
9.3.10數據挖掘
9.4回溯測試中的算法選擇
9.4.1 k-均值聚類算法
9.4.2 KNN機器學習算法
9.4.3分類回歸樹分析
9.4.4 2k析因設計
9.4.5遺傳算法
9.5總結
第10章金融中的機器學習
10.1機器學習簡介
10.1.1機器學習在金融中的應用
10.1.2監督學習和無監督學習
10.1.3監督機器學習中的分類與回歸
10.1.4過擬合和欠擬合模型
10.1.5特徵工程
10.1.6機器學scikit-learn庫
10.2用單資產回歸模型預測價格
10.2.1 OLS線性回歸
10.2.2準備自變量和因變量
10.2.3編寫線性回歸模型
10.2.4測量預測性能的風險度量
10.2.5嶺回歸
10.2.6其他回歸模型
10.2.7結論
10.3用跨資產動量模型預測收益
10.3.1準備自變量
10.3.2準備因變量
10.3.3多資產線性回歸模型
10.3.4決策樹的集成
10.4基於分類的機器學習預測趨勢
10.4.1準備因變量
10.4.2準備多資產數據集作為輸入變量
10.4.3邏輯回歸
10.4.4基於分類預測的風險度量
10.4.5支持向量分類器
10.4.6其他類型的分類器
10.5機器學習算法的應用結論
10.6總結
第11章金融中的深度學習
11.1淺談深度學習
11.1.1什麼是深度學習
11.1.2人工神經元
11.1.3激活函數
11.1.4損失函數
11.1. 5優化器
11.1.6網絡結構
11.1.7 TensorFlow和其他深度學習框架
11.1.8什麼是張量
11.2基於TensorFlow的深度學習價格預測模型
11.2.1特徵化模型
11.2.2需要的庫
11.2.3下載數據集
11.2.4縮放和拆分數據
11.2.5基於TensorFlow構建人工神經網絡
11.2.6繪製預測值和實際值
11.3基於Keras的信用卡支付違約預測
11.3.1 Keras簡介
11.3.2安裝Keras
11.3.3獲取數據集
11.3.4縮放和拆分數據
11.3.5基於Keras的深度神經網絡設計
11.3.6度量模型的性能
11.3.7顯示Keras歷史記錄中的事件
11.4總結
作者介紹
馬偉明(James Ma Weiming)
畢業於伊利諾理工大學斯圖爾特商學院,獲得金融學碩士學位。
他編寫了大量高頻、低延時的開放源代碼程序和工具。
在獲得新加坡南洋理工大學計算機工程學士學位和南洋理工學院信息技術專業畢業證書後,
James開始在新加坡工作。
他從事過外彙和固定收益產品交易,還為一家基金銷售平台開發移動應用程序。