Python 量化交易從入門到實戰

張少嫻、劉軍、劉珏、徐卉

  • 出版商: 清華大學
  • 出版日期: 2021-03-01
  • 售價: $539
  • 貴賓價: 9.5$512
  • 語言: 簡體中文
  • 頁數: 380
  • 裝訂: 平裝
  • ISBN: 7302568111
  • ISBN-13: 9787302568117
  • 立即出貨 (庫存=1)

  • Python 量化交易從入門到實戰-preview-1
  • Python 量化交易從入門到實戰-preview-2
  • Python 量化交易從入門到實戰-preview-3
Python 量化交易從入門到實戰-preview-1

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

商品描述

本書共分為四個部分。第一部分是Python語言基礎,主要介紹Python的基礎編程、數據結構、結構化編程、函數以及模塊和包等內容,掌握這一部分可以算是Python基本入門。第二部分是Python編程進階,包括面向對象的編程、面向數據的分析與可視化以及數據持久化等內容,掌握了這一部分可以進行Python的專業編程實踐。第三部分是使用PyQt進行界面開發。PyQt是一種常用而強大的圖形用戶界面(GUI)設計工具,使用它可以設計出美觀、易用的用戶界面。掌握這一部分,可以在大型項目團隊中完成比較核心的工作。第四部分是vn.py量化交易平臺,為讀者提供高水平實踐機會,在鞏固專業程序員水平的同時,也在一個Python的重要應用領域中進行深入的探索。

作者簡介

張少嫻,1993年畢業於原南京郵電學院計算機系計算機通信專業,獲工學學士學位。
2003年於南京郵電大學獲計算機應用技術專業碩士學位。
參加了國家自然科學基金面上項目、973項目、江蘇省教育廳高校自然科學研究計劃課題共5項,已在國內外學術期刊和會議上以第一作者和通訊作者發表論文10餘篇,出版《Web應用開發技術與案例教程》、《數據庫原理》等教材。

目錄大綱

目錄

第一部分Python語言基礎
第1章準備工作/31.1為何選擇Python/3
1.1.1非專業軟件開發人員/3
1.1.2專業軟件開發人員/3
1.2下載安裝/4
1.3測試安裝是否成功/6
1.3.1使用Python解釋器/6
1.3.2使用IDLE/7

第2章初識Python編程/8
2.1Python簡單編程/8
2.1.1簡單計算/9
2.1.2使用變量/10
2.1.3print()函數/11
2.2特殊數據類型/12
2.2.1其他數值類型/12
2.2.2布爾(bool)類型/14
2.2.3空值(None)/14
2.3字符串/15
2.3.1字符串定義/15
2.3.2字符串的一般操作/16
2.3.3字符串的索引和切片/17
2.3.4字符串的修改/19
2.3.5鍵盤輸入/20
2.3.6將值轉換為字符串/21
2.3.7字符串的方法/21
2.3.8格式化輸出/24
2.4習題/26

第3章數據結構/28
3.1列表/28
3.1.1列表的索引和切片/28
3.1.2列表的修改/29
3.1.3列表排序/32
3.1.4堆棧和隊列/33
3.2元組/34
3.3字典/36
3.4集合/38
3.5Python集成開發環境/40
3.5.1集成開發環境介紹/40
3.5.2PyCharm的安裝與使用/41
3.6習題/44

第4章結構化編程/47
4.1條件表達式/47
4.1.1比較運算符/48
4.1.2比較序列和其他類型/50
4.1.3邏輯運算符/50
4.2if語句/52
4.3while語句/56
4.4for語句/57
4.4.1循環處理序列中的元素/57
4.4.2range()函數/58
4.4.3序列上的循環技巧/60
4.5循環控制/62
4.5.1循環中的else子句/62
4.5.2break語句/62
4.5.3continue語句/63
4.6習題/64

第5章函數/68
5.1定義函數/68
5.2返回值/69
5.2.1return語句/70
5.2.2多分支return/70
5.2.3返回值類型/70
5.3參數的傳遞方式/72
5.4參數類型/73
5.4.1位置參數/73
5.4.2默認值參數/74
5.4.3關鍵字參數/75
5.4.4元組參數的封裝與拆封/76
5.4.5字典參數的封裝與拆封/78
5.5變量的作用域/79
5.5.1局部變量/79
5.5.2全局變量/80
5.5.3nonlocal/82
5.6與函數有關的其他內容/83
5.6.1pass語句/83
5.6.2文檔字符串/83
5.6.3函數註解/84
5.6.4編碼風格/85
5.7錯誤和異常/85
5.7.1語法錯誤/86
5.7.2異常/86
5.7.3異常處理/87
5.7.4定義清理行為/89
5.8習題/91

