Python 量化交易

張楊飛

立即出貨

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

商品描述

本書本著能讓新手快速上手量化交易的原則,循序漸進地講解了量化交易入門所需要的知識,以及大量的開發技巧與交易技巧,具有很強的實用性。vn.py是機構級別的量化交易軟件,掌握vn.py框架原理並且熟練運用,有利於新手快速搭建屬於自己的量化交易系統。Python語言有非常強大的數據分析庫,對於交易策略的研發具有天然優勢,且其易學性也深受初學者喜愛。本書即以Python+vn.py這一流行組合寫作,從量化交易的起源及其發展進程入手,在簡單介紹Python量化編程基礎,以及詳細解析vn.py架構之後,深入且全面地介紹了CTA策略、海龜策略,以及新策略的開發流程。

作者簡介

張楊飛 
知乎專欄《Python量化之路》作者,受困於早期Python量化交易的學習資料過於零散,把自己在量化交易從入門到應用的踩“坑”經歷整理成學習筆記發佈到網上,以很簡單的CTA策略為著力點,力求拉近學習與實踐(即實盤交易)的距離,由淺入深,比較系統而全面地介紹量化交易相關知識,收穫了很多初學者的肯定和共鳴。目前就職於上海某金融科技公司,負責策略的研發與API的開發。 

目錄大綱

目 錄

1章 量化交易速覽 1

1.1 為何選擇量化交易 1

1.1.1 量化交易的概念 1

1.1.2 主觀交易與量化交易 2

1.2 量化交易的先驅們 5

1.2.1 朱爾斯·雷格納特 5

1.2.2 愛德華·索普 6

1.2.3 托馬斯·彼得菲 9

1.2.4 詹姆斯·西蒙斯14

1.3 美國量化投資的發展歷史17

1.3.1 興起階段(1970—1990年) 17

1.3.2 快速發展階段(1990—2000年) 18

1.3.3 穩步增長階段(2000年至今) 19

1.4 中國量化投資的發展歷史20

1.4.1 ETF套利時代(2010年以前) 20

1.4.2 多因子Alpha和高頻交易稱雄時代(2010—2015年) 21

1.4.3 多元化投資時代(2016年至今) 23

1.5 國內常用的量化交易策略24

1.5.1 期貨CTA策略24

1.5.2 股票Alpha策略32

1.5.3 期權波動率套利策略41

1.5.4 高頻交易策略45

1.6 寬客48

1.7 寬客的兩大陣形:P宗與Q宗51

1.8 寬客的3種職能分類52

1.8.1 量化IT工程師52

1.8.2 量化研究員53

1.8.3 量化交易員54

1.9 寬客的四大派系55

1.9.1 券商資管56

1.9.2 公募基金56

1.9.3 私募基金57

1.9.4 期貨市場57

2章 Python量化編程基礎59

2.1 Python運行環境搭建60

2.1.1 安裝Anaconda2-5.0.0(32位) 61

2.1.2 設置Anancoda環境62

2.1.3 創建共享環境64

2.1.4 列出共享環境64

2.1.5 安裝Jupyter Notebook 65

2.2 數據66

2.2.1 字符串66

2.2.2 數字67

2.2.3 容器68

2.2.4 布爾值73

2.2.5 空值73

2.3 函數74

2.3.1 自定義函數74

2.3.2 三方庫的函數75

2.4 條件判斷75

2.5 循環76

2.6 類和實例79

2.6.1 定義學生父類79

2.6.2 定義父類實例81

2.6.3 定義團體子類82

2.6.4 定義子類實例83

2.7 NumPy與Pandas 84

2.7.1 一維數組84

2.7.2 二維數組88

2.8 scikit-learn機器學習庫92

2.8.1 機器學習的步驟93

2.8.2 線性回歸94

2.8.3 邏輯回歸100

2.9 Matplotlib繪圖庫103

2.9.1 用列表繪製線條103

2.9.2 用數組繪圖105

2.9.3 多個圖的繪製108

3章 vn.py入門109

3.1 vn.py介紹109

3.2 搭建vn.py運行環境113

3.2.1 安裝Visual Studio 2013社區版(特定版本) 113

3.2.2 安裝代碼編輯器工具:Sublime Text 114

3.2.3 安裝Wing IDE 115

3.2.4 安裝MongoDB數據庫115

3.2.5 安裝Robo 3T 118

3.2.6 安裝vn.py 119

3.2.7 更新vn.py 121

3.3 VnTrader界面功能介紹122

3.3.1 連接CTP 122

3.3.2 界面說明123

3.4 vn.py架構124

3.4.1 底層接口125

3.4.2 中層引擎126

3.4.3 上層應用127

3.5 底層接口128

3.5.1 CTP API的工作原理128

3.5.2 CTP API的Python封裝設計133

3.5.3 CTP API對接中層引擎原理135

3.6 事件引擎138

3.6.1 時間驅動138

3.6.2 事件驅動139

3.6.3 事件引擎工作流程140

