商品期貨量化交易實戰 (以 Python 為工具)
內容描述
本書首先講解量化交易基礎和Python編程入門;再講解量化交易API;然後講解CTA的趨勢跟蹤策略和回歸策略,並且配合量化交易策略實戰案例,重點講解如何在發明者量化交易平臺上進行策略開發和回測,讓讀者不但可以系統地學習量化交易和Python編程的相關知識,而且可以對CTA策略開發有更深入的理解;接著講解量化交易回測與實盤;最後對管理風險、投資組合、交易技巧與交易理念進行系統的講解。
目錄大綱
目錄
章量化交易基礎
1.1 什麼是量化交易
1.1.1 量化交易概述
1.1.2 量化交易的發展
1.1.3 量化交易的特點
1.1.4 量化交易有哪些入門策略
1.2 為什麼選擇量化交易
1.2.1 量化交易與主觀交易的區別
1.2.2 量化交易比主觀交易更好
1.2.3 量化交易能賺錢
1.2.4 量化交易的風險
1.3 量化交易需要哪些準備工作
1.3.1 安裝SDK
1.3.2 策略構思
1.3.3 建立模型
1.3.4 回測調優
1.3.5 仿真交易
1.3.6 實盤交易
1.4 一個完整的策略有哪些要素
1.4.1 策略選擇
1.4.2 交易什麼
1.4.3 交易多少
1.4.4 何時交易
1.4.5 如何交易
1.4.6 交易心態
1.5 溫故知新
第2章Python編程入門
2.1 為什麼要學習Python
2.1.1 Python的特點
2.1.2 Python的版本
2.2 Python的基礎語法
2.2.1 編碼
2.2.2 量命名
2.2.3 關鍵字
2.2.4 註釋
2.2.5 縮進
2.2.6 代碼塊
2.2.7 空行
2.2.8 導入模塊
2.3 Python中的量和數據類型
2.3.1 量
2.3.2 標準數據類型
2.3.3 Number(數值)
2.3.4 String(字符串)
2.3.5 List(列表)
2.3.6 Dictionary(字典)
2.3.7 數據類型轉換函數
2.4 Python中的數據運算
2.4.1 算術運算符
2.4.2 關係運算符
2.4.3 賦值運算符
2.4.4 邏輯運算符
2.4.5 運算符優先級
2.5 Python中的數字和字符串
2.5.1 內置數學函數
2.5.2 訪問字符串中的字符
2.5.3 拼接字符串
2.5.4 其他常用函數
2.6 Python中的列表和字典
2.6.1 列表索引
2.6.2 列表切片
2.6.3 列表中元素的修改與刪除
2.6.4 二維列表
2.6.5 列表中元素的增加
2.6.6 列表反向排序
2.6.7 創建字典
2.6.8 訪問字典中的鍵值
2.6.9 字典中元素的增加與修改
2.6.10 字典中元素的刪除
2.7 Python中的條件語句和循環語句
2.7.1 條件語句
2.7.2 循環語句
2.7.3 break語句
2.7.4 continue語句
2.8 Python中的日期和時間
2.8.1 time庫
2.8.2 什麼是時間戳
2.8.3 將時間戳轉換為時間
2.9 Python中的常用內置函數
2.9.1 len函數
2.9.2 range函數
2.9.3 split函數
2.9.4 type函數
2.9.5 isinstance函數
2.9.6 取整函數
2.10 Python中的異常處理
2.10.1 語法錯誤
2.10.2 異常錯誤
2.10.3 異常捕獲
2.11 溫故知新
第3章量化交易API
3.1 全局常量和數據結構
3.1.1 exchange交易所對象
3.1.2 exchanges交易所對象列表
3.1.3 Order數據結構
3.1.4 Position數據結構
3.1.5 Trade數據結構
3.1.6 Ticker數據結構
3.1.7 Record數據結構
3.1.8 Depth數據結構
3.1.9 Account數據結構
3.1.10 策略參數
3.2 獲取Tick、深度、歷史K線數據
3.2.1 獲取Tick數據函數GetTicker
3.2.2 獲取深度數據函數GetDepth
3.2.3 獲取K線數據函數GetRecords
3.2.4 商品期貨策略框架
3.3 獲取和取消訂單、獲取當前掛單
3.3.1 訂閱合約代碼函數SetContractType
3.3.2 設置期貨交易方向和類型函數SetDirection
3.3.3 Buy函數
3.3.4 Sell函數
3.3.5 取消訂單函數CancelOrder
3.3.6 獲取所有未完成訂單函數GetOrders
3.3.7 獲取訂單詳情函數GetOrder
3.4 IO函數
3.4.1 切換行情模式
3.4.2 判斷與期貨公司前置機服務器的連接狀態
3.4.3 獲取交易所中的所有合約信息
3.4.4 擴展函數IO('api', )
3.4.5 等待消息函數IO('wait')
3.5 賬戶API獲取賬戶和持倉信息
3.5.1 獲取賬戶信息函數GetAccount
3.5.2 獲取持倉信息函數GetPosition
3.6 常用的日誌信息函數
3.6.1 打印日誌信息函數Log
3.6.2 打印收益信息函數LogProfit
3.6.3 打印狀態欄信息函數LogStatus
3.6.4 畫圖函數Chart
3.6.5 日誌消除函數LogReset
3.6.6 訂單信息日誌功能開關函數EnableLog
3.7 常用的內置函數
3.7.1 休眠函數Sleep
3.7.2 交互函數GetCommand
3.7.3 判斷回測/實盤函數IsVirtual
3.7.4 全局字典函數_G
3.7.5 時間戳函數_D(Timestamp, Fmt)
3.7.6 浮點數格式化函數_N(Num, Precision)
3.7.7 重試函數_C
3.7.8 列表交叉函數_Cross
3.8 常用的指標函數及圖表繪製
3.8.1 內置的TA指標庫
3.8.2 繪製圖表
3.9 策略參數及策略交互
3.9.1 策略參數
3.9.2 策略交互
3.10 內置的模板類庫及經典策略架構
3.10.1 模板類庫
3.10.2 經典策略架構
3.11 溫故知新
第4章CTA之趨勢跟踪策略
4.1 什麼是CTA策略
4.1.1 CTA策略的分類
4.1.2 趨勢策略
4.1.3 反轉策略
4.1.4 量化CTA策略
4.2 經典的MACD策略
4.2.1 MACD簡介
4.2.2 MACD的原理
4.2.3 MACD的計算方法
4.2.4 MACD的使用方法
4.2.5 MACD的有效性
4.2.6 策略邏輯
4.2.7 策略編寫
4.2.8 策略回測
4.2.9 完整的策略代碼
4.3 使用ADX輔助MACD策略
4.3.1 什麼是ADX
4.3.2 ADX的計算方法
4.3.3 策略邏輯
4.3.4 策略編寫
4.3.5 策略回測
4.3.6 完整的策略代碼
4.4 自適應動態雙均線策略
4.4.1 傳統均線的弊端
4.4.2 考夫曼均線的原理
4.4.3 考夫曼均線的計算方法
4.4.4 策略邏輯
4.4.5 策略編寫
4.4.6 策略回測
4.4.7 完整的策略代碼
4.5 日內高低點突破策略
4.5.1 什麼是日內交易
4.5.2 策略邏輯
4.5.3 策略編寫
4.5.4 策略回測
4.5.5 完整的策略代碼
4.6 增強版唐奇安通道策略
4.6.1 唐奇安通道策略簡介
4.6.2 原始策略邏輯
4.6.3 改進後的策略邏輯
4.6.4 策略編寫
4.6.5 策略回測
4.6.6 完整的策略代碼
4.7 HANS123日內突破策略
4.7.1 策略邏輯
4.7.2 策略編寫
4.7.3 策略回測
4.7.4 完整的策略代碼
4.8 菲阿里四價策略
4.8.1 菲阿里簡介
4.8.2 策略邏輯
4.8.3 策略編寫
4.8.4 策略回測
4.8.5 完整的策略代碼
4.9 AROON(阿隆指標)策略
4.9.1 阿隆指標簡介
4.9.2 阿隆指標的計算方法
4.9.3 如何使用阿隆指標
4.9.4 基於阿隆指標構建交易策略
4.9.5 策略回測
4.9.6 完整的策略代碼
4.10 EMV(簡易波動指標)策略
4.10.1 EMV的計算公式
4.10.2 EMV的使用方法
4.10.3 策略編寫
4.10.4 策略回測
4.10.5 完整的策略代碼
4.11 動態階梯突破策略
4.11.1 什麼是突破策略
4.11.2 突破策略理論
4.11.3 策略邏輯
4.11.4 策略編寫
4.11.5 策略回測
4.11.6 完整的策略代碼
4.12 Dual Thrust日內交易策略
4.12.1 Dual Thrust簡介
4.12.2 Dual Thrust日內交易策略的上、下軌
4.12.3 策略邏輯
4.12.4 策略編寫
4.12.5 策略回測
4.12.6 完整的策略代碼
4.13 經典恆溫器策略
4.13.1 策略簡介
4.13.2 市場波動指數
4.13.3 策略邏輯
4.13.4 策略編寫
4.13.5 策略回測
4.13.6 完整的策略代碼
4.14 R-breaker策略
4.14.1 策略原理
4.14.2 計算方法
4.14.3 策略邏輯
4.14.4 策略編寫
4.14.5 策略回測
4.14.6 完整的策略代碼
4.15 溫故知新
第5章CTA之回歸策略
5.1 布林帶跨期套利策略
5.1.1 策略原理
5.1.2 策略邏輯
5.1.3 策略編寫
5.1.4 策略回測
5.2 期現套利圖表
5.2.1 什麼是套利
5.2.2 期現套利方法
5.2.3 期現套利的局限
5.2.4 獲取數據
5.2.5 期現和基差圖表
5.2.6 圖表展示
5.3 乖離率(BIAS)策略
5.3.1 乖離率簡介
5.3.2 乖離率的原理
5.3.3 乖離率的計算公式
5.3.4 策略邏輯
5.3.5 策略編寫
5.3.6 策略回測
5.3.7 完整的策略代碼
5.4 溫故知新
第6章量化交易回測與實盤
6.1 使用Tick數據讓回測更精準
6.1.1 回測需要哪些數據
6.1.2 基於Bar數據的回測
6.1.3 基於Tick數據的回測
6.1.4 Tick數據回測引擎原理
6.1.5 如何選擇佳回測方式
6.2 回測績效報告詳解
6.2.1 回測配置參數
6.2.2 年化收益率
6.2.3 年化波動率
6.2.4 大回撤率
6.2.5 夏普比率
6.3 如何規避回測中的陷阱
6.3.1 未來函數
6.3.2 偷價
6.3.3 成本衝擊
6.3.4 倖存者偏差
6.3.5 過擬合
6.4 遞進和交叉回測
6.4.1 樣本內回測和样本外回測
6.4.2 樣本遞進回測
6.4.3 樣本交叉回測
6.5 量化交易實盤
6.5.1 配置期貨賬戶
6.5.2 在Windows操作系統中部署託管者
6.5.3 在Linux操作系統中部署託管者
6.5.4 一鍵租用託管者
6.5.5 創建策略
6.5.6 管理策略
6.5.7 創建實盤
6.5.8 管理實盤
6.6 溫故知新
第7章風險管理與投資組合
7.1 認識期貨中的風險
7.1.1 系統性風險
7.1.2 人為主觀性風險
7.1.3 策略性風險
7.1.4 資金管理的意義
7.1.5 資金管理的方法
7.2 等價鞅資金管理
7.2.1 什麼是馬丁格爾策略
7.2.2 正向馬丁格爾策略
7.2.3 正向馬丁格爾策略的測試代碼
7.2.4 反向馬丁格爾策略
7.2.5 反向馬丁格爾策略的測試代碼
7.2.6 馬丁格爾策略在期貨市場中的應用
7.3 反等價鞅資金管理方法
7.3.1 什麼是凱利公式
7.3.2 凱利公式的計算方法
7.3.3 用數據驗證凱利公式
7.3.4 凱利公式在量化交易中的應用
7.3.5 凱利公式的局限性
7.4 構建投資組合和風險控制
7.4.1 投資分散與均衡
7.4.2 投資組合分類
7.4.3 構建投資組合
7.4.4 收益與風險
7.5 溫故知新
第8章交易技巧及交易理念
8.1 常用的止盈、止損方法
8.1.1 止損的成本
8.1.2 止損的意義
8.1.3 如何止損
8.1.4 止損的本質
8.1.5 正確的止盈
8.1.6 如何止盈
8.2 量化交易與基本面數據
8.2.1 常用的基本面數據
8.2.2 基本面分析鐵三角
8.2.3 獲取基本面數據
8.2.4 繪製基本面數據圖表
8.3 交易中常用的數理知識
8.3.1 VWAP算法
8.3.2 TWAP算法
8.3.3 布朗運動
8.3.4 維納過程
8.3.5 伊藤引理
8.3.6 馬爾可夫過程
8.4 建立概率思維,提升交易格局
8.4.1 交易來自生活
8.4.2 概率思維
8.4.3 久賭必贏
8.4.4 概率的化
8.4.5 交易中的大數定律
8.5 溫故知新