《基於股票大數據分析的Python入門實戰》是清華大學出版社2020年出版的圖書,作者是胡書敏。
基本介紹
- 書名:基於股票大數據分析的Python入門實戰
- 作者:胡書敏
- 出版社:清華大學出版社
- 出版時間:2020年
內容簡介,作品目錄,
內容簡介
本書針對Python零基礎的用戶,主要講解大量的股票指標技術分析的範例,由淺入深地介紹了使用Python語言編程開發的套用“圖譜”。
全書分為三篇:基礎篇(第1~4章):講述Python開發環境的搭建、基本語法、數據結構、代碼的調試以及面向對象的編程思想;股票指標技術分析篇(第5~10章):分別講述使用網路爬蟲技術獲取股票數據,使用Matplotlib可視化組件,基於NumPy和Pandas庫進行大數據分析,以股票的不同指標分析為範例的開發方法—MACD+Python資料庫編程,KDJ+Python圖形用戶界面編程,RSI+Python郵件編程;基於股票指標的交易策略之高級套用篇(第11~13章):以股票的BIAS指標分析為範例講述Django框架,以股票的OBV指標分析為範例講述在Django中導入日誌和資料庫組件,結合股票指標分析講述基於線性回歸和SVM(支持向量機)的機器學習的入門知識。
本書以結合股票交易大數據分析範例為主線來教學Python編程開發的入門教材。適合計算機、數學或金融等相關專業的師生作為課程設計和畢業設計輔導的教學參考用書,針對基於機器學習預測股票價格的範例程式也可單獨作為參考用例。
作品目錄
第1章掌握實用的PYTHON語法 1
1.1安裝Python開發環境 1
1.1.1在MyEclipse里安裝開發外掛程式和Python解釋器 1
1.1.2新建Python項目,開發第一個Python程式 2
1.2快速入門Python語法 6
1.2.1Python的縮進與注釋 6
1.2.2定義基本數據類型 7
1.2.3字元串的常見用法 7
1.2.4定義函式與調用函式 9
1.3控制條件分支與循環調用 10
1.3.1通過if…else控制程式的分支流程 10
1.3.2while循環與continue,break關鍵字 11
1.3.3通過for循環來遍歷對象 12
1.4通過範例程式加深對Python語法的認識 12
1.4.1實現冒泡排序算法 13
1.4.2計算指定範圍內的質數 13
1.4.3通過Debug調試代碼中的問題 14
1.5本章小結 17
第2章PYTHON中的數據結構:集合對象 18
2.1列表和元組能存儲線性表型數據 18
2.1.1列表的常見用法 18
2.1.2鍊表、列表還是數組?這僅僅是叫法的不同 20
2.1.3對列表中元素進行操作的方法 20
2.1.4不能修改元組內的元素 21
2.2集合可以去除重複元素 22
2.2.1通過集合去掉重複的元素 22
2.2.2常見的集合操作方法 23
2.2.3通過覆蓋sort定義排序邏輯 24
2.3通過字典存放“鍵-值對”類型的數據 24
2.3.1針對字典的常見操作 25
2.3.2在字典中以複雜的格式存儲多個數據 25
2.4針對數據結構對象的常用操作 27
2.4.1映射函式map 27
2.4.2篩選函式filter 28
2.4.3累計處理函式reduce 29
2.4.4通過Lambda表達式定義匿名函式 30
2.5本章小結 31
第3章PYTHON面向對象程式設計思想的實踐 32
3.1把屬性和方法封裝成類,方便重複使用 32
3.1.1在Python中定義和使用類 33
3.1.2通過__init__了解常用的魔術方法 34
3.1.3對外禁止類中的不可見方法 35
3.1.4私有屬性的錯誤用法 36
3.1.5靜態方法和類方法 37
3.2通過繼承擴展新的功能 38
3.2.1繼承的常見用法 38
3.2.2受保護的屬性和方法 39
3.2.3慎用多重繼承 40
3.2.4通過“組合”來避免多重繼承 41
3.3多態是對功能的抽象 42
3.3.1Python中的多態特性 42
3.3.2多態與繼承結合 43
3.4通過import復用已有的功能 44
3.4.1通過import導入現有的模組 44
3.4.2包是模組的升級 45
3.4.3導入並使用第三方庫NumPy的步驟 46
3.5通過疊代器加深理解多態性 47
3.6本章小結 49
第4章異常處理與檔案讀寫 50
4.1異常不是語法錯誤 50
4.1.1通過try…except從句處理異常 50
4.1.2通過不同的異常處理類處理不同的異常 51
4.1.3在except中處理多個異常 53
4.1.4通過raise語句直接拋出異常 53
4.1.5引入finally從句 54
4.2項目中異常處理的經驗談 56
4.2.1用專業的異常處理類來處理專門的異常 56
4.2.2儘量縮小異常監控的範圍 56
4.2.3儘量縮小異常的影響範圍 57
4.2.4在合適的場景下使用警告 58
4.3通過IO讀寫檔案 59
4.3.1以各種模式打開檔案 59
4.3.2引入異常處理流程 60
4.3.3寫檔案 61
4.4讀寫檔案的範例 62
4.4.1複製與移動檔案 62
4.4.2讀寫csv檔案 63
4.4.3讀寫zip壓縮檔案 64
4.5本章小結 65
第5章股市的常用知識與數據準備 66
5.1股票的基本常識 66
5.1.1交易時間與T+1交易規則 66
5.1.2證券交易市場 67
5.1.3從競價制度分析股票為什麼會漲跌 67
5.1.4指數與板塊 68
5.1.5本書會用到的股市術語 68
5.2編寫股票範例程式會用到的庫 69
5.3通過爬取股市數據的範例程式來學習urllib庫的用法 70
5.3.1調用urlopen方法爬取數據 70
5.3.2調用帶參數的urlopen方法爬取數據 72
5.3.3GET和POST的差別和使用場景 73
5.3.4調用urlretrieve方法把爬取結果存入csv檔案 73
5.4通過基於股票數據的範例程式學習正則表達式 74
5.4.1用正則表達式匹配字元串 74
5.4.2用正則表達式截取字元串 76
5.4.3綜合使用爬蟲和正則表達式 77
5.5通過第三方庫收集股市數據 78
5.5.1通過pandas_datareader庫獲取股市數據 78
5.5.2使用Tushare庫來獲取上市公司的信息 80
5.5.3通過Tushare庫獲取某時間段內的股票數據 81
5.6本章小結 82
第6章通過MATPLOTLIB庫繪製K線圖 83
6.1Matplotlib庫的基礎用法 83
6.1.1繪製柱狀圖和折線圖 83
6.1.2設定坐標軸刻度和標籤信息 85
6.1.3增加圖例和圖表標題 86
6.2Matplotlib圖形庫的常用技巧 87
6.2.1繪製含中文字元的餅圖 87
6.2.2柱狀圖和直方圖的區別 89
6.2.3Figure對象與繪製子圖 91
6.2.4調用subplot方法繪製子圖 93
6.2.5通過Axes設定數字型的坐標軸刻度和標籤 94
6.2.6通過Axes設定日期型的坐標軸刻度和標籤 96
6.3繪製股市K線圖 97
6.3.1K線圖的組成要素 97
6.3.2通過直方圖和直線繪製K線圖 98
6.3.3通過mpl_finance庫繪製K線圖 99
6.4K線對未來行情的預判 101
6.4.1不帶上下影線的長陽線 101
6.4.2不帶上下影線的長陰線 102
6.4.3預測上漲的早晨之星 102
6.4.4預測下跌的黃昏之星 103
6.4.5預測上漲的兩陽夾一陰形態 104
6.4.6預測下跌的兩陰夾一陽形態 104
6.5本章小結 105
第7章繪製均線與成交量 106
7.1NumPy庫的常見用法 106
7.1.1range與arange方法比較 106
7.1.2ndarray的常見用法 107
7.1.3數值型索引和布爾型索引 108
7.1.4通過切片獲取數組中指定的元素 109
7.1.5切片與共享記憶體 110
7.1.6常用的科學計算函式 111
7.2Pandas與分析處理數據 111
7.2.1包含索引的Series數據結構 112
7.2.2通過切片等方式訪問Series中指定的元素 113
7.2.3創建DataFrame的常見方式 114
7.2.4存取DataFrame對象中的各類數據 115
7.2.5通過DataFrame讀取csv檔案 116
7.2.6通過DataFrame讀取Excel檔案 117
7.3K線整合均線 118
7.3.1均線的概念 118
7.3.2舉例說明均線的計算方法 119
7.3.3移動視窗函式rolling 119
7.3.4用rolling方法繪製均線 120
7.3.5改進版的均線圖 121
7.4整合成交量圖 123
7.4.1本書用的成交量是指成交股數 123
7.4.2引入成交量圖 123
7.5通過DataFrame驗證均線的操作策略 126
7.5.1葛蘭碧均線八大買賣法則 126
7.5.2驗證基於均線的買點 127
7.5.3驗證基於均線的賣點 128
7.6量價理論 129
7.6.1成交量與股價的關係 129
7.6.2驗證“量增價平”的買點 130
7.6.3驗證“量減價平”的賣點 131
7.7本章小結 132
第8章資料庫操作與繪製MACD線 133
8.1Python連線MySQL資料庫的準備工作 133
8.1.1在本地搭建MySQL環境 133
8.1.2安裝用來連線MySQL的PyMySQL庫 135
8.1.3在MySQL中創建資料庫與數據表 135
8.1.4通過select語句執行查詢 136
8.1.5執行增、刪、改操作 138
8.1.6事務提交與回滾 139
8.2整合爬蟲模組和資料庫模組 141
8.2.1根據股票代碼動態創建數據表 141
8.2.2把爬取到的數據存入數據表 142
8.3繪製MACD指標線 145
8.3.1MACD指標的計算方式 145
8.3.2遍歷數據表數據,繪製MACD指標 146
8.3.3關於數據誤差的說明 149
8.3.4MACD與K線均線的整合效果圖 150
8.4驗證基於MACD指標的買賣點 153
8.4.1MACD指標的指導意義與盲點 153
8.4.2驗證基於柱狀圖和金叉的買點 154
8.4.3驗證基於柱狀圖和死叉的賣點 157
8.5本章小結 159
第9章以KDJ範例程式學習GUI編程 160
9.1Tkinter的常用控制項 160
9.1.1實現帶標籤、文本框和按鈕的GUI界面 160
9.1.2實現下拉框控制項 162
9.1.3單選框和多行文本框 163
9.1.4複選框與在Text內顯示多行文字 164
9.2Tkinter與Matplotlib的整合 166
9.2.1整合的基礎:Canvas控制項 166
9.2.2在Canvas上繪製Matplotlib圖形 167
9.2.3在GUI視窗內繪製K線圖 169
9.3股票範例程式:繪製KDJ指標 171
9.3.1KDJ指標的計算過程 171
9.3.2繪製靜態的KDJ指標線 172
9.3.3根據界面的輸入繪製動態的KDJ線 175
9.4驗證基於KDJ指標的交易策略 179
9.4.1KDJ指標對交易的指導作用 180
9.4.2基於Tkinter驗證KDJ指標的買點 180
9.4.3基於Tkinter驗證KDJ指標的賣點 183
9.5本章小結 184
第10章基於RSI範例程式實現郵件功能 185
10.1實現發郵件的功能 185
10.1.1傳送簡單格式的郵件(無收件人信息) 185
10.1.2傳送HTML格式的郵件(顯示收件人) 187
10.1.3包含本文附屬檔案的郵件(多個收件人) 188
10.1.4在正文中嵌入圖片 189
10.2以郵件的形式傳送RSI指標圖 191
10.2.1RSI指標的原理和算法描述 191
10.2.2通過範例程式觀察RSI的算法 192
10.2.3把Matplotlib繪製的RSI圖存為圖片 193
10.2.4RSI整合K線圖後以郵件形式傳送 195
10.3以郵件的形式傳送基於RSI指標的買賣點 198
10.3.1RSI指標對買賣點的指導意義 199
10.3.2基於RSI指標計算買點並以郵件的形式發出 199
10.3.3基於RSI指標計算賣點並以郵件的形式發出 202
10.4本章小結 204
第11章用BIAS範例講述DJANGO框架 205
11.1基於WSGI規範的Web編程 205
11.1.1基於WSGI規範的PythonWeb代碼 205
11.1.2再加入處理GET請求的功能 206
11.2通過Django框架開發Web項目 207
11.2.1安裝Django組件 207
11.2.2創建並運行Django 208
11.2.3從Form表單入手擴展Django框架 210
11.2.4運行範例程式了解基於MVC的調用模式 212
11.2.5Django框架與Matplotlib的整合 214
11.3繪製乖離率BIAS指標 216
11.3.1BIAS指標的核心思想和算法 216
11.3.2繪製K線與BIAS指標圖的整合效果 216
11.3.3基於BIAS指標的買賣策略 218
11.3.4在Django框架中繪製BIAS指標圖 219
11.3.5在Django框架中驗證買點策略 224
11.3.6在Django框架中驗證賣點策略 224
11.4本章小結 226
第12章以OBV範例深入講述DJANGO框架 228
12.1在Django框架內引入日誌 228
12.1.1不同級別日誌的使用場合 228
12.1.2向控制台和檔案輸出不同級別的日誌 229
12.2在Django框架內引入資料庫 234
12.2.1整合併連線MySQL資料庫 234
12.2.2以Model的方式進行增刪改查操作 236
12.2.3使用查詢條件獲取數據 239
12.2.4以SQL語句的方式讀寫資料庫 241
12.3繪製OBV指標圖 241
12.3.1OBV指標的原理以及算法 242
12.3.2繪製K線、均線和OBV指標圖的整合效果圖 242
12.4在Django框架內整合日誌與資料庫 245
12.4.1搭建Django環境 245
12.4.2把數據插入到數據表中(含日誌列印) 246
12.4.3驗證基於OBV指標的買賣策略 252
12.5本章小結 255
第13章以股票預測範例入門機器學習 256
13.1用線性回歸算法預測股票 256
13.1.1安裝開發環境庫 256
13.1.2從波士頓房價範例初識線性回歸 257
13.1.3實現基於多個特徵值的線性回歸 261
13.1.4fit函式訓練參數的標準和方法 262
13.1.5訓練集、驗證集和測試集 263
13.1.6預測股票價格 265
13.2通過SVM預測股票漲跌 267
13.2.1通過簡單的範例程式了解SVM的分類作用 268
13.2.2數據標準化處理 269
13.2.3預測股票漲跌 270
13.2.4定量觀察預測結果 273
13.3本章小結 274