1. 程式人生 > >【Python金融量化】零基礎如何開始學?

【Python金融量化】零基礎如何開始學?

內容來自:微信公眾號:python金融量化
關注可瞭解更多的金融與Python乾貨。

Python可以說是當前非常流行的程式語言,甚至有點“網紅”的感覺。網上還流行一句話“Life is short, I use Python”(人生短暫,我用Python)。Python是一種非常高階的動態程式語言(其表達更接近自然語言),語法很簡潔,比如,完成同一個任務,C語言要寫1000行程式碼,Java只需要寫100行,而Python可能只要20行。Python某種程度上類似於matlab和SAS和R語言,結合python的幾種強大的科學計算類庫:NumPy(陣列、矩陣、線性代數)、Pandas(資料處理和分析庫)、SciPy(統計運算)、SymPy(符號運算庫)、matplotlib(繪相簿)、Traits(程式介面庫)等,可以近似地替代matlab、Java、R和SAS等。

我們來看下這幾種常用的程式語言在微信上的搜尋指數對比,可以一定程度上反映出大家的關注度。顯然,Python的搜尋指數在最近的三個月內一直是最高的。

在這裡插入圖片描述

Python之所以這麼流行,主要是因為對於初學者和完成普通任務,Python語言是非常簡單易用的。但是,在非常高的抽象計算中,高階的Python程式設計也是非常難學的。鑑於很多關注本公眾號的朋友在後臺回覆“Python入門”,覺得有必要寫一寫對於零基礎接觸Python應該如何學習Python?下面結合個人經驗分享下Python做金融量化和資料分析的學習路徑。

01確立學習目的
在學習Python之前,一定要想清楚為什麼要學習Python?學習Python的目的是為了要學會運用這門語言來解決實際問題。但Python的應用方向實在太廣了,在Python基礎知識學完之後,如果應用方向不同,要學習的東西也會大不同。比如你要用Python做資料分析和金融建模,學完Python基礎知識,然後就跑去學django、flask框架和web開發。這個道理,就跟我們想要去上海,肯定不會買去北京的機票一樣。但是不得不承認,還是會有人犯迷糊,上來就開幹。

個人經驗
我學習Python,是因為它在資料分析和金融量化分析方面具有強大功能而且免費,基本涵蓋了“資料獲取、資料處理、資料分析、資料視覺化”所有環節,在寫論文和實際工作中用處十分大。

02規劃好學習路徑

當確定好學習的方向和目的後,下一步驟就是順著這個方向,建立好自己的學習路線圖,形成一個系統性的邏輯主線,能讓自己知道每個部分需要完成的目標是什麼,需要學習哪些知識點,哪些知識是暫時不必要的。特別是我們身在職場,大多時候是沒有很大塊的時間來集中學習的。學習時間被分割在了一些碎片化的時間裡。在碎片化的時間裡,系統性的學習一門知識,更需要有一個貫穿前後,系統的邏輯主線,來串聯所有相關碎片化的時間的學習。

個人經驗
當我確定好學習Python的資料分析和金融量化投資的方向後,就按照“基礎知識、資料爬取、文字分析、金融量化、機器學習、深度學習”,給自己建立了學習路線圖:
(1)Python基礎知識
(2)金融量化常用庫學習
如:Numpy、Pandas、Scipy、Matplotlib等
(3)爬蟲基本知識+財經網站資料開源庫
如:Scrapy、tushare、baostock等
(4)文字分析(NLP處理、詞雲分析、jieba分詞)
(5)機器學習(sklearn)
(6)深度學習(TensorFlow)
建議安裝anaconda,自帶Jupyter Notebook和Spyder。個人比較喜歡使用Jupyter Notebook來互動執行python程式,公眾號上的文章和程式碼也都是使用它來完成的,文字使用md編譯。至於Python基礎,個人推薦看廖雪峰Python3入門教程(百度搜索)。

03建議幹中學
以解決學習或工作中的實際問題為指導原則。在學習和工作中,需要的更多的是一種解決問題的系統性思維。很多人會問,有沒有什麼快速入門的教程之類的,其實沒有什麼牛逼的事情是能夠速成的,越是底層的、收益週期越長的技能越是這樣。“大道甚夷,而人好徑,終為所誤”。總會在踩了無數的坑後,才恍然大悟:捷徑往往是最長的彎路。學習Python,對於零基礎的人在短時間內入門,還是比較容易的,但是從要進階為高手,沒有長時間的投入和練習,基本上是異想天開。

推薦資源
國內線上量化平臺:
BigQuant - 人工智慧量化平臺 - 可以無門檻地使用機器學習、人工智慧開發量化策略
https://bigquant.com/
優礦 - 通聯量化實驗室
https://uqer.io/

國外量化平臺:
Quantopian 研究、回測、演算法眾包平臺
https://www.quantopian.com/

開源框架
Pandas - 資料分析包
Zipline - 一個Python的回測框架
vnpy - 基於python的開源交易平臺開發框架
tushare - 財經資料介面包
easytrader - 進行自動的程式化股票交易
pyalgotrade - 一個Python的事件驅動回測框架
pyalgotrade-cn -整合了tushare提供實時行情。
zwPython - 整合式python開發平臺
quantmod - 量化金融建模
rqalpha - 基於Python的回測引擎
quantdigger - 基於python的量化回測框架