1. 專欄目標(biāo)
量化交易以計(jì)算機(jī)強(qiáng)大運(yùn)算能力為基礎(chǔ),運(yùn)用數(shù)據(jù)建模、統(tǒng)計(jì)學(xué)分析、程序設(shè)計(jì)等工具從歷史數(shù)據(jù)中得到大概率下獲利的交易策略。未來量化交易必定是金融市場的一大發(fā)展趨勢,Python 作為金融行業(yè)的標(biāo)準(zhǔn)編程語言廣泛應(yīng)用在量化交易領(lǐng)域,它與量化交易堪稱完美組合。初學(xué)者進(jìn)階量化交易應(yīng)當(dāng)是個(gè)循序漸進(jìn)的過程,基于此,筆者將量化交易學(xué)習(xí)分為基礎(chǔ)階段、中級(jí)階段和高級(jí)階段:
-
基礎(chǔ)階段側(cè)重于對量化交易的理解及各種基礎(chǔ)工具的應(yīng)用
-
中級(jí)階段側(cè)重于掌握各種經(jīng)典的技術(shù)指標(biāo)及基礎(chǔ)交易策略的實(shí)現(xiàn)
-
高級(jí)階段側(cè)重于從實(shí)戰(zhàn)層面去設(shè)計(jì)量化交易系統(tǒng),開發(fā)選股、擇時(shí)、風(fēng)險(xiǎn)控制等策略模塊
本專欄中旨在將基礎(chǔ)和中級(jí)階段內(nèi)容整體結(jié)合,以股票為交易標(biāo)的物,以搭建自己的量化交易為學(xué)習(xí)場景,從理解量化交易開始,逐步掌握基礎(chǔ)工具、實(shí)現(xiàn)交易策略,為高級(jí)階段開發(fā)實(shí)戰(zhàn)型量化交易系統(tǒng)奠定基礎(chǔ)。課程在功能實(shí)現(xiàn)過程中講解技術(shù)內(nèi)容,由淺入深、由技術(shù)到思維地為讀者剖析量化交易的難點(diǎn),不僅達(dá)到學(xué)習(xí)的目標(biāo),更為今后從事量化交易投資打下堅(jiān)實(shí)的基礎(chǔ)。
2. 學(xué)習(xí)內(nèi)容
1、深入理解量化交易的本質(zhì)、發(fā)展、優(yōu)勢、意義和過程。
2、掌握基礎(chǔ)工具的使用方法,如 Python、Pandas、NumPy、Matplotlib、TA-Lib、Tushare、Statsmodels 和應(yīng)用數(shù)學(xué)等。
3、掌握常用的金融交易技術(shù)指標(biāo)實(shí)現(xiàn)方法,如 K 線、均線、成交量、KDJ 等。通過學(xué)習(xí),我們能夠繪制出股票行情軟件中的分析界面以捕捉個(gè)股動(dòng)向,效果展示如下圖所示:
4、掌握常用的量化交易策略的實(shí)現(xiàn)方法,如擇時(shí)、選股、風(fēng)險(xiǎn)控制、度量等。通過學(xué)習(xí),我們可以制定量化交易策略以及度量策略效果,應(yīng)用交易策略來輔助股票交易,效果展示如下圖所示:
5、掌握量化交易系統(tǒng)人機(jī)交互的實(shí)現(xiàn)方法,以制作自己的量化交易工具為背景將本專欄知識(shí)點(diǎn)貫穿匯總,呈現(xiàn)整體的交易工具雛形,效果展示如下圖所示:
3. 適合人群
本專欄由初級(jí)入門為起點(diǎn)進(jìn)階量化交易,僅需讀者具備 Python 編程基礎(chǔ)即可。專欄中會(huì)從基礎(chǔ)開始由淺入深講解所涉及的知識(shí)點(diǎn),因此讀者無須擔(dān)心專欄內(nèi)容的學(xué)習(xí)難度,更多的是要明確自己的學(xué)習(xí)目的,本專欄適合以下人群:
-
對金融量化交易具有濃厚興趣的人群
-
計(jì)劃開發(fā)屬于自己的量化交易系統(tǒng)的人群
-
準(zhǔn)備從事金融量化交易領(lǐng)域投資的人群
4. 學(xué)習(xí)目的
學(xué)習(xí)量化交易這門課程有什么作用呢?首先 Python 只是一門技術(shù),最終還是要將這門技術(shù)應(yīng)用到一個(gè)行業(yè)中的,而量化交易這個(gè)行業(yè)目前正處于快速發(fā)展階段,對人才的需求非常大,特別是對具備一定量化交易背景的人才,本專欄整體的學(xué)習(xí)可以讓大家對量化交易這個(gè)領(lǐng)域有一個(gè)深入的了解,對于準(zhǔn)備跨入量化交易領(lǐng)域的同學(xué)有所幫助。另外本專欄會(huì)涉及大數(shù)據(jù)分析、數(shù)學(xué)建模一些思想,以及一些 Python 第三方庫的講解和編程教學(xué),這些技術(shù)是可以在相關(guān)的領(lǐng)域去應(yīng)用的,對于準(zhǔn)備從事大數(shù)據(jù)分析和人工智能領(lǐng)域的同學(xué)同樣有所啟迪。最重要的是對于和我一樣喜歡股票投資、期貨投資這類交易的金融愛好者來說,將量化交易輔助主觀交易,通過設(shè)計(jì)一些股票或者期貨的交易策略,能夠在金融市場上有所收獲,為自己拓寬投資理財(cái)?shù)那篮头椒ā?/p>
5. 大綱介紹
本專欄大綱以量化交易的整體流程結(jié)合由淺入深的學(xué)習(xí)過程進(jìn)行設(shè)計(jì)和制定。
量化交易的整體流程如下圖所示:
首先是把歷史行情、基本面信息、新聞資訊等數(shù)據(jù)進(jìn)行初步清洗和處理,而后輸入到量化模型中,量化模型包括了數(shù)學(xué)建模、編程設(shè)計(jì)等工具所形成的交易策略,通過分析這些數(shù)據(jù)最終產(chǎn)生出交易的信號(hào),比如買什么股、什么時(shí)候買、買多少、什么時(shí)候賣等信息。當(dāng)然實(shí)際上這個(gè)過程并沒有流程圖顯示的那么簡單,這里只是讓大家有個(gè)整體的概念。
分解量化模型可以看到模型是通過各種策略來實(shí)現(xiàn)的,常見的策略有均線策略、Alpha策略、布林帶策略、海龜策略、動(dòng)量策略等等,也包括自主開發(fā)的策略,不過要良心的聲明下凡是公開的、用的人多的策略,基本也就不賺錢了,當(dāng)然并不影響我們學(xué)習(xí)這些策略從中借鑒其中的精髓,站在巨人的肩膀上看問題。策略層再往下分解則是我們熟悉的 Python、Pandas、Matplotlib、NumPy、統(tǒng)計(jì)學(xué)、數(shù)學(xué)模型這些基礎(chǔ)工具。我們會(huì)講解Pandas、NumPy、TA-Lib 等專用庫實(shí)現(xiàn)股票交易策略的設(shè)計(jì),也會(huì)講解使用 Matplotlib 庫實(shí)現(xiàn)股票交易的可視化圖形,同時(shí)在交易策略設(shè)計(jì)中會(huì)講解數(shù)學(xué)模型、統(tǒng)計(jì)學(xué)相關(guān)的知識(shí)。
數(shù)據(jù)是量化策略的基礎(chǔ),關(guān)于數(shù)據(jù)的獲取,我們會(huì)講解使用 Tushare、Pandas 數(shù)據(jù)抓取模塊來獲取金融數(shù)據(jù),也會(huì)介紹 Pandas、NumPy 庫對原始數(shù)據(jù)進(jìn)行規(guī)整化的處理。
為了將專欄中分散的知識(shí)點(diǎn)貫穿起來,最后會(huì)講解如何制作一個(gè)簡易版的量化交易小工具,希望通過這部分內(nèi)容使大家能夠?qū)α炕灰紫嚓P(guān)的知識(shí)有更整體的掌握。
以上是對本專欄整個(gè)大綱體系的構(gòu)思。
大綱的章節(jié)內(nèi)容分布如下圖所示。
對于基礎(chǔ)工具部分的學(xué)習(xí)需要聲明一下,由于本專欄的主題更側(cè)重于基礎(chǔ)工具在實(shí)際場景的應(yīng)用,因此提取基礎(chǔ)工具在量化交易應(yīng)用中的重點(diǎn)和難點(diǎn)進(jìn)行針對性介紹,而對于像 Python 中常用語法、函數(shù)等使用方法的知識(shí)內(nèi)容建議同學(xué)們結(jié)合網(wǎng)絡(luò)或者書籍查閱來輔助學(xué)習(xí)。
關(guān)于 TA-Lib、Tushare 之類的工具庫本身的優(yōu)勢即是提供簡單的 API 供使用者調(diào)用,我們的講解也是圍繞著實(shí)際應(yīng)用場景,在交易策略設(shè)計(jì)中進(jìn)行詳細(xì)介紹。
當(dāng)前的交易策略各式各樣、種類繁多,有的高深,有的簡單,在本專欄中,筆者選擇了一些典型的、有助于我們更好理解和掌握量化交易的策略進(jìn)行詳細(xì)講解。
此外,為了幫助同學(xué)們更輕松地學(xué)習(xí),筆者會(huì)結(jié)合專欄內(nèi)容,陸續(xù)推出一些量化交易相關(guān)的手記,如果你有其他想要進(jìn)一步了解的知識(shí)點(diǎn),也歡迎踴躍留言,筆者會(huì)參考并選擇性地作些補(bǔ)充。目前已經(jīng)推出以下手記,可在相關(guān)章節(jié)進(jìn)行延伸閱讀。
- 管理概率==理性交易(對應(yīng)第 2 節(jié))
- 線性回歸擬合股價(jià)沉?。▽?yīng)第 22 節(jié))
- 最大回撤評價(jià)策略風(fēng)險(xiǎn)(對應(yīng)第 18 節(jié))
- 尋找最優(yōu)化策略參數(shù)(對應(yīng)第 19 節(jié))
- 標(biāo)記 A 股市場漲跌周期(對應(yīng)第 15 節(jié))
- Tushare Pro 接口介紹(對應(yīng)第 15 節(jié))
6. 課程環(huán)境
本專欄全部的例程都分別在 Python 2.7.5 和 Python 3.7.1 上通過調(diào)試,以適應(yīng) Python 2 和 Python 3 的學(xué)習(xí)環(huán)境,對于 Python 2.7.5 和 Python 3.7.1 之間的語法變動(dòng),我們會(huì)在對應(yīng)的例程中說明,比如提示在 Python 3.7.1 中必須調(diào)用 print()
函數(shù)用于打?。ㄗ⒁鈭A括號(hào))。
第三方庫依賴于某個(gè) Python 版本,需要在對應(yīng)的 Python 版本下安裝pandas、Tushare、TA-Lib、Matplotlib、Statsmodels 等工具庫。我們可以使用 pip 安裝包管理工具安裝,也可以下載源碼文件,在當(dāng)前位置執(zhí)行python setup.py install
安裝。對于第三方庫的調(diào)整筆者也會(huì)在使用時(shí)提示,比如從 Matplotlib 2.2.0 版本開始,matplotlib.finance
已經(jīng)從 Matplotlib 中剝離了,需要單獨(dú)安裝 mpl_finance
這個(gè)庫(pip install mpl_finance
)。
當(dāng)然,建議最好是安裝 Anaconda 來管理 Python 環(huán)境。Anaconda 具有跨平臺(tái)、包管理、環(huán)境管理的特點(diǎn),無論在平臺(tái)兼容性還是庫版本兼容性上都更有保證。大家可以參考筆者在慕課網(wǎng)手記板塊的文章《Python基礎(chǔ)系列講解-安裝步驟》來搭建開發(fā)環(huán)境。