第6章模塊和包/92
6.1模塊/92
6.1.1導入模塊/93
6.1.2執行模塊/94
6.1.3模塊的搜索路徑/95
6.1.4編譯的Python文件/96
6.2包/96
6.2.1包的概念/96
6.2.2包的一般導入/97
6.2.3包的導入/98
6.2.4包內引用/99
6.3標準庫/99
6.3.1系統模塊/100
6.3.2操作系統功能/100
6.3.3數學運算/101
6.3.4日期和時間/102
6.3.5多線程/105
6.4第三方包/109
6.5使用Anaconda/112
6.5.1Python基礎環境的問題/112
6.5.2Anaconda的下載安裝/112
6.5.3管理虛擬環境/114
6.6習題/116

第二部分Python編程進階

第7章面向對象編程/1197.1創建和使用類/119
7.1.1類的創建/120
7.1.2創建並使用實例/121
7.1.3屬性的默認值/122
7.2私有屬性和私有方法/123
7.3類屬性和類方法/124
7.3.1類屬性/124
7.3.2析構函數/125
7.3.3類方法/127
7.3.4靜態方法/127
7.4屬性再研究/129
7.4.1屬性的增加與刪除/129
7.4.2@property裝飾器/130
7.5繼承/131
7.5.1簡單的繼承/131
7.5.2重寫父類的方法/132
7.5.3重寫_ _init_ _方法/132
7.5.4為子類增加新的屬性和方法/133
7.5.5多重繼承/134
7.5.6抽像類和抽象方法/135
7.6導入類/136
7.6.1導入單個類/137
7.6.2在模塊中存儲多個類/137
7.6.3組織項目代碼/138
7.7習題/138

第8章數據分析與可視化/140
8.1數據分析概述/140
8.2NumPy/141
8.2.1創建NumPy數組/142
8.2.2NumPy特殊數組/142
8.2.3NumPy序列數組/143
8.2.4NumPy數組索引/144
8.2.5NumPy數組運算/144
8.2.6NumPy數組複製/145
8.2.7NumPy矩陣/145
8.3Pandas/146
8.3.1一維數組Series/146
8.3.2二維數組DataFrame/147
8.4數據可視化概述/157
8.5matplotlib/158
8.5.1繪製簡單的折線圖/158
8.5.2修改標籤文字和線條粗細/159
8.5.3校正圖表/160
8.6習題/162

第9章數據持久化/164
9.1一般文件操作/164
9.1.1文件的概念/165
9.1.2文件的打開與關閉/165
9.1.3從文件讀/167
9.1.4寫文件/169
9.1.5文件指針/169
9.1.6預定義清理行為/171
9.2CSV文件/171
9.2.1DataFrame與CSV/171
9.2.2讀CSV文件/173
9.2.3寫CSV文件/173
9.3JSON文件/174
9.4SQL數據庫操作/177
9.4.1SQLite介紹/177
9.4.2操作SQLite數據庫/178
9.5peewee/181
9.6習題/186

第三部分使用PyQt進行界面開發
第10章PyQt基礎/19110.1PyQt介紹/191
10.1.1PyQt5/191
10.1.2其他Python圖形界麵包/192
10.2安裝PyQt5/193

第11章PyQt5界面編程/194
11.1PyQt5基本功能/194
11.1.1最簡單的PyQt5程序/194
11.1.2PyQt5的坐標體系/195
11.1.3關閉窗口/197
11.1.4自己解決問題/199
11.2佈局管理/200
11.2.1絕對定位/200
11.2.2盒佈局BoxLayout/201
11.2.3網格佈局QGridLayout/203
11.3菜單欄、工具欄和狀態欄/204
11.3.1狀態欄/204
11.3.2菜單欄/205
11.3.3子菜單/207
11.3.4勾選菜單/208
11.3.5右鍵菜單/209
11.3.6工具欄/210
11.4事件處理/211
11.4.1信號與槽介紹/211
11.4.2信號與槽的簡單示例/212
11.4.3事件發送者/213
11.4.4內置信號與內置槽/213
11.4.5自定義信號/216
11.4.6事件對象/218
11.5標準對話框/219
11.5.1輸入對話框/220
11.5.2文件對話框/221
11.5.3顏色對話框/224
11.5.4字體對話框/226
11.6習題/228

