Python 算法交易實戰 Learn Algorithmic Trading Build and deploy algorithmic trading systems and strategies using Python and advanced data analysis

塞巴斯蒂安·多納迪奧(Sebastien Donadio)

  • Python 算法交易實戰-preview-1
  • Python 算法交易實戰-preview-2
Python 算法交易實戰-preview-1

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

商品描述

本書由淺入深地講解了算法交易的相關知識,先從基礎知識和環境配置講起,其次講解如何通過編程完成交易信息的生成與交易策略的實施,隨後介紹眾多算法交易策略,以及如何管理算法策略中的風險,然後帶領讀者用Python建立自己交易系統,並迎接算法交易的深層挑戰。

全書共分為10章,包括算法交易的基礎原理、通過技術分析解讀市場、通過基礎機器學習預測市場、人類直覺驅動的交易策略、復雜的算法策略、管理算法策略中的風險、用Python構建交易系統、連接到交易所、在Python中創建回測器、適應市場參與者和環境。

作者簡介

塞巴斯蒂安·多纳迪奥(Sebastien Donadio)是 Tradair 公司的技术官,负责技术指导。他具有丰富的专业技术从业经验,曾担任 HC Technologies 公司的软件工程负责人、高频 FX 公司的合伙人和技术总监、Sun Trading 公司的定量交易策略软件开发商。他还拥有 Bull SAS 公司的研究经验,并且曾在法国兴业银行(Société Générale)担任 IT 信用风险经理。在过去的十年中,他曾在美国芝加哥大学、纽约大学和哥伦比亚大学教授过各种计算机科学课程。他的主要爱好是技术,除此之外,他还是一名潜水教练和经验丰富的攀岩运动员。

苏拉夫?戈什(Sourav Ghosh)在过去十年中曾在多家高频算法交易公司工作。他为世界各地的交易所建立和部署了极低延迟、高吞吐量的算法交易系统,涉及多个资产类别。他擅长统计套利做市策略,以及全球流动性强的期货合约的配对交易策略。他在美国芝加哥一家贸易公司担任量化开发人员,拥有美国南加州大学的计算机科学硕士学位。他感兴趣的领域包括计算机结构、金融科技、概率论和随机过程、统计学习和推理方法,以及自然语言处理。

目錄大綱

第 1 部分 基礎知識和環境配置

第 1 章 算法交易的基礎原理 2

1.1 為什麽要交易 2

1.2 有關現代交易的基本概念 3

1.2.1 市場板塊 3

1.2.2 資產類別 4

1.2.3 現代交易市場的基本情況 5

1.3 瞭解算法交易概念 7

1.3.1 交換訂單簿 7

1.3.2 交換匹配算法 7

1.3.3 限價訂單簿 9

1.3.4 交換市場數據協議 9

1.3.5 市場數據提供處理程序 9

1.3.6 訂單類型 10

1.3.7 交換訂單輸入協議 10

1.3.8 訂單輸入網關 10

1.3.9 頭寸和損益管理 11

1.4 從直覺到算法交易 11

1.4.1 為什麽需要自動化交易 12

1.4.2 算法交易的演變—從基於規則的交易到全自動算法交易 12

1.5 算法交易系統的組成部分 14

1.5.1 市場數據訂閱 15

1.5.2 限價訂單簿 15

1.5.3 信號 15

1.5.4 信號聚合器 16

1.5.5 執行邏輯 16

1.5.6 頭寸和損益管理 17

1.5.7 風險管理 17

1.5.8 回測 17

1.6 為什麽選擇 Python 18

1.6.1 選擇 IDE—PyCharm 或 Jupyter Notebook 19

1.6.2 第 一個算法交易 20

1.6.3 設置你的工作區 20

1.6.4 PyCharm 20

1.6.5 獲取數據 21

1.6.6 準備數據——信號 22

1.6.7 信號可視化 24

1.6.8 回測 25

1.7 總結 27

第 2 部分 交易信息生成與交易策略

第 2 章 通過技術分析解讀市場 30

2.1 基於趨勢和動量指標設計交易策略 31

2.2 基於基本技術分析創建交易信號 37

2.2.1 簡單移動平均線 37

2.2.2 指數移動平均線 39

2.2.3 絕對價格振盪器 42

2.2.4 異同移動平均線 44

2.2.5 布林帶 47

2.2.6 相對強弱指標 49

2.2.7 標準偏差 53

2.2.8 動量 55

2.3 在交易工具中貫徹高級概念,如季節性 57

2.4 總結 63

第 3 章 通過基礎機器學習預測市場 65