3.6.4 事件引擎結構141

3.7 上層應用143

3.7.1 PyQt介紹143

3.7.2 GUI組件構成144

4章 在vn.py中實現CTA策略147

4.1 數據解決方案147

4.1.1 CSV加載模塊147

4.1.2 開發新的CSV導入模塊152

4.1.3 數據下載模塊155

4.2 K線生成模塊157

4.2.1 1分鐘K線合成158

4.2.2 X分鐘K線合成161

4.3 K線管理模塊162

4.3.1 初始化參數162

4.3.2 生成時間序列163

4.3.3 定義屬性函數164

4.3.4 生成計算指標165

4.4 CTA策略模塊167

4.4.1 定義成員變量168

4.4.2 構建函數169

4.4.3 回調函數170

4.4.4 主動函數171

4.5 策略回測模塊174

4.5.1 CTA回測引擎174

4.5.2 參數優化設置178

4.5.3 調用回測和優化模塊178

5章 經典CTA策略185

5.1 雙均線策略185

5.1.1 策略原理185

5.1.2 向量回測186

5.1.3 vn.py回測191

5.2 Dual Thrust策略200

5.2.1 策略原理200

5.2.2 策略代碼解析201

5.2.3 策略回測206

5.2.4 策略優化208

5.2.5 滾動回測211

5.3 AtrRsi策略212

5.3.1 ATR指標213

5.3.2 RSI指標215

5.3.3 策略原理216

5.3.4 策略代碼解析217

5.3.5 策略回測220

5.3.6 滾動回測221

5.4 金肯特納通道策略223

5.4.1 策略原理223

5.4.2 策略代碼解析224

5.4.3 策略回測229

5.4.4 滾動回測229

5.5 布林帶通道策略231

5.5.1 策略原理231

5.5.2 CCI指標232

5.5.3 ATR指標234

5.5.4 策略回測235

5.5.5 滾動回測236

5.6 跨時間週期策略238

5.6.1 策略原理239

5.6.2 策略代碼解析239

5.6.3 策略回測243

5.6.4 滾動回測244

5.7 多信號組合策略245

5.7.1 策略原理246

5.7.2 信號生成部分246

5.7.3 交易管理部分251

5.7.4 多信號策略的重構256

6章 海龜策略本地化實證259

6.1 海龜策略速覽259

6.1.1 海龜策略的故事259

6.1.2 海龜策略的局限性260

6.1.3 原版海龜策略261

6.1.4 策略回測效果266

6.2 本地化實現困境與解決方案268

6.2.1 本地化實現困境268

6.2.2 理想解決方案270

6.3 vn.py實現的海龜策略271

6.3.1 工具準備271

6.3.2 數據準備272

6.3.3 海龜策略代碼結構275

6.3.4 海龜策略6大要素代碼解析278

6.3.5 海龜策略的回測284

6.4 品種選擇驗證285

6.4.1 原版投資組合測試285

6.4.2 篩選品種的傳統方法287

6.4.3 構建海龜組合的難點295

6.4.4 海龜組合篩選的解決方案296

6.4.5 重新構建投資組合300

6.5 長短週期信號檢驗320

6.6 上一筆贏利過濾檢驗322

6.7 手續費、滑點測試324

6.8 單位頭寸限制檢驗325

6.9 關於海龜策略的其他研究方向329

7章 新策略實戰330

7.1 開發新的策略330

7.1.1 策略思路330

7.1.2 增加AROON函數332

7.1.3 策略代碼解析333

7.1.4 策略回測335

7.2 多策略的組合回測337

7.2.1 歷史表現338

7.2.2 預測表現341

7.2.3 回測的注意事項341

7.3 模擬測試348

7.3.1 策略文件目錄348

7.3.2 實盤/模擬盤配置文件349

7.4 真實交易環境352

7.4.1 交易環境的3套系統352

7.4.2 交易環境的數據流353

7.5 實際操作注意事項354

7.5.1 計算錯誤354

7.5.2 數據使用誤差355

7.5.3 過擬合356

7.5.4 倖存者偏差357

7.5.5 策略週期358

7.5.6 動態變化的現實環境359

7.5.7 人為乾預360

附錄A 主流交易品種361

A.1 股票361

A.1.1 股票的定義361

A.1.2 股票交易所362

A.1.3 股票競價規則363

A.1.4 T+1制度367

A.1.5 股票交易策略369

A.2 期貨371

A.2.1 期貨的定義371

A.2.2 期貨交易所371

A.2.3 期貨交易策略374

A.3 期權376

A.3.1 期權的定義376

A.3.2 期權的分類379

A.3.3 期權的影響因素381

A.3.4 期權投資組合383

A.3.5 期權波動率套利策略386

A.4 外匯387

A.4.1 外彙的定義387

A.4.2 外匯市場的結構389

A.4.3 外匯市場的組織形式392

A.4.4 主要外匯交易中心393

A.4.5 外匯交易策略395

參考文獻398