【金融量化】為什麼是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上半年我讀的一百本書
你被地圖炮過嗎? | 章魚讀書群出品

TAG:Python | 量化 | 书籍推荐 |