【金融量化】為什麼是Python?
昨天,在朋友圈轉發了一篇文章。同時摘取了文章最後一句話做了標註:「在未來,很可能一群把Python語言玩弄在鼓掌之間的人,將成為金融界的新星。」很快,便引來了碼農界和金融界朋友們的紛紛點贊,同時,歡呼聲、懷疑聲與質疑聲在朋友圈裡喧囂塵上。
先來看看大家對昨天轉發過來的那句話的反應。
截取部分評論和帶有主觀意見的轉發:
我個人對這個觀點其實持低調溫和贊成的態度:-)。所以,趁今晚有點時間在睡覺之前,給大家講講為啥Python在金融量化方面具有的一些先天的優勢。
我是一個有10年Java和其它語言開發經驗的程序員,最近兩三年才開始用Python。其實也是因為金融,尤其是金融數據才用上了Python,雖然對Java很有感情,但是一用Python就再也不想換回去。(特定應用場景除外)
這裡不想引起哪個語言好的討論,只想說說Python在金融領域應用的現狀,大家自己拿捏判斷。要不然又要出現類似「PHP是世界上最好的語言」的撕逼大戰了。哈!
Python在量化領域的現狀
就跟javascript在web領域無可撼動的地位一樣,Python也已經在金融量化投資領域佔據了重要位置,從各個業務鏈條都能找到相應的框架實現。
我們拿上一篇文章的圖再來看看,在量化投資(證券和比特幣)開源項目里,全球star數排名前10位裡面,有7個是Python實現的。從數據獲取到策略回測再到交易,覆蓋了整個業務鏈。
而全球註冊用戶數最多的商業量化平台Uqer優礦,也同樣是基於Python實現和提供服務的。國內後來的其他量化平台,例如ricequant和joinquant,也主推Python環境。可見Python在量化平台應用的絕對佔有程度。
為什麼是Python?
Python是一門比較全面與平衡的語言,既能滿足包括web在內的系統應用的開發,又能滿足數據統計分析等數學領域的計算需求,同時也能作為膠水語言跟其它開發語言互通融合。
在數據分析方面,沒有其他語言能像Python這樣既能精於計算又能保持性能,對於時間序列數據的處理展現了簡單便捷的優勢。而如此適用的特點,主要得益於有如下框架和工具的支持:
Numpy:底層基於C實現的科學計算包
- 具有強大的N維數組對象Array
- 具有數據廣播功能的函數庫
- 具有完整的線性代數和隨機數生成函數
SciPy:開源演算法和數學工具包
- 最優化線性代數、積分、插值、特殊函數
- 快速傅里葉變換
- 信號處理和圖像處理
- 常微分方程求解
- 其他科學與工程中常用的計算
其功能與Matlab和Scilab等類似
Pandas:起源於AQR的數據處理包,具有金融數據分析基因
- 基於Series、DataFrame和Pannel多維表結構數據
- 數據自動對齊功能
- 數據清洗和計算功能
- 時間序列數據快速處理功能
Matplotlib:基於Python的數據繪圖包,能夠繪製出各類豐富的圖形和報表
另外,Python在機器學習領域的應用也越來越多,其中的開源的項目包括了scikit-learn、Theano、Orange等。
Python的特點
1、簡單易學Python是一門簡單而又簡約的語言。閱讀好的Python程序感覺就像閱讀英語。Python非常容易上手,學習曲線比較平緩。
2、高級語言垃圾自動處理且面向對象的高級語言。Python 具備所有腳本語言的簡單和易用性,並且具有在編譯語言中才能找到的高級軟體工程工具。
3、擴展移植可與其他語言無縫對接並能實現跨平台
4、開源項目只要能想到的,幾乎都有現成的包能找到
Python金融書籍
目前市面上已經出現了不少針對金融領域數據分析和量化的書籍,有了這些書籍,實現金融數據處理完成量化投資分析便容易多了。
金融領域主要的Python書籍:《Python for Data Analysis》
《Python for Finance》《Mastering Python for Finance》《Maching Learning in Action》
----------------------
喜歡就關注,持續更新。
作者:挖地兔
個人公眾號:挖地兔
出處:挖地兔的博客專欄
最近很多人私信問我問題,平常知乎評論看到不多,如果沒有及時回復,大家也可以加小編微信:tszhihu,進知乎大數據分析挖掘交流群,可以跟各位老師互相交流。謝謝。
推薦閱讀:
※樹懶之書-朝聖者:好萊塢編劇的小說作品
※QR讀書會-書單推薦和問答--來自藍田
※2016上半年我讀的一百本書
※你被地圖炮過嗎? | 章魚讀書群出品