Python股票量化交易從入門到實踐(異步圖書出品)
定 價:89 元
- 作者:袁霄 著
- 出版時間:2020/7/1
- ISBN:9787115536075
- 出 版 社:人民郵電出版社
- 中圖法分類:F830.91-39
- 頁碼:342
- 紙張:膠版紙
- 版次:1
- 開本:16開
量化交易是一種新興的系統(tǒng)化的金融投資方法,它是以計算機強大的運算能力為基礎,運用數(shù)據(jù)建模、統(tǒng)計學分析、程序設計等工具從歷史數(shù)據(jù)中得到良好的交易策略,是計算機科學在金融領域的具體應用。Python語言憑借其簡潔、高效的特性,以及其在大數(shù)據(jù)分析方面的強大性能,在量化交易領域得到了良好的應用。
本書以 A 股市場為交易標的物,引導讀者從理解量化交易開始,逐步掌握行情數(shù)據(jù)的獲取和管理、技術指標的可視化,并在熟練編程的基礎上,構建出個性化的交易策略體系。
本書適合對股票的量化交易感興趣的讀者閱讀,通過閱讀本書,讀者不僅能夠了解 Python 數(shù)據(jù)分析和數(shù)據(jù)可視化的核心技能,更能夠將 Python 作為常用工具,為股票技術指標分析和量化交易提供助力。
1.厘清概念,夯實技能
深入淺出揭示量化交易的本質和源起,手把手教你部署Python環(huán)境,跟隨代碼示例掌握基本的編程語法和模塊調用。
2.立足A股,貼近實戰(zhàn)
選擇A股市場作為標的,囊括多渠道數(shù)據(jù)獲取、技術指標的回測分析與可視化等,在邊學邊練中摸索股票量化技巧。
3.步驟詳細,模型與代碼并重
統(tǒng)計概率理論快速入門,ATR技術指標、蒙特卡洛法、凱利公式等經(jīng)典策略與Python編碼的完美融合。
4.大咖推薦,品質保證
暢銷書《基于Python的金融分析與風險防控》作者斯文博士作序推薦,《快樂機器學習》作者王圣元傾情推薦。
袁霄,資深Python數(shù)據(jù)分析師兼高級項目管理師,精通C/C++/Python語言、Web前后端技術、人工智能算法、大數(shù)據(jù)分析、證券分析等多領域知識,致力于推動金融量化交易的普及和發(fā)展。作為CSDN、掘金小冊、慕課網(wǎng)等平臺的優(yōu)秀作者,已發(fā)布多個股票量化交易相關的課程,日常運營微信公眾號“元宵大師帶你用Python量化交易”。
第 1章 理解Python股票量化交易 1
1.1 多角度分析量化交易 1
1.1.1 量化交易的本質 2
1.1.2 量化交易的發(fā)展 4
1.1.3 量化交易的優(yōu)勢 7
1.1.4 量化交易的過程 8
1.2 多角度分析股票價格 9
1.2.1 從股票的起源看本質 9
1.2.2 如何衡量股票溢價 11
1.2.3 股票收益的組成 12
1.2.4 股價波動的原因 13
1.3 為什么選擇Python語言 14
1.3.1 概述編程語言的發(fā)展 14
1.3.2 面向過程和面向對象 15
1.3.3 Python的起源及優(yōu)勢 16
1.4 本章總結 17
第 2章 量化語言Python的關鍵應用 18
2.1 快速部署Python開發(fā)環(huán)境 18
2.1.1 Python環(huán)境安裝 18
2.1.2 第三方庫安裝 21
2.1.3 開發(fā)工具安裝 22
2.2 開啟Python的第 一個程序 26
2.2.1 如何建立標準py文件 26
2.2.2 區(qū)分模塊、包、庫 28
2.2.3 import發(fā)揮擴展優(yōu)勢 29
2.2.4 調試助手print( )函數(shù) 30
2.3 何為Python動態(tài)類型特性 31
2.3.1 變量的種類 31
2.3.2 動態(tài)類型的特性 35
2.3.3 內存管理與回收 38
2.3.4 深入探究PyObject 39
2.4 如何正確地創(chuàng)建函數(shù) 41
2.4.1 用def關鍵字定義函數(shù) 41
2.4.2 參數(shù)傳遞的形式 41
2.4.3 匿名函數(shù)lambda 44
2.5 初識Python面向對象 45
2.5.1 父類、子類和實例 46
2.5.2 元類和類及object和type 47
2.5.3 經(jīng)典類和新式類的區(qū)別 49
2.6 如何用面向對象思維編程 49
2.6.1 如何正確地構建類 50
2.6.2 類的實例化全過程 51
2.6.3 如何引用類的屬性 52
2.6.4 如何引用類的方法 54
2.6.5 類的繼承機制應用 55
2.6.6 類的組合機制應用 57
2.7 深入理解for-in循環(huán) 57
2.7.1 for-in循環(huán)的原理 57
2.7.2 for-in循環(huán)的使用技巧 59
2.7.3 生成器的原理和作用 62
2.8 巧用裝飾器測試代碼效率 63
2.9 多進程和多線程的提速方案 67
2.9.1 多進程和多線程 68
2.9.2 Python的GIL原理 68
2.9.3 多任務的解決方案 69
2.10 未雨綢繆的異常處理機制 72
2.10.1 分析try-except常規(guī)機制 72
2.10.2 擴展try-except使用技巧 74
2.11 本章總結 75
第3章 第三方庫NumPy快速入門 76
3.1 初識N維數(shù)組對象 76
3.2 N維數(shù)組對象的特性 78
3.2.1 矢量運算的特性 78
3.2.2 廣播運算的特性 79
3.2.3 用條件表達式選取元素 82
3.3 高效處理性能的對比 83
3.4 用常用數(shù)組處理函數(shù) 84
3.4.1 創(chuàng)建數(shù)組的函數(shù) 85
3.4.2 元素級處理函數(shù) 87
3.4.3 線性代數(shù)相關函數(shù) 88
3.5 本章總結 91
第4章 第三方庫Pandas快速入門 92
4.1 Series和DataFrame概覽 93
4.2 Series的生成和訪問 93
4.2.1 Series的生成方法 94
4.2.2 Series的訪問方法 96
4.3 DataFrame的生成和訪問 97
4.3.1 DataFrame的生成方法 97
4.3.2 DataFrame的索引訪問 99
4.3.3 DataFrame的元素訪問 100
4.3.4 元素標簽和位置的轉換 103
4.3.5 用條件表達式訪問元素 105
4.4 時間序列的生成和轉換 106
4.4.1 用datetime生成時間序列 106
4.4.2 用Pandas生成時間序列 109
4.4.3 時間序列的降采樣 112
4.4.4 時間序列的升采樣 114
4.5 DataFrame的規(guī)整化處理 117
4.5.1 模擬生成股票行情數(shù)據(jù) 117
4.5.2 DataFrame概覽 120
4.5.3 DataFrame的可視化 122
4.5.4 DataFrame缺失值處理 123
4.5.5 DataFrame精度的轉換 125
4.5.6 DataFrame合并處理 125
4.6 DataFrame的高效遍歷 128
4.6.1 循環(huán)遍歷的幾種方式 129
4.6.2 循環(huán)遍歷的性能對比 130
4.7 DataFrame的存儲和加載 131
4.7.1 將DataFrame存儲至CSV 132
4.7.2 將CSV加載為DataFrame 134
4.8 本章總結 135
第5章 第三方庫Matplotlib快速入門 136
5.1 兩種繪圖方式的區(qū)分 136
5.1.1 函數(shù)式繪圖 137
5.1.2 對象式繪圖 141
5.2 常用圖表類型的繪制 143
5.2.1 折線圖的繪制 143
5.2.2 標注點的繪制 144
5.2.3 參考線/區(qū)域的繪制 147
5.2.4 雙y軸圖表的繪制 148
5.2.5 條形圖的繪制 149
5.2.6 直方圖的繪制 151
5.2.7 K線圖的繪制 152
5.3 圖形對象屬性參數(shù)的調節(jié) 155
5.4 多子圖對象的創(chuàng)建和布局 158
5.4.1 創(chuàng)建多子圖對象的方法 158
5.4.2 布局多子圖對象的方法 161
5.5 注意事項 163
5.5.1 tight_layout( )出錯問題 163
5.5.2 中文顯示亂碼問題 164
5.6 本章總結 164
第6章 統(tǒng)計概率理論快速入門 165
6.1 統(tǒng)計概率的基礎知識 165
6.1.1 隨機事件與概率的關系 165
6.1.2 離散和連續(xù)隨機變量 166
6.1.3 典型的隨機變量分布 168
6.2 深入理解伯努利分布 170
6.2.1 伯努利分布的隨機數(shù) 170
6.2.2 伯努利分布的概率 170
6.2.3 伯努利分布的市場模型 172
6.3 深入理解正態(tài)分布 179
6.3.1 正態(tài)分布的隨機數(shù) 179
6.3.2 生成概率密度函數(shù) 181
6.3.3 正態(tài)分布與隨機漫步 183
6.4 本章總結 188
第7章 股票行情數(shù)據(jù)的獲取和管理 189
7.1 如何獲取股票行情數(shù)據(jù) 189
7.1.1 用Panads獲取股票數(shù)據(jù) 190
7.1.2 用Tushare獲取股票數(shù)據(jù) 192
7.1.3 用Baostock獲取股票數(shù)據(jù) 196
7.2 規(guī)整化處理股票數(shù)據(jù)格式 199
7.2.1 行索引時間格式規(guī)整化 200
7.2.2 列索引名稱格式規(guī)整化 202
7.3 定制股票行情數(shù)據(jù)獲取接口 203
7.4 注冊JSON格式自選股票池 204
7.4.1 將股票池另存為JSON文件 205
7.4.2 加載JSON文件以獲取股票池 209
7.5 用多任務為股票數(shù)據(jù)的獲取提速 209
7.6 用數(shù)據(jù)庫管理本地行情數(shù)據(jù) 212
7.6.1 Python操作SQLite的API 212
7.6.2 Pandas操作SQLite的API 216
7.6.3 建立SQLite股票行情數(shù)據(jù)庫 217
7.6.4 基于SQLite股票行情數(shù)據(jù)分析 219
7.7 本章總結 221
第8章 股票技術指標的可視化分析 222
8.1 定制可視化接口 222
8.1.1 可視化代碼結構分析 224
8.1.2 可視化接口框架實現(xiàn) 225
8.1.3 可視化圖表類型實現(xiàn) 228
8.1.4 可視化接口使用說明 229
8.2 基礎技術指標的可視化 231
8.2.1 原生量價指標可視化 232
8.2.2 移動平均線SMA可視化 235
8.2.3 震蕩類指標KDJ可視化 237
8.2.4 趨勢類指標MACD可視化 239
8.3 衍生技術指標的可視化 242
8.3.1 均線交叉信號可視化 243
8.3.2 股價跳空缺口可視化 246
8.3.3 量價指標周期重采樣 251
8.3.4 黃金分割與支撐/阻力線 256
8.4 使用TA-Lib庫計算技術指標 261
8.4.1 常用技術指標的計算方法 261
8.4.2 常見K線形態(tài)的識別方法 265
8.4.3 TA-Lib庫的計算速率優(yōu)勢 268
8.5 自定義顯示界面框架開發(fā) 268
8.5.1 行情界面需求分析 269
8.5.2 行情界面框架實現(xiàn) 269
8.5.3 如何顯示行情界面 272
8.6 本章總結 275
第9章 構建股票量化交易策略體系 276
9.1 建立多維度的度量體系 276
9.1.1 交易盈虧區(qū)間可視化 277
9.1.2 交易概覽信息的統(tǒng)計 281
9.1.3 度量策略資金的絕對收益 283
9.1.4 度量策略與基準的相對收益 286
9.1.5 度量策略的最大風險回撤 288
9.1.6 回測界面的自定義設計 293
9.2 經(jīng)典擇時策略進階之股票量化 交易 304
9.2.1 唐奇安通道突破策略的思想 305
9.2.2 唐奇安通道突破策略的實現(xiàn) 306
9.2.3 唐奇安通道突破策略的回測 310
9.3 融入ATR跟蹤止盈/止損策略 311
9.3.1 ATR技術指標的實現(xiàn) 312
9.3.2 止盈/止損策略的實現(xiàn) 313
9.3.3 ATR止盈/止損策略回測 315
9.4 蒙特卡洛法最優(yōu)化策略參數(shù) 316
9.4.1 枚舉法與蒙特卡洛法的區(qū)別 317
9.4.2 蒙特卡洛參數(shù)最優(yōu)化的實現(xiàn) 322
9.5 基于凱利公式量化倉位管理 324
9.5.1 凱利公式的原理分析 324
9.5.2 凱利公式的效果展示 326
9.5.3 凱利公式在股票中的應用 327
9.6 用經(jīng)典選股策略完善股票量化體系 329
9.6.1 線性回歸的原理和實現(xiàn) 329
9.6.2 用走勢線性回歸建立選股模型 332
9.6.3 走勢線性回歸的衍生分析法 335
9.7 謹防回測階段的陷阱 338
9.7.1 避免使用未來函數(shù) 338
9.7.2 設置滑點以避免偷價 339
9.7.3 避免無手續(xù)費的策略 340
9.7.4 避免參數(shù)的過度優(yōu)化 341
9.8 本章總結 342