金融科技實戰:Python與量化投資 | 被動收入的投資秘訣 - 2024年9月
![](https://www.books.com.tw/img/001/077/46/0010774605.jpg)
金融科技實戰:Python與量化投資
‧詳細介紹隨機變數、描述性統計、變異數分析、推論統計、迴歸分析等統計學基礎。
‧說明資產投資組合理論、收益率及風險、資本資產定價模型、三因子模型等金融理論。
‧認識時間序列的基本概念、性質和預測、GARCH模型、配對交易策略。
‧解說投資相關的K線圖、RSI相對強弱指標、動量交易策略、均線系統策略。
量化投資在學術界及業界的發展日益蓬勃。它的涵義是在投資的各個階段中,利用數學、統計、電腦等分析工具來建立模型,並據以客觀地分析數據,按事先設定好的投資邏輯來進行投資決策,不同於以往的主觀交易。本書旨在對量化投資作廣泛與初步的介紹,並佐以Python語言實作,希冀讀者能藉此書對資訊科技與金融結合應用,略窺一斑。
量化投資的模型很容易因建模者的能力不同而良莠不齊。既然主觀交易有諸多限制,量化交易看來又並非萬能,那麼,對投資績效念茲在茲的投資者,究竟該何去何從呢?我們要提醒讀者的是,程式語言、統計、金融、技術指標等量化投資常用的知識,只是工具!惟有利用本書勤練技能,在實戰中累積經驗,才能審時度勢,百戰不殆。
作者簡介
蔡立耑(Terry Tsai)
出生於台灣,美國伊利諾伊大學金融碩士,華盛頓大學經濟學博士。曾任金融學教師,帶領博士生與碩士生從事投資決策、金融衍生品、風險分析、交易策略等領域的研究,目前在許多企業擔任顧問,執導多項金融大數據研究專案,涉及量化投資、統計套利、金融AI等領域。
Part 1 Python 入門
第1章 Python簡介與安裝使用
1.1 Python 概述
1.2 安裝 Python
1.2.1 下載安裝 Python 執行文件
1.2.2 下載安裝 Anaconda
1.3 簡單使用 Python
1.4 交互對話環境 IPython
1.4.1 IPython 的安裝
1.4.2 IPython 使用
1.4.3 IPython 功能介紹
第2章 Python程式碼的撰寫與執行
2.1建立 Python 腳本文件
2.1.1 記事本
2.1.2 Python 預設的 IDLE 環境
2.1.3 專門程式編輯器
2.2 執行.py 文件
2.2.1 IDLE 環境自動執行
2.2.2 命令控制元 cmd 中執行
2.2.3 Annaconda Prompt 中執行
2.3 Python 程式設計小技巧
2.3.1 Python 的行
2.3.2 Python 縮排
第3章 Python物件類型初探
3.1 Python 物件
3.2 變數命名規則
3.3 可變與不可變
3.4 數值類型
3.4.1 整數(型)
3.4.2 浮點數
3.4.3 布林類型
3.4.4 複數
3.5 字串
3.6 串列
3.7 元組
3.8 字典
3.9 集合
第4章 Python 整合開發環境:Spyder介紹
4.1 程式碼編輯器
4.2 程式碼執行Console
4.3 變數查詢與編輯
4.4 當前工作路徑與文件管理
4.5 幫助文件與線上說明
4.6 其他功能
第5章 Python運算子與使用
5.1 常用運算子
5.1.1 算術運算子
5.1.1 賦值運算子
5.1.3 比較運算子
5.1.4 邏輯運算子
5.1.5 身份運算子
5.1.6 成員運算子
5.1.7 運算子的優先級
5.2 具有運算功能的內置函數
第6章 Python常用語句
6.1 賦值語句
6.1.1 賦值涵義與簡單賦值
6.1.2 多重賦值
6.1.3 多元賦值
6.1.4 增強賦值
6.2 條件語句
6.3 迴圈
6.3.1 for 迴圈
6.3.2 while 迴圈
6.3.3 巢式寫法迴圈
6.3.4 break、continue 等語句
第7章 Python函數
7.1 函數的定義與呼叫
7.2 函數的參數
7.2.1 可選參數 – 參數個數未定
7.3 匿名函數
7.4 作用域
第8章 Python物件導向程式設計
8.1 引言
8.2 類別
8.3 封裝
8.4 繼承(Inheritance)
第9章 可疊代物件與疊代器
9.1 簡介
9.2 產生器
第10章 Python標準函數庫與數據操作
10.1 模組、套件和函數庫的區別
10.1.1 模組
10.1.2 套件
10.1.3 函數庫
10.2 Python 標準函數庫介紹
10.3 Python 內置數據型態與操作
10.3.1 序列型態數據操作
10.3.2 字典型態操作
10.3.3 集合操作
第11章 常用第三方函數庫:Numpy函數庫與多維陣列
11.1 建立陣列
11.2 陣列元素索引與切片
11.3 陣列運算
第12章 常用第三方函數庫:Pandas與數據處理
12.1 Series 型態數據
12.1.1 Series 物件的建立
12.1.2 Series 物件的元素提取與切片
12.1.3 時間序列
12.2 DataFrame 型態數據
12.2.1 建立DataFrame 物件
12.2.2 查詢DataFrame 物件
12.2.3 DataFrame 物件的索引與切片
12.2.4 DataFrame 的操作
12.2.5 DataFrame 的運算
12.3 數據規整化
12.3.1 缺失值的處理
12.3.2 缺失值的填滿
12.3.3 缺失值的選擇刪除
12.3.4 刪除重複數據
第13章 常用第三方函數庫:Matplotlib函數庫與數據視覺化
13.1 Matplotlib 簡介
13.1.1 繪圖小例子
13.2 修改圖像屬性
13.2.1 座標
13.2.1.2 設定座標標籤與顯示角度
13.2.2 添加文字
13.2.2.1 添加標題
13.2.2.2 中文顯示問題
13.2.2.3 設定座標軸標籤
13.2.2.4 增加圖形背景
13.2.2.5 增加圖例
13.2.3 多種線條屬性
13.2.3.1 線條的型態
13.2.3.2 圖形的顏色
13.2.3.3 點的形狀型態
13.2.3.4 線條寬度
13.3 常見圖形的繪製
13.3.1 柱狀圖
13.3.2 直方圖
13.3.3 圓餅圖
13.3.4 盒鬚圖
13.4 Figure、ax 物件與多圖繪製
13.4.1 Figure、Axes 物件
13.4.2 多圖繪製
Part 2 統計學基礎
第14章 描述性統計
14.1 數據類型
14.2 圖表
14.2.1 頻數分佈表
14.2.2 直方圖
14.3 數據的位置
14.4 數據的離散度
第15章 隨機變數簡介
15.1 概率與概率分佈
15.1.1 離散型隨機變數
15.1.2 連續型隨機變數
15.2 期望值與變異數
15.3 二項分佈
15.4 常態分佈
15.5 其他連續分佈
15.5.1 卡方分佈
15.5.2 t 分佈
15.5.3 F 分佈
15.6 變數的關係
15.6.1 聯合概率分佈
15.6.2 變數的獨立性
15.6.3 變數的相關性
15.6.4 台灣加權股價指數與台灣50指數的相關性分析
第十六章 推論統計
16.1 參數估計
16.1.1 點估計
16.1.2 區間估計
16.2 案例分析
16.3 假設檢定
16.3.1 兩類錯誤
16.3.2 顯著性水平與 p 值
16.3.3 確定小概率事件
16.4 t 檢定
16.4.1 單樣本 t 檢定
16.4.2 獨立樣本t 檢定
16.4.3 配對樣本 t 統計量的構造
第十七章 變異數分析
17.1 變異數分析之思想
17.2 變異數分析之原理
17.2.1 離差平方和
17.2.2 自由度
17.2.3 顯著性檢定
17.3 變異數分析之Python 實作
17.3.1 單因素變異數分析
17.3.2 多因素變異數分析
17.3.3 析因變異數分析
第十八章 迴歸分析
18.1一元線性迴歸模型
18.1.1 一元線性迴歸模型
18.1.2 最小平方法
18.2 模型擬合度
18.3 古典假設條件下ˆα、ˆβ之統計性質
18.4 顯著性檢定
18.5 台灣加權指數與台灣 50 指數的迴歸分析與 Python 實踐
18.5.1 Python 估計迴歸模型
18.5.2 繪製迴歸診斷圖
18.6 多元線性迴歸模型
18.6.1 多元線性迴歸模型
18.7 多元線性迴歸案例分析
Part 3 金融理論、投資組合與量化選股
第19章 資產收益率和風險
19.1 單期與多期簡單收益率
19.1.1 單期簡單收益率
19.1.2 多期簡單收益率
19.1.3 Python 函數計算簡單收益率
19.1.4 單期與多期簡單收益率的關係
19.1.5 年化收益率
19.1.6 考慮股利分紅的簡單收益率
19.2 連續複利收益率
19.2.1 多期連續複利收益率
19.2.2 單期與多期連續複利收益率的關係
19.3 繪製收益圖
19.4 資產風險的來源
19.4.1 市場風險
19.4.2 利率風險
19.4.3 匯率風險
19.4.4 流動性風險
19.4.5 信用風險
19.4.6 通貨膨脹風險
19.4.7 營運風險
19.5 資產風險的測度
19.5.1 變異數
19.5.2 風險價值
19.5.3 預期損失
19.5.4 最大虧損
第20章 投資組合理論及其應用
20.1投資組合的收益率與風險
20.2 Markowitz 均值 - 變異數模型
20.3 Markowitz 模型之 Python 實作
20.3.1 資料讀取與整理
20.4 Black-Litterman 模型
20.4.1 Black-Litterman 模型之 Python 實作
第21章 資本資產定價模型(CAPM)
21.1 資本資產定價模型的核心思想
21.2 CAPM 模型的應用
21.3 Python 計算單資產 CAPM 實例
21.4 CAPM 模型的評價
第22章 Fama-French三因子模型
22.1 Fama-French 三因子模型的基本思想
22.2 三因子模型之 Python 實作
22.3 三因子模型的評價
Part 4 時間序列簡介與配對交易
第23章 時間序列基本概念
23.1 認識時間序列
23.2 Python 中的時間序列資料
23.3 選取特定日期的時間序列資料
23.4 時間序列資料敘述性統計
第24章 時間序列的基本性質
24.1 自相關性
24.1.1 自相關係數
24.1.2 偏自相關係數
24.1.3 acf( ) 函數與pacf( ) 函數
24.1.4 加權股價指數的收益率的自相關性判斷
24.2 定態性
24.2.1 嚴格定態
24.2.2 弱定態
24.2.3 嚴格定態與弱定態的區別
24.3 加權股價指數的定態性檢定
24.3.1 觀察時間序列圖
24.3.2 觀察序列的自相關圖和偏自相關圖
24.3.3 單根檢定
24.4 白雜訊
24.4.1 白雜訊過程
24.4.2 白雜訊檢定——Ljung-Box 檢定
24.4.3 加權股價指數的白雜訊檢定
第25章 時間序列預測
25.1 移動平均預測
25.1.1 簡單移動平均
25.1.2 加權移動平均
25.1.3 指數加權移動平均
25.2 ARMA 模型預測
25.2.1 自我迴歸模型
25.2.2 移動平均模型
25.3 ARMA 模型
25.4 ARMA 模型的建模過程
25.5 CPI 資料的ARMA 短期預測
25.6 股票收益率的定態時間序列建模
第26章 GARCH 模型
26.1 資產收益率的波動率與 ARCH 效應
26.2 ARCH 模型和 GARCH 模型
26.2.1 ARCH 模型
26.2.2 GARCH 模型
26.3 ARCH 效應檢定
26.4 GARCH 模型建構
第27章 配對交易策略
27.1 什麼是配對交易?
27.2 配對交易的思想
27.3 配對交易的步驟
27.3.1 股票對的選取
27.3.2 配對交易策略的制定
27.4 建構 PairTrading 類
27.5 Python 實測配對交易交易策略
Part 5 技術指標與量化投資
第28章 K線圖
28.1 K 線圖簡介
28.2 Python繪製加權股價指數K線圖
28.3 Python 捕捉 K 線圖的形態
28.3.1 Python 捕捉「早晨之星」
28.3.2 Python 語言捕捉「烏雲蓋頂」形態
第29章 動量交易策略
29.1 動量概念介紹
29.2 動量效應產生原因
29.3 價格動量的計算公式
29.3.1 作差法求動量值
29.3.2 作除法求動量值
29.4 撰寫動量函數 momentum( )
29.5 鴻海股票 2016 年走勢及 35 日動量線
29.6 動量交易策略的一般思路
29.6.1 運用動量指標交易鴻海股票
第30章 RSI相對強弱指標
30.1 RSI 基本概念
30.2 Python 計算 RSI 值
30.3 Python 撰寫 rsi( ) 函數
30.4 RSI 天數的差異
30.5 RSI 指標判斷股票超買和超賣狀態
30.6 RSI 的「黃金交叉」與「死亡交叉」
30.7 統一股票RSI 指標交易實測
30.7.1 RSI 捕捉統一股票買賣點
30.7.2 RSI 交易策略執行及回測
第31章 均線系統策略
31.1 簡單移動平均
31.1.1 簡單移動平均數
31.1.2 簡單移動平均函數
31.1.3 期數選擇
31.2 加權移動平均
31.2.1 加權移動平均數
31.2.2 加權移動平均函數
31.3 指數加權移動平均
31.3.1 指數加權移動平均數
31.3.2 指數加權移動平均函數
31.4 建立 movingAverage 模組
31.5 常用平均方法的比較
31.6 台積電股價數據與均線分析
31.7 均線時間跨度
31.8 台積電股票均線系統交易
31.8.1 簡單移動平均線制定台積電股票的買賣點
31.8.2 雙均線交叉捕捉台積電股票的買賣點
31.9 異同移動平均線(MACD)
31.9.1 MACD 的求值過程
31.9.2 異同均線(MACD)捕捉台積電股票的買賣點
31.10 多種均線指標綜合運用模擬實測
第32章 通道突破策略
32.1 通道突破簡介
32.2 唐奇安通道
32.2.1 唐奇安通道刻畫
32.2.2 Python 捕捉唐奇安通道突破
32.3 布林帶通道
32.3.1 布林帶通道的計算方式
32.4 布林帶通道與市場風險
32.5 通道突破交易策略的制定
32.5.1 一般布林帶上下通道突破策略
32.5.2 另一種布林帶通道突破策略
第33章 隨機指標交易策略
33.1 什麼是隨機指標(KDJ)?
33.2 隨機指標的原理
33.3 KDJ 指標的計算公式
33.3.1 未成熟隨機指標RSV
33.3.2 K、D 指標計算
33.3.3 J 指標計算
33.3.4 KDJ 指標簡要解析
33.4 KDJ 指標的交易策略
33.5 KDJ 指標交易實測
33.5.1 KD 指標交易策略
33.5.2 KDJ 指標交易策略
33.5.3 K 線、D 線「金叉」與「死叉」
第34章 量價關係解析
34.1 量價關係簡介
34.2 量價關係解析
34.2.1 價漲量增
34.2.2 價漲量平
34.2.3 價漲量縮
34.2.4 價平量增
34.2.5 價平量縮
34.2.6 價跌量增
34.2.7 價跌量平
34.2.8 價跌量縮
34.3 不同價格段位的成交量
34.4 成交量與均線思想結合制定交易策略
第35章 OBV指標交易策略
35.1 OBV 指標概念
35.2 OBV 指標計算方法
35.3 OBV 指標的理論依據
35.4 OBV 指標的交易策略制定
35.5 OBV 指標交易策略的 Python 實測
35.6 OBV 指標的應用原則