Python量化交易實戰——使用vn.py構建交易系統
定 價:¥79
中 教 價:¥47.40 (6.00折)
庫 存 數: 30
叢 書 名:計算機技術開發與應用叢書
本書就Python基礎知識和交易策略的基本原理為切入點,由淺入深介紹了如何從零基礎使用vn.py搭建自己交易系統。本書從原理著手到代碼實踐,內容由最基本的Python基礎知識與Python中金融分析的常用包,逐步由淺入深介紹常用的指標并將使用vn.py進行實現。 本書共分為8章,第1章與第2章介紹vn.py的環境搭建與Python常用的工具包,為后面使用vn.py實現交易策略做準備;第3章與第4章介紹vn.py框架和量化交易的基礎知識;第5章到第7章從易到難介紹不同的交易策略并配合大量的實例講解,進一步鞏固vn.py代碼的使用,第8章講解如何在實盤中運行交易策略。 本書面向零基礎的新手和有一定計算機與金融知識基礎的讀者,以通俗易懂的語言和示例闡述量化交易的實現原理,適于對于量化交易有興趣的讀者。帶有詳細注釋的代碼將幫助讀者進一步理解vn.py的框架和交易策略。
★簡明性 在完整論述量化系統與策略理論的同時,結合技術發展的熱點,通過引入有限的復雜公式闡述量化交易策略的思想與方法,大量交易策略示例代碼與詳細的注釋旨在降低讀者的學習復雜度,幫助讀者快速理解與上手。 ★連貫性 章節間的內容連貫性強,由淺入深地介紹不同知識結構體系,適合于不同基礎的讀者閱讀學習,構建的知識體系具有前后關聯與銜接性。 ★ 實用性 介紹的編程與金融基礎知識可以靈活地應用于其他領域,鼓勵讀者使用本書介紹的知識構建自用的量化交易系統。
隨著計算機軟硬件的高速發展,從前基于紙面的低效率的證券、期貨交易逐漸發展成為電子化交易,如今人們在計算機或者手機上就能方便地進行交易。與此同時,一種利用高性能計算機的自動化交易技術也隨之發展,它就是量化交易。量化交易最初在20世紀初產生于國外,由法國數學家Louis Bachelier發表的博士論文《投機理論》開始,逐漸發展到20世紀30年代兩位哥倫比亞大學教授Benjamin Graham和David Dodd出版了著名的《證券分析》,再到20世紀50年代,美國經濟學家Harry Markowitz提出了現代投資組合理論,為投資組合優化奠定了數學基礎,這些前人的工作都為此后量化投資交易的發展奠定了基礎。 進入21世紀后,國內的量化投資也逐步開始發展,并且隨著國內互聯網金融行業的快速發展,許多優秀的量化平臺與開源框架相繼涌現,為普通投資者研究量化交易大大降低了門檻。 量化交易是指以數學模型替代人為的主觀判斷并借助計算機技術制定策略進行交易,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下做出非理性的投資決策,因此普通投資者想要進行量化投資交易需要具備多方面的知識,例如數學、金融、計算機知識缺一不可,同時不同學科知識之間的相互交叉應用也是必不可少的,這也造成量化交易相關從業門檻較高。 本書面向所有想要學習量化交易相關知識的讀者,無論是零基礎或是有一定基礎的學生或職場人都適用。由于本書以量化交易為主題,不會介紹過多的編程基礎內容與金融知識,因此讀者需要具有一定的Python編程基礎,最好具有簡單的金融相關知識。本書以國內優秀的程序化交易框架vn.py為依托對量化交易的基礎知識與編程方法進行介紹,目前vn.py的最新版已更新至3.x版,其相對于前面的版本做了模塊化的封裝,對于模塊功能有一個更加清晰的劃分。本書采用的vn.py版本為3.3.0,相應的Python版本為3.10。 本書的前兩章主要為零基礎的讀者設計,第1章引導讀者在Windows操作系統下以不同的方式配置vn.py所需的編程環境,分別提供了為編程讀者準備的VeighNa Studio安裝方案和為有一定編程基礎的原生Python環境安裝方案;第2章為讀者介紹一些常用的Python編程工具包,這些工具不僅在之后的章節中會用到,在讀者平時進行Python編程的過程中也十分有幫助,有相關使用經驗的讀者可以選讀該章;第3章為vn.py零基礎的讀者設計,對vn.py文件中的設計理念與常用模塊進行了介紹,例如vn.py的整體架構,如何使用vn.py進行本地回測,如何使用vn.py執行實盤交易,等等,為后面章節交易策略的編寫和實盤交易做準備,同時也為需要開發自用量化交易系統的讀者提供思路;第4章的內容更加偏重理論性,從零開始介紹量化交易中的一些重要概念,包括交易策略的概念、倉位/資金管理與風險控制等內容,這些是一個完整的交易策略不可缺少的組成部分;第5章介紹的是基于啟發式規則的交易策略,每個交易策略從設計理念到計算方式再到代碼實現均有涉及,并以vn.py的回測功能為載體執行策略并進行參數優化;第6章則以數學模型為分析基礎進行量化交易策略的開發,讀者會發現由經典的時序分析模型ARMA到基于計算機視覺的方法都可以用于量化交易,希望本章能啟發讀者在設計量化交易策略時運用不同領域的知識與方法,不必局限應用場景;第7章介紹集成不同的交易策略的方法,分別以基于分類與基于回歸的方法介紹策略的集成方法,使交易策略更加穩健;第8章則在實盤行情與模擬下單賬號的前提下使用?vn.py?執行交易策略,本章介紹的內容是最終將交易策略應用于真實資金的必需 步驟。 本書內容連貫,每個章節的內容都會用到前面章節介紹過的知識,希望能最大限度地保證讀者學習的連貫性,同時本書將晦澀難懂的數學公式減到最少,僅保留說明交易策略信號計算方法的必要公式,盡力用平實的語言與圖示幫助讀者更好地理解內容。相信讀者讀完本書后會對量化交易有一個更清晰的理解,希望本書能成為每位讀者進入量化交易領域的金鑰匙。 資源下載提示 素材(源碼)等資源:掃描目錄上方的二維碼下載。 視頻等資源:掃描封底的文泉云盤防盜碼,再掃描書中相應章節的二維碼,可以在線 學習。 投資涉及風險。本書所有代碼與示例僅限于教育用途,并不代表任何投資建議。本書不代表將來的交易會產生與示例同樣的回報或虧損。 投資者在做出交易決策之前必須評估風險,確認自身可以承受風險方可投資。
歐陽鵬程 2023年8月
II
III
歐陽鵬程,西安交通大學工學碩士,曾代表西安交通大學參加第一屆浦發百度智慧金融極客挑戰賽,獲全國三等獎,研究方向為人工智能在視覺方向的應用與數據增強。曾于三六零安全科技股份有限公司與華為技術有限公司諾亞方舟實驗室實習,現從事量化研究與開發相關工作。已出版圖書《TensorFlow計算機視覺原理與實戰》。
本書源碼第1章 簡介 11.1 量化交易的概念 11.1.1 趨勢性交易 21.1.2 市場中性交易 31.1.3 高頻交易 41.2 量化交易的歷史 51.3 量化交易的工具 61.3.1 基于Web端的工具 61.3.2 本地離線的工具 91.4 vn.py的優勢 101.5 vn.py的安裝與環境配置 111.5.1 VeighNa Studio安裝 111.5.2 手動安裝 141.6 小結 22第2章 常用的Python數據包 232.1 NumPy的使用 232.1.1 NumPy中的數據類型 232.1.2 NumPy中數組的使用 232.2 Matplotlib的使用 302.2.1 Matplotlib中的相關概念 302.2.2 使用Matplotlib繪圖 302.3 Pandas的使用 412.3.1 Pandas中的數據結構 412.3.2 使用Pandas讀取數據 422.3.3 使用Pandas處理數據 442.4 SciPy的使用 472.4.1 使用SciPy寫入mat文件 472.4.2 使用SciPy讀取mat文件 482.5 scikit-learn的使用 482.5.1 使用scikit-learn進行回歸 492.5.2 使用scikit-learn進行分類 522.6 Pillow的使用 572.6.1 使用Pillow讀取并顯示圖像 572.6.2 使用Pillow處理圖像 582.7 OpenCV的使用 692.7.1 使用OpenCV讀取與顯示圖像 702.7.2 使用OpenCV處理圖像 712.8 collections的使用 762.8.1 namedtuple 762.8.2 Counter 772.8.3 OrderedDict 772.8.4 defaultdict 782.9 typing的使用 782.9.1 標準數據類型標識 792.9.2 collections中的數據類型標識 812.9.3 其他常用標識 822.10 argparse的使用 832.10.1 argparse的使用框架 832.10.2 使用argparse解析命令行參數 842.11 JSON的使用 862.11.1 使用JSON寫入數據 862.11.2 使用JSON讀取數據 872.12 TA-Lib的使用 882.12.1 技術指標 882.12.2 模式識別 902.13 Tushare的使用 912.14 Orange的使用 932.14.1 Orange中的示例 942.14.2 創建自己的工作流 972.15 Optunity的使用 992.16 Optuna的使用 1002.17 小結 101第3章 vn.py基礎 1023.1 vn.py的整體架構 1023.1.1 底層接口 1023.1.2 中層引擎 1033.1.3 上層應用 1063.2 vn.py文件中的交易接口 1063.2.1 CTP接口 1063.2.2 UFT接口 1153.3 vn.py文件中的數據庫 1163.4 vn.py文件中的回測模塊 1253.5 vn.py文件中的自動交易模塊 1283.6 vn.py文件中的實盤行情記錄模塊 1293.7 vn.py文件中的歷史數據管理模塊 1303.8 vn.py文件中的實時K線圖表模塊 1323.9 vn.py文件中的投資組合管理模塊 1323.10 vn.py文件中的事前風控管理模塊 1333.11 vn.py文件中的本地仿真交易模塊 1343.12 vn.py文件中的算法委托執行交易模塊 1353.13 vn.py文件中的多合約組合策略模塊 1373.14 vn.py文件中的多合約價差組合套利模塊 1373.15 小結 138第4章 量化交易的基礎知識 1394.1 交易策略 1394.2 倉位與資金管理 1394.2.1 固定倉位/資金管理策略 1404.2.2 漏斗形管理策略 1414.2.3 金字塔形策略 1424.2.4 馬丁策略 1434.2.5 反馬丁策略 1444.2.6 凱利公式 1444.3 事前風控 1454.4 事中風控 1454.5 事后風控 1454.6 小結 146第5章 基于指標的交易策略 1475.1 交易策略框架 1475.2 雙均線交易策略 1505.3 KDJ交易策略 1585.4 MACD交易策略 1645.5 BIAS交易策略 1695.6 布林帶交易策略 1745.7 ATR交易策略 1795.8 ADX交易策略 1835.9 Dual Thrust交易策略 1885.10 AR交易策略 1935.11 EMD交易策略 1975.12 均線排列交易策略 2035.13 R-Breaker交易策略 2085.14 超級趨勢交易策略 2125.15 布林海盜交易策略 2175.16 Hans123交易策略 2215.17 海龜交易策略 2275.18 海龜湯交易策略 2335.19 網格交易策略 2375.20 CMO交易策略 2415.21 小結 245第6章 基于模型的交易策略 2466.1 基于ARMA模型的交易策略 2466.2 基于ARIMA模型的交易策略 2546.3 基于SARIMA模型的交易策略 2616.4 基于SVM的交易策略 2676.5 基于計算機視覺的交易策略 2716.6 小結 286第7章 交易策略的集成 2877.1 策略集成的方法 2877.2 基于分類模型集成交易策略 2887.3 基于回歸模型集成交易策略 2997.4 小結 304第8章 實盤交易 3058.1 實盤交易與回測的區別 3058.2 準備工作 3068.3 運行策略 3108.3.1 基于tick數據的實盤策略 3108.3.2 基于分鐘K線數據的實盤策略 3178.4 小結 323
IV
V