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