程式
MATLAB 還是 Python 作為起始語言?
我有相當嚴格的數學背景(去年我本科的純數學),我一直在探索量化金融的世界,因為我在探索我可以用我的學位做些什麼。向我建議的大部分材料(主要是量化交易,Ernest P. Chan 2009)都已經過時了,所以我很好奇交易員/分析師今天用於數據收集和回測的主要工具是什麼。我看到的大多數答案都在 Python 和 MATLAB 之間,但我已經看到了兩者都不錯的論據。甚至不確定這是否是提出此類問題的正確地方,但我對這類問題還很陌生,而且這裡的大多數人似乎知識淵博。
這些問題不可避免地會引起強烈的反應。事實是兩者都很出色。我剛進入這個行業時使用的是 Matlab,但後來 100% 遷移到 Python。我將在下面提供一些快速的原因:
- Python 是一種通用語言。你當然可以用 Python 來做計算金融,但你也可以用它來自動化幾乎所有的事情。我使用 Python 從網上抓取數據;我使用 Python 建構了 Web 應用程序,以便我們可以更互動地探索數據;我還開發了一個愚蠢的應用程序來歸檔/索引我讀過的每一個 PDF。你也可以用 Matlab 來做這些,只是不那麼直覺。
- Python 是開源且免費的。Matlab 比較貴。即使成本不是問題,當某些東西是開源的時,探索一切是如何工作的要容易得多,這對於學習來說是無價的。Python 包也往往是開源的。我個人在閱讀一些包的程式碼時學到了很多東西。
- Python 有一個特殊的社區。社區更大,這意味著獲得幫助/支持可能更容易(例如,在 Stack Overflow 上)。如果您遇到問題/發現錯誤,請送出錯誤報告,甚至自己創建拉取請求。我已經在幾個小時內被包維護者修復了錯誤。使用 Matlab,您可能必須等到下一次產品更新。
- Python 社區還創建了一些真正出色的包來完成幾乎所有工作。在這裡,您可以看到我在 Matlab 工具箱和 Python 中的潛在等價物之間嘗試的映射。我必須承認,對於我所做的一些風險管理工作,Matlab 的內置工具箱非常出色,但隨著時間的推移,我設法找到/建構了同樣有效的等效工具,並增加了很多靈活性。Python 也已成為 AI 領域最流行的語言之一,擁有自己出色的支持社區和許多可以在自己的項目中輕鬆使用的包。
- 很多人抱怨 Python 的性能。在我看來,這不是問題。有很多方法可以讓你的程式碼執行速度提高幾個數量級,而且它們幾乎不需要額外的學習。例如,使用一些簡單的
numba
裝飾器,您可以將 Python 函式自動轉換為優化的機器程式碼。您還可以使用它Cython
來大大加快您的 Python 程式碼速度,而無需實際學習 C/C++。看看這個頁面,它是 Python 優秀statsmodels
包的一個組件。底部提供了一些非常令人印象深刻的基準測試結果(順便說一下,針對 Matlab)。
您可能還想考慮 R。與 Python 一樣,它是開源的並且有大量的庫。
我的印像是 Python 和 R 是目前最流行的量化金融語言,Python 領先於 R。因此,如果您的目標之一是該領域的就業能力,那麼 Python 可能是更好的選擇。