Python期貨量化交易
內容描述
近年來,Python語言憑借其在數據分析領域的優勢得以快速發展,眾多軟件廠商也相繼推出了支持Python的量化交易平臺。本書是介紹Python編程及其在量化交易領域的實踐技巧的圖書,旨在幫助讀者掌握基本的Python編程技能,並順利應用於期貨量化交易實踐。本書內容分為兩篇。第一篇是Python基礎,通過13章內容介紹了Python編程的基礎知識,如語法規則、數據類型、函數、類、裝飾器、異常處理、進程和線程等;第二篇是期貨量化交易,通過8章內容介紹了Python在期貨量化交易中的應用,並基於天勤量化交易平臺講解開發實踐,涉及pandas模塊、TqSdk的接口、函數、量化策略的框架、圖形化編程及時間序列相關的知識等。本書適合對期貨量化交易感興趣的普通投資者和投資機構專業人員閱讀,讀者可以具備一定的?Python基礎,也可以通過本書從頭學習Python基礎知識,再進一步延伸到期貨量化交易的學習。
目錄大綱
第 一篇 Python基礎第 1章 語法基礎 31.1 自然語言 31.2 電腦語言 41.3 安裝Python 51.4 編輯器(IDE) 61.5 基本的輸入/輸出 61.6 代碼註釋 71.7 標識符 81.8 表達式 81.9 運算符 91.9.1 數值運算符 91.9.2 比較運算符 91.9.3 邏輯運算符 101.9.4 關系運算符 101.9.5 運算符優先級 111.10 Python的關鍵字 121.11 語句的執行流程 131.12 小結 15第 2章 常用數據類型 162.1 常用內置常量 162.2 整型 172.3 浮點型 172.4 字符串類型 172.5 結構數據類型 192.5.1 列表 192.5.2 元組 192.5.3 字典 202.6 小結 21第3章 函數式編程 223.1 函數的定義和調用 223.2 函數的參數傳遞 243.2.1 無默認值參數 243.2.2 有默認值參數 243.2.3 可變參數 253.2.4 以函數作為參數 283.3 變量的作用域 293.4 匿名函數lambda 313.5 Python常用內置函數 323.6 註解 323.7 小結 34第4章 常用數據類型的運算 354.1 獲取序列數據元素 354.1.1 索引和分片運算符 354.1.2 index() 364.2 屬性引用 364.3 增量運算符 364.4 字符串的運算 374.4.1 獲取字符串中的元素 374.4.2 級聯和重復 384.4.3 字符串的常用方法 384.4.4 格式化字符串 414.4.5 正則表達式 444.5 列表的運算 454.5.1 獲取列表的元素 454.5.2 級聯和重復 454.5.3 列表常用的方法 464.5.4 列表的推導(內涵) 484.6 元組的運算 504.7 字典的運算 504.7.1 以“鍵”取“值” 504.7.2 字典常用的方法 514.8 nan值 544.9 小結 55第5章 循環 565.1 可迭代對象 565.2 迭代器 575.3 生成器 595.4 協程 635.5 其他迭代函數 695.5.1 map() 695.5.2 zip() 705.5.3 enumerate() 715.6 小結 72第6章 面向對象編程 736.1 類的特性 736.2 類的定義 756.3 類的一般定義 766.3.1 屬性和init() 766.3.2 方法 776.3.3 實例化類 776.3.4 特殊屬性和特殊方法 806.4 類的繼承 816.5 MRO列表 856.6 可變映射類型 856.7 小結 88第7章 裝飾器和functools 897.1 函數的閉包 897.2 裝飾器函數 907.3 裝飾器類 947.4 內置裝飾器類 967.5 functools.partial() 967.6 小結 97第8章 錯誤和異常處理 998.1 try語句 998.2 raise語句 1048.3 自定義異常類 1058.4 小結 105第9章 模塊、包和文件 1079.1 模塊 1079.1.1 賦值 1099.1.2 淺拷貝 1109.1.3 深拷貝 1129.2 包 1129.3 安裝第三方模塊庫 1139.4 文件處理 1139.4.1 open() 1139.4.2 mode的主要值及含義 1149.4.3 操作標記 1169.4.4 其他常用的文件方法 1169.4.5 創建文件 1179.5 json文件 1189.6 小結 119第 10章 時間日期處理 12110.1 time模塊 12110.2 datetime模塊 12510.2.1 date類 12510.2.2 time類 12710.2.3 datetime類 12710.2.4 timedelta類 13010.3 小結 131第 11章 多進程multiprocess模塊 13211.1 Process類 13311.2 Lock類 13711.3 Event類 13911.4 Queue類 14211.5 Pipe類 14511.6 Pool類 14811.7 獲取進程的返回值 15111.8 Manager類 15211.9 小結 153第 12章 多線程threading模塊 15512.1 Thread類 15512.2 Lock類 16012.3 Rlock類 16112.4 BoundedSemaphore類 16212.5 Condition類 16312.6 Event類 16512.7 queue模塊 16612.8 concurrent.futures模塊 16912.9 小結 172第 13章 asyncio模塊庫 17313.1 asyncio異步協程的定義 17313.1.1 原生協程 17313.1.2 asyncio異步協程 17713.2 創建和設置事件循環 17913.3 運行和停止循環 18013.4 創建Future和Task 18213.4.1 創建Future 18213.4.2 Task對象的方法 18313.5 並發執行的方法 18413.6 隊列集 19013.7 async for 19213.8 小結 194第二篇 期貨量化交易第 14章 天勤量化(TqSdk) 19714.1 簡介 19714.1.1 系統架構 19714.1.2 功能要點 19814.1.3 安裝和升級TqSdk 19914.1.4 數據流 20014.1.5 註冊信易賬戶 20014.2 TqSdk的接口 20114.2.1 品種和交易所代碼 20114.2.2 高級委托指令 20214.2.3 TqApi 20314.3 小結 218第 15章 pandas模塊 21915.1 一維數據結構Series 21915.2 二維數據結構DataFrame 22115.3 文件讀寫 23715.4 小結 237第 16章 TqSdk的使用 23816.1 獲取盤口行情 23816.2 獲取K線數據 23916.3 獲取tick數據 24116.4 下單和撤單 24116.5 獲取委托單信息 24316.6 獲取成交單信息 24416.7 獲取持倉信息 24616.8 獲取賬戶資金信息 24716.9 篩選合約 24716.10 生成圖形化界面 24916.10.1 在主圖中畫指標線 24916.10.2 在副圖中畫指標線 25016.10.3 在主圖中畫文字標註 25116.10.4 在主圖中畫特殊符和 線段 25216.10.5 在副圖中畫K線 25416.10.6 在副圖中畫價差K線 25416.11 復盤 25616.12 回測 25616.13 多賬戶 25716.14 使用目標持倉TargetPosTask 25816.15 異步任務 26016.15.1 使用協程任務 26016.15.2 使用多線程 26116.15.3 使用多進程 26216.16 小結 263第 17章 TqSdk部分函數解讀 26417.1 DIFF協議 26417.1.1 數據傳輸 26417.1.2 數據訪問 26617.2 業務函數 26717.3 insert_order() 26917.4 create_task() 27017.5 TqChan 27117.6 register_update_notify() 27317.7 wait_update() 27517.8 目標持倉工具TargetPosTask 27917.9 小結 281第 18章 量化策略框架 28218.1 分時行情突破策略 28218.2 雙均線策略 28318.3 定時清倉 28418.4 套利下單 28418.5 開平倉函數 28618.6 追蹤止損+分批止盈 29218.7 無人值守定時任務 29518.8 期貨、期權無風險套利 29718.9 多線程和異步協程框架 29918.10 本地保存成交記錄 30218.10.1 保存為json文件 30218.10.2 保存為CSV文件 30318.11 小結 304第 19章 用GUI庫開發界面程序 30519.1 QApplication類 30519.2 部件QWidget 30619.2.1 常用部件 30619.2.2 常用佈局 30719.3 信號-槽 30719.4 登錄窗口 30719.5 下單板 31019.6 信號線程 31219.7 一個簡單的半自動化下單 軟件 31319.8 打包成.exe格式的可執行 文件 32919.9 小結 329第 20章 技術指標繪圖 33020.1 PyQtGraph簡介 33020.2 技術指標繪制 33420.2.1 K線和成交量繪制類 33420.2.2 技術指標計算類 33820.2.3 x軸時間顯示 34020.2.4 指標窗口類 34120.2.5 圖形顯示 34720.3 小結 351第 21章 定量分析 35221.1 技術分析的內核:相關性檢驗 35221.1.1 方差和標準差 35321.1.2 協方差和相關系數 35321.1.3 自協方差、自相關系數和 偏自相關系數 35421.1.4 平穩過程 35521.2 價格序列相關性檢驗 35521.2.1 多品種的相關性檢驗 35621.2.2 單品種的自相關檢驗 35721.3 小結 362
作者介紹
祝学礼,拥有多年期货分析经验,熟悉各类技术分析理论,擅长用 Python 实现各类交易策略,并用Python开发交易软件。