willbillionquant
willbillionquant

量化交易者, 數學愛好者, 歷史閱讀者, 籃球觀摩者 Medium: https://medium.com/@willbillionquant Patreon: https://www.patreon.com/willbillionquantsight FB: https://www.facebook.com/willbillionquant

2020年度量化 / 程式 / 交易書籍分享

記得自己去年三月開始成立 Willbillion Facebook page 時, 我開宗明義用 Medium 寫第一篇文章就是一個閱讀書單:

我的量化交易閱讀清單 My Favorite Reading List on Quantitative Trading

不過後來就沒有多加修繕說明. 現在已經年尾, 大家或許都已"收爐", 假期又因為疫情緣故不能像往年多姿多采, 在家靜修讀下書自我增值就最好不過.   因此我決定再從中精選某些親自讀過有良好體會的書籍, 向各位朋友推介一下. 我會把推介書籍分做幾類.


量化交易綜論 General Theory on Quant / Algorithmic Trading

Kevin Davey, Building Winning Algorithmic Trading Systems

第一本首要推崇, Kevin Davey 曾經三度蟬聯世界期貨大賽 (World Cup of Futures Trading Championships)冠軍 (!), 這可是真金白銀每年賺100%+, 而且還要全程運用自家製的程式交易系統!! 在Building Winning Algorithmic Trading Systems 這本書他解釋每一個組件部分非常細緻. Part 2 的交易系統評估與 Part 3 的策略構建絕對值得完整細讀, 特別是第4章如何籌備專職交易, 第6與7章的評估程序, 第10章交易策略的完整組成, 第12章的初步測試, 第16章的資金管理, 第15章的資本曲線 (Equity Curve)金睛火眼, 都是精髓. Part 5 與 6則是探討實戰與心理層次試煉, 如何考慮是否值得信任一個系統, 如何持續監控, 我也要抓緊時間趁這個假期認真閱讀檢討自身.

Ernie Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business

Ernie Chan 曾在 IBM 任職機器學習 (Machine Learning)專家, 後來離職並全職進行程式交易, 現在有了自己的全自動運營之對沖基金 (QTS Capital Management, LLC.) , 以及一個推廣機器學習的教學網站 (PredictNow.ai Inc.), 他的量化交易課程也有在 Quantinsti 上架 (例如 Mean Reversion Strategies In Python). 他在量化交易教育界的名聲卓著, 而且好像還是香港人喔~~~

三部曲第一本 Quantitative Trading: How to Build Your Own Algorithmic Trading Business, 應該最易入口, 單從書名就可以體會到 Ernie Chan 把算法交易提升到運營生意的層面. 如果是算法交易的初手, 單看這本書已經能詳盡理解到幾個中後期關鍵組成部分: 資本與技能評估, 統計程式回測 (Backtesting), 自動執行系統 (Automatic Execution Systems), 資金與風險管理 (Capital & Risk Management). 至於策略構建部分, 本書沒有太多著墨, 主要是探討某些魔鬼細節的影響如 倖存者偏差 (Survivorship Bias), 交易成本 (Transaction Costs), 後視偏差 (Forward Looking Bias) 等. 而第七章就已經直入某些需要相當統計基礎以及 MATLAB 程式語言的策略, 例如 周期交易 (Seasonal Trading) 以及 因子模型 (Factor Model), 大家或者會覺得突然難以適應, 不妨可以初讀時skip. 

Ernie Chan, Algorithmic Trading: Winning Strategies and Their Rationale

