Python 在金融領域的主要應用是什麼?有哪些分類以及什麼類型的金融公司會來應用?
python是一種動態編程語言,語法很簡潔,某種程度上類似於matlab和SAS,結合python的幾種強大的科學計算類庫:NumPy(主要是數學基礎方面的)、SciPy(數值計算上很強大,包含NumPy)、SymPy(符號運算庫)、matplotlib(繪圖庫)、Traits(程序界面庫)等,可以近似地替代matlab、C++和SAS三者。原因在於:
第一,python首先是一種完整的動態編程語言,雖然執行效率比不上C++,但是開發效率遠遠高於C++,學習成本較小,對於金融工程這種專業來講比C++更加合適,畢竟我們自己做模型的時候更在乎的是如何快速實現模型,而不是模型運行快幾秒鐘,當然對於金融方面的大規模產品,還是用C++更加合適,這就是程序員的事情了,我們一般不會去編寫幾萬行代碼的程序。從這個方面來講,python可以代替C++。
第二,python利用NumPy、SciPy、SymPy、matplotlib等類庫,可以完成matlab 90%以上的功能,欠缺的只是極特殊的函數。而且這些都是免費的,中國現在雖然盜版很嚴重,但是明顯正在向正版化的方向發展,以後誰保證能得到免費的matlab?這些類庫也在一直發展中,超過matlab只是時間問題。不僅如此,python利用它的界面庫做程序界面是非常方便的,用的VB的都還記得可視化編程的爽快,python也可以實現,而且可以實現的更好,這是matlab遠遠不足的地方。利用這個功能,我們可以用python做好程序後發布給其他人使用,就像使用word這種程序一樣,這種方便程度是目前matlab遠遠不及的。再比如我們要抓取網上的一些數據,利用matlab就比較麻煩,而利用python就極為簡單。python可以大大加快我們研究的自動化程度和簡單程度,需要的只是好好學習一段時間python而已。
第三,python代替SAS。這個方面其實python沒有明顯的優勢,在統計功能上比不過SAS,但是利用python的好處在於:我們不需要再次學習SAS語言,特別是對於金融工程專業來講,沒有那麼多時間和必要性去學習SAS,我們又不是搞專業數據統計的。SAS的大部分功能python都可以實現,不過實現起來比SAS困難一些,對於金融工程專業的人來說,選擇SAS還不如選擇python+Eviews的組合,Eviews是非常簡單,幾乎不需要學習。python的學習比較簡單,也非常值得。
選擇python的最大好處在於可以節省學習的時間,而且彈性較強,可以適應未來多變的需求。剩下的時間不如去好好研究下怎麼在金融工程理論與應用方面創新,就不需要浪費時間在學習工具上了。
另外如果需要寫爬蟲抓取金融數據的話python也是首選,推薦scrapy框架。我只能表示通過題主給的標籤來看,Python並不合適。
對面目前主流HFT來說,我還真沒見到過用Python的,應該仍以純C為主。
具體原因可以參考來自THU的HFT大神 @董可人 的回答:
Python 做高頻交易系統適合哪個級別的延遲? - 董可人的回答
如果不考慮HFT的話,我還是十分贊同 @邱賽高的回答的。
首先語言只是一個工具, 對於一個從業人員來說重要的是你掌握一種新的語言需要多少時間, 現在的街上如果你去Goldman你需要搞Slang(基本就是Python語法),去JPMorgan, BoA不管你是做core strategist(desk quant)還是中台後台都是用Python, 當然library quant還是在老老實實寫C++
非常同意前面的回答,只是對SAS作一點補充:SAS並不是其他軟體簡單意義上的統計功能強大,其數據清理,數據管理能力是所以其他軟體不能比擬的 這一點估計python加eviews難以匹敵。
至少在國際投行裡面至少有一到兩家在前中後台用python統一了生產環境的大多數系統(比如JPM的Athena)。雖說python可能速度不快,但是對於銀行和證券公司業務裡面,只有很少的組python的速度成為瓶頸,好處是可以很快產生代碼投入使用,並且也可以較容易的與已有的系統鏈接,這樣可以逐步升級。
當然還有些銀行在一些項目里使用python
可能你也知道,技術早已成為金融業的一項資產:金融交易的高速、高頻與超大數據體量結合,促使金融機構在一年一年不斷地加深對技術的關注。在今天,技術已經切實成為了金融界的一項主導能力。
預計在2020年,一年的金融服務的技術成本將達到5億美元。正值系統需要維護和不斷升級的時候,一些著名的銀行僱傭一些開發者是很正常的事情。那麼Python用在哪裡呢?
Python的語法很容易實現那些金融演算法和數學計算,每個數學語句都能轉變成一行Python代碼,每行允許超過十萬的計算量。
沒有其他語言能像Python這樣適用於數學,Python精通於計算,以及數學和科學中的排列組合問題。Python的第二個特性是表示數字,序列和演算法。
比如SciPy庫,很適合用來做技術領域和科學領域的計算,SicPy庫被很多工程師,科學家和分析人員使用。NumPy,也是Python的一個擴展,它可以很好地處理數學函數,數組和矩陣。同時,Python也支持嚴格的編碼模式。
使用更少的人達到相同的結果以及實現其他編程語言不能實現的事,是Python首要的優點。Python語法的精確和簡潔,以及它大量寶貴的第三方工具使它成為處理金融行業的錯綜複雜的事務的唯一可靠的選擇。
Cititec(英格蘭倫敦的職業介紹所)的技術招聘經理Stephen
Grant說:跨市場風險管理和交易系統都在使用Python(有時會混合使用c++),很多銀行從建立銀行的前端到資產風險系統都會選擇使用Python。
使用Python的金融公司包括荷蘭銀行,德國證券交易所集團,Bellco信用社,摩根大通以及阿爾蒂斯投資管理。
自從1991它出現在編程場景中,比於其他編程語言,Python取得了少有的地位。面向對象,容易學習,使用語法,以及由此產生的低維護成本,是Python持續獲得好評的一部分原因。
開源是一個很明顯的優勢,跨平台的有效性,多目標,垃圾回收(自動的),代碼的簡潔性,以及整齊的縮進是Python其他的顯著的特點。
推薦閱讀: