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