三部曲第二部 Algorithmic Trading: Winning Strategies and Their Rationale, 就補足第一部在策略構建的探討, 深入講述兩大類策略, 就是均值回歸策略 (Mean Reversion Strategies, 例如保利加通道回歸均線策略), 以及動量策略 (Momentum Strategies, 例如追創新高股份).  均值回歸足足用了四個chapter, 既裝備了諸如 ADF test 的均值特徵測試, 也解說了不同資產品種 (FX, 股票/ETF) 以及不同操作風格的實行, 其實也需要一邊學習比較深入的數學理論如 Kalman Filter, 已經顯出了陡峭的學習曲線.  MATLAB 的商用版本所費不菲, 不過已經有有心人 把書中的MATLAB implementation 改造為 python 版本 (https://github.com/zazhang/ep-chan-book-algo-trading) . 我也是Python 為主力, R與 MATLAB 都只是略懂而已, 這個 Python 版的Ernie Chan projects 我也是忙裡偷閒學習中. 

至於 第三部 Machine Trading Deploying Computer Algorithms to Conquer the Markets 就已經再深入若干層次, 把 Time Series Analysis (TSA), 人工智能 (AI) 這些數據科學專題以及即市 Order Flow 等"密技" 祭出來, 第二本如果消化不到的話這本也難以企及.  有趣的是Dr. Chan 居然有講 Bitcoin!! 哈哈, 我現在只是佛系持有 BTC, 沒有他那麼高大上啦~~~


特製平台語言 Proprietary Platforms

一般程式交易初學者, 如果之前沒有至少一種通用語言 (generic programming language, e.g. Python, Java, C++) 的編程基礎, 要從頭到尾DIY一個完整的程式交易流程是非常困難的, 特別是Debugging, 稍一不慎極易全軍覆沒. 我也經歷了這個階段. 市面上有些特製平台, 就是專為我們這類人士而設, 最優秀的當屬 TradeStation 團隊分支出來研發的 Multicharts (MC) 以及其背後的腳本語言 Easylanguage.

George Pruitt & John R. Hill, Building Winning Trading Systems with Tradestation

George Pruitt (http://georgepruitt.com/) 是期貨雜誌 Futures Truth 的研究部主管. Easylanguage 或者 Powerlanguage 基本上是同一類腳本語言, 前者運作在 TradeStation, 後者則在 MC. Building Winning Trading Systems with Tradestation 這本書並不是 Easylanguage 的百科全書, 而更加是 Tradestation/MC 共有分析工具以及策略開發的某些精闢要點. 第五章闡述如何精細閱讀 一份 Tradestation/MC 策略回測報告, 而 第六章與第八章則是運用 Easylanguage 去構建某些不同複雜程度的交易策略或者統計分析. 不要預期這些策略能夠直接應用在自己想交易的市場上, 而是學習如何建構 (structure) 一個完整的交易邏輯, 而 Easylanguage 已經盡可能方便地把策略的英文表述 直接編譯 (compile) 出來, 成為可以直接進行自動交易的程式文件. 但許多深入的MC 組件, 包括自動化交易工具, Portfolio Trader (多策略綜合管理), QuoteManager (數據管理) 都沒有探討. 這就要自己摸索或者往某些國際或台灣網絡論壇偷師學習了, 我或許以後也會研討一下這些課題.

張林忠, 分析師關鍵報告2:張林忠教你程式交易

張林忠先生是台灣MC程式交易界的大師級人物, 分析師關鍵報告2:張林忠教你程式交易 這本書是中文書, 集中教授好幾類傳統技術指標: MACD, RSI, KD (/Stochastics 隨機震盪指標), ADX/DMI, CCI 某些可行的交易邏輯, 如何通過回測與不斷微調程式邏輯改善績效, 而後者則是從發掘可行優勢特徵到構建出嚴密的交易程式的必經之路. 不過此書集中研究台灣指數期貨市場, 某些如法人籌碼策略就不能照搬來香港或國際期貨市場. 


編程語言與數據科學 Programming Language & Data Science

MC 一般只能方便處理完全基於資產OHLC價格的交易策略, 如果需要運用多方面額外數據源 (e.g. 新聞, 業績數據, 隨機模擬), 或者涉及多資產篩選策略 (e.g. 筆者的 gold21 & mxshp 選股策略), 或者進階數據科學技術 (e.g. Decision Tree / Random Forest), MC就非常笨重甚至不可行.  因此Python 這類充分整合數據科學工具的編程語言就非常適合, 另外有意向institutional trading 發展的朋友或者也會同步學習 Java 或者 C#. 

Yves Hilpisch, Python for Finance

Python for Finance 這個標題足夠吸睛, 同樣標題的書也有好幾本, 我自己最推薦 O'Reilly 系列裡面 Yves Hipslich 所寫的這一本. 從Python零基礎學習也可以, 第2章與第4章就是從安裝 Anaconda Python 3.x 到處理各類data type 的基本python 語法. 而後第5-10章就是入手 NumPy, Pandas, Matplotlib, Scipy 這幾個最普遍的數據科學package , 從而執行 數據可視化 (Data Visualization, Ch.5), 處裡金融數據序列 (Financial Time Series, Ch.6), 數據處理 (Data Processing, Ch.7), 機率分布/隨機模擬 (Random Variables & Simulation, Ch.10). 一邊閱讀, 一邊開著 Jupyter notebook 或者 VScode / Spyder 這類 IDE 去做hands-on, 持續有效學習, 過兩三個月便可初步動手打造自己的金融數據分析project, 甚至是筆者Patreon 的大部分策略用上述章節介紹的技巧已經可以DIY出來, 順便也可以學習統計學方法論. 

Al Sweigart, Automate the Boring Stuff with Python

Automate the Boring Stuff with Python 絕大部分沒有直接關連到金融數據分析, 但是幫助新手階段迅速能夠自動化處理許多日常沉悶的工序, 比如爬網站抓取數據 (Web Scraping), 遙控編輯 excel/word/pdf 文件, 發送email, 能夠馬上提升大家學習 python 的成功感, 而且程式交易不少程序也可以用到這類"初等"任務, 比如持續通知自己新的策略訊號 (email/telegram/...), 定時執行數據更新任務(task scheduling of data updates) 等等. 

scipy-lectures.org, Scipy Lecture Notes

Scipy Lecture Notes這套講義可以直接在https://scipy-lectures.org/ 下載 , 囊括了從 python 基礎到 Pandas / Scipy / Sklearn 的多項專門技術, 把它當作工具書就好, 要用到的範疇直接跳去閱讀相關章節就好. 


深度思維的養成 Self-enrichment on your own mindset

以下的書籍有各自的著重點, 可以培養對提升交易水平極為有用的思維.

Mark Minervini, Trade like a Stock Market Wizard

Mark Minervini 雖然是discretionary trader, 但卻是王者中的王者, 曾經創出5年回報330倍的驕人戰績, 以及多次美股投資大賽的冠軍. 他師從 Stan Weinstein, 專注操作美股, 而他的操作方法論也持續不衰, 華人世界也開始多有普及他的方法論. Minervini 的三本著作, Trade like a Stock Market Wizard 我認為最能匯聚了他的方法論精華, 交易新手可以遵循他的流程, 首先掌握美股基本面資訊解讀, 比較關鍵的是他的趨勢模板 (trend template), 是絕對機械邏輯的篩選, 已經有坊間excel 甚至python 高手code 出來了. 最後兩章有關 風險與資金管理的部分, 也是我佩服這位大師的地方, 他雖然不是理工科出身, 卻肯刻苦鑽研, 並結合實戰經驗, 深刻道出風險管理科學的種種精要, 例如期望值管理與 Kelly criteria 暗示的下注方案. 

Nassim Nicholas Taleb, Fooled by Randomness & Black Swan

Nassim Nicholas Taleb 這位猶太人統計學教授, 開創了"黑天鵝"股市肥尾事件投機的 學派, 在1987年黑色星期一暴賺幾百倍成名, 2008年金融海嘯, 以及今年三月肺炎股災, 他的學派掌管的相關黑天鵝基金也大有斬獲.  Taleb 教授的兩本科普著作, Fooled by Randomness: The Hidden Role of Chance in Life and in the Markets (中文版: 隨機致富陷阱)  以及 Black Swan: The Impact of the Highly Improbable (中文版: 黑天鵝) , 仔細針對我們人族不擅長機率型思考的盲點.  兩本書我都翻看了兩次. 

<隨機致富陷阱> 聚焦於倖存者偏差 (survivorship bias) , 牽涉的例子從打出莎翁全集的猴子, 到股市裡面的暴發現象, 認真地跟隨作者思維去思考, 我們會對於市場更多的敬畏, 更加警醒自己操作方法論的潛在危機. 而 <黑天鵝> 就是糾正某些過度理想化的操作假設, 例如過度依賴隨機漫步假設的操作部署, 極容易在遠超理論預期的不利事件中崩潰, LTCM 以及今年肺炎股災的某些逆勢部署便是明證. 其實 Taleb 教授近年還有一本學術著作 Statistical Consequences of Fat Tails , 就是長篇大論的黑天鵝統計理論, 我資質與時間都有限, 看了十分之一就放下了.

Michael Halls-Moore, Successful Algorithmic Trading & Advanced Algorithmic Trading

本文最後一個推介系列是 創立 www.quantstart.com 量化交易教育網站的 Michael Halls-Moore 所著作的 兩本書: Successful Algorithmic Trading 以及 Advanced Algorithmic Trading. 作者在一所英國based 的 量化策略基金 (Quant fund) 擔任 Quantitative developer. 而 Quantstart 文章系列 則長期是我的精神食糧, 免費文章涵蓋的專題跟 Ernie Chan 不相伯仲, 不過 Quantstart 主要是用 Python 以及 C++ 開發.  兩本著作有很多都是免費文章改編, 但是顯得更有條理, 而且可以按照個人需要去選取章節學習. 

第一本書 跟 Ernie Chan 第一本類似, 而 part 4 modelling 和 part 6 自動化交易 (python-based) 是比較hard-core 的開發工序. 第二本的策略開發工序則分兩類, 一類是典型的quant finance 範疇的如 ARIMA/GARCH model 與 Time Series Analysis, 另一類更重分量的是機器學習的不同方法論, 如 貝氏統計學 (Bayesian inference) , 決策樹方法 (Decision Tree), 自然語言處理 (Natual Language Processing, NLP), 甚至 投資者情緒分析 (Sentiment Analysis) 以及 Hidden Markov Model (HMM). 我只能因應自己的開發進度挑著來試著學習若干方法. 作者開發的QSTrader package 我還沒有時間download 來試試....


好啦已經介紹了12本書, 太長了, 下年再推介其他更精闢的書籍以及資源吧~~~

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论