序 言
為什麼寫作本書
作為投資者,我們常聽到的一句話是“不要把雞蛋放入同一個籃子中”,可見分散投資可以降低風險,但如何選擇不同的籃子、每個籃子放多少雞蛋,便是見仁見智的事情了,量化投資就是解決這些問題的一種工具。
而Python在1991年誕生,目前已成為非常受歡迎的動態程式語言,由於擁有巨量的函數庫,所以Python在各個領域都有廣泛應用,在量化投資界採用Python進行科學計算、量化投資的趨勢也越來越猛。目前各種線上策略程式設計平台都支援Python語言,例如優礦、米筐、聚寬等,這也是我們選擇Python進行量化投資的原因。
目前市場上關於Python與量化投資的圖書不少,但仔細研究後不難發現,很多圖書都是頂著量化投資的噱頭在講Python的語言基礎,其能提供的策略有限,並且大部分不提供回測平台,這種書籍中的策略常常為漲停股票可以買入、跌停股票可以賣出、停牌也可以交易,等等,這大幅違背了A股市場的交易規則,難以獲得準確的回測結果。
鑑於以上情形,為了更進一步地推動量化投資在中國的普及與發展,我們撰寫了《Python與量化投資:從基礎到實戰》一書,本書兼顧了Python語言與量化策略的撰寫,既可以為不懂Python語言的讀者提供零基礎入門,也可以為有Python基礎的讀者提供量化策略建模參考。細心的讀者不難發現,本書量化投資策略部分的介紹篇幅遠大於Python語言的介紹篇幅,這也可看出我們出版本書的初心。
如何使用本書
如果您從未接觸過Python或任何其他程式語言,則建議您從第1章開始看起,對Python基礎程式設計稍做了解;如果您已經是Python的忠實使用者,則可以從第4章開始看起,直接使用優礦平台完成對策略的撰寫。關於Python基礎部分的內容,您可自行安裝、執行Python進行學習;關於量化投資部分的內容,您需要用到優礦線上量化平台,不安裝Python也可以執行。
本書的搭配程式可以在
http://books.hcquant.com下載。
Python基礎部分的範例程式的副檔名為.ipynb,是Jupyter Notebook檔案,可以直接用Python開啟執行;量化投資部分的範例程式的副檔名為.nb,需要上傳到優礦的Notebook執行。
本書講了什麼
本書分為兩大部分,共有7章,前3章為Python基礎部分,可以幫助讀者快速上手Python;後4章為量化投資部分,借助通聯資料優礦平台進行資料處理與策略建立,將各種策略程式直接開放原始碼,並且對各種策略進行了介紹與點評,可謂本書的精華部分。
第1章為準備工作,主要介紹Python的安裝與常用的函數庫,尤其是在量化投資領域會使用到的資料分析函數庫。
第2章介紹Python的基礎操作,為後續說明Python量化投資做準備,等於從零開始說明,可在短時間內快速上手Python程式設計。
第3章說明Python的進階內容,在第2章的基礎上詳細介紹NumPy、Pandas、SciPy、Seaborn、Scikit-Learn、SQLAlchemy等經典函數庫,是對前兩章的昇華和應用。
第4章說明常用金融資料的取得與整理,包含資料整合、資料過濾、資料探索與清洗、資料轉化,等等。
第5章介紹通聯資料回測平台,內容有關回測平台函數參數介紹、股票/期貨範本實例說明、回測結果分析、風險評價指標與回測細節的注意事項。
第6章說明常見的量化策略及其實現,內容有關企業輪動、市場中性Alpha、大師類別策略、CTA策略、Smart Beta、技術指標類別策略、資產設定、時間序列分析、組合最佳化器、期權策略等。程式全部公開,您可在短時間內使用我們的策略範本撰寫適合自己的策略。
第7章列出了10道自問自答題目,可便於您在短時間內更進一步地了解量化投資,希望對您做投資有所幫助。
繁體中文版說明
本書原作者為中國大陸人士,投資標的物也多為中國股市,為避免出現程式及內容之誤植,全書圖示及程式碼均保持簡體中文,請讀者對應書中內容閱讀。