第12章PyQt5控件/229
12.1按鈕QPushButton/230
12.2複選框QCheckBox/231
12.3列錶框QListWidget/233
12.4行編輯QLineEdit/235
12.5下拉式列錶框QComboBox/236
12.6日曆控件QCalendarWidget/238
12.7定時器與進度條QProgressBar/240
12.7.1QTimer和QBasicTimer定時器/240
12.7.2進度條QProgressBar/241
12.8樹狀列表QTreeWidget/242
12.9表格QTableWidget/246
12.10分割器QSplitter/248
12.11習題/250

第13章Qt Designer的使用/251
13.1本章教學目標/252
13.2Qt Designer基礎/254
13.2.1安裝PyQt5tools/254
13.2.2配置PyCharm開發環境/254
13.2.3Qt Designer初步接觸/256
13.2.4Qt Designer的編程機制/258
13.3控件及屬性/261
13.3.1Qt Designer的界面佈局/261
13.3.2修改控件的屬性/262
13.4Qt Designer中的信號與槽/263
13.4.1直接連接信號與槽/263
13.4.2手工編程法實現信號與槽的連接/265
13.5菜單/266
13.6工作區設計/267
13.6.1創建主Tab Widget/267
13.6.2設計股票列表界面/268
13.7打開子窗口/269
13.8習題/271

第14章PyQt5繪圖/272
14.1圖片顯示/272
14.2基本繪圖類/274
14.3圖形視圖架構/275
14.4PyQtGraph基礎/281
14.4.1PyQtGraph介紹/282
14.4.2PyQtGraph的安裝與測試/282
14.5PyQtGraph折線圖/284
14.6PyQtGraph自定義繪圖/288
14.6.1K線圖繪製類/288
14.6.2K線圖表類/290
14.6.3嵌入到普吸金/294
14.6.4增加十字線顯示/295
14.7習題/297

第四部分vn.py量化交易平台

第15章vn.py的使用/30115.1量化交易基礎/301
15.1.1量化交易概念/301
15.1.2量化交易平台分類/302
15.1.3寬客/304
15.2vn.py的安裝與運行/304
15.2.1源碼下載與安裝/304
15.2.2vn.py的啟動/305
15.3VN Trader/306
15.4CTA回測/309
15.5CTA策略/311

第16章VN Trader分析/314
16.1程序主函數/314
16.2主引擎/315
16.2.1vn.py體系結構/316
16.2.2初始化函數/316
16.2.3初始化功能引擎/318
16.2.4增加功能引擎/318
16.2.5增加底層接口/318
16.2.6增加上層應用/319
16.3主界面/319
16.3.1創建應用程序/320
16.3.2主窗口的初始化/320
16.4窗口組件/321
16.4.1單元格類/321
16.4.2監控組件類/323
16.4.3初始化懸浮窗口/325
16.5菜單/326
16.5.1底層接口加入菜單/327
16.5.2上層應用加入菜單/328
16.6習題/331

第17章數據庫操作/332
17.1vn.py支持的數據庫/332
17.2數據庫管理器/333
17.2.1數據庫管理器基類/334
17.2.2SQL數據庫管理器/334
17.2.3peewee模板類/335
17.2.4數據庫管理器的初始化/336
17.3數據管理/338
17.3.1數據管理應用類/339
17.3.2數據管理窗體類/339
17.3.3下載數據/340
17.3.4導入數據/340
17.4使用數據/341
17.5習題/344

第18章CTA回測/345
18.1事件引擎/345
18.1.1事件引擎的作用/345
18.1.2事件引擎類/346
18.2回測線程/350
18.2.1類結構/350
18.2.2執行流程/351
18.2.3存在問題/352
18.3回測執行/352
18.3.1“開始回測”按鈕的槽函數/352
18.3.2回測操作/354
18.3.3回測結束事件處理/355
18.4習題/357
參考文獻/358