3.1 瞭解術語和符號 66

3.2 使用線性回歸方法創建預測模型 70

3.2.1 普通最小二乘法 70

3.2.2 正規化和收縮——LASSO 和 Ridge 回歸 75

3.2.3 決策樹回歸 77

3.3 使用線性分類方法創建預測模型 77

3.3.1 K 近鄰 77

3.3.2 支持向量機 79

3.3.3 邏輯回歸 81

3.4 總結 81

第 3 部分 算法交易策略

第 4 章 人類直覺驅動的經典交易策略 84

4.1 創建基於動量和趨勢跟蹤的交易策略 84

4.2 創建適用於具有回歸行為的交易策略 91

4.3 創建在線性相關的交易工具組上操作的交易策略 92

4.4 總結 107

第 5 章 復雜的算法策略 108

5.1 創建根據交易工具的波動性進行調整的交易策略 108

5.1.1 調整技術指標中交易工具的波動率 109

5.1.2 調整交易策略中交易工具的波動率 109

5.1.3 波動率調整後的均值回歸交易策略 110

5.2 制定經濟事件的交易策略 127

5.2.1 經濟發布 127

5.2.2 經濟發布格式 128

5.2.3 電子化經濟發布服務 129

5.2.4 交易中的經濟發布 129

5.3 實施基本的統計套利交易策略 131

5.3.1 StatArb 的基礎 131

5.3.2 StatArb 中的領先滯後 132

5.3.3 調整投資組合的構成和關系 132

5.3.4 StatArb 的基礎設施費用 133

5.3.5 Python 中的 StatArb 133

5.4 總結 148

第 6 章 管理算法策略中的風險 149

6.1 區分風險類型和風險因素 149

6.1.1 交易損失的風險 150

6.1.2 違反法規的風險 150

6.1.3 欺騙 151

6.1.4 報價填充 151

6.1.5 操縱收盤價 152

6.1.6 風險來源 152

6.1.7 量化風險 154

6.2 區分風險措施 155

6.2.1 止損 156

6.2.2 最大跌幅 158

6.2.3 頭寸限制 160

6.2.4 持倉時間 161

6.2.5 PnL 的差異 162

6.2.6 夏普比率 163

6.2.7 每周期最大執行量 165

6.2.8 最大交易規模 167

6.2.9 數量限制 167

6.3 制定風險管理算法 168

6.4 總結 180

第 4 部分 建立交易系統

第 7 章 用 Python 構建交易系統 182

7.1 瞭解交易系統 182

7.1.1 網關 183

7.1.2 訂單簿管理 185

7.1.3 策略 186

7.1.4 訂單管理系統 187

7.1.5 關鍵組件 188

7.1.6 非關鍵組件 188

7.2 構建交易系統 190

7.2.1 流動性提供者類 191

7.2.2 策略類 193

7.2.3 訂單管理器類 198

7.2.4 市場模擬器類 202

7.2.5 測試交易模擬類 205

7.3 設計限價訂單簿 207

7.4 總結 214

第 8 章 連接到交易所 215

8.1 使交易系統可與交易所進行交易 215

8.2 審查通信 API 217

8.2.1 網絡基礎知識 217

8.2.2 交易協議 218

8.2.3 FIX 協議 219

8.3 接收價格更新 221

8.4 發送訂單和接收市場響應 226

8.4.1 接收器代碼示例 228

8.4.2 其他交易 API 232

8.5 總結 233

第 9 章 在 Python 中創建回測器 234

9.1 學習如何構建回測器 235

9.1.1 樣本內數據與樣本外數據的比較 235

9.1.2 模擬交易 236

9.1.3 單純的數據存儲 236

9.1.4 HDF5 文件 236

9.1.5 數據庫 238

9.2 學習如何選擇正確的假設 241

9.2.1 for 循環回測系統 243

9.2.2 事件驅動的回測系統 244

9.3 評估時間價值 246

9.4 回測雙移動平均線交易策略 250

9.4.1 for 循環回測器 250

9.4.2 基於事件的回測器 253

9.5 總結 260

第 5 部分 算法交易的挑戰

第 10 章 適應市場參與者和環境 262

10.1 回測器與實際市場的策略表現 263

10.1.1 回測器失調的影響 264

10.1.2 模擬失調的原因 266

10.1.3 根據實時交易調整回測和策略 268

10.2 算法交易的持續贏利能力 272

10.2.1 算法交易策略中的利潤衰減 272

10.2.2 適應市場條件和不斷變化的市場參與者 276

10.3 總結 286

後記 287