希望學習一門編程用於計量或trading,SAS、Matlab、C++、Python、R哪一門比較好?
我是美本的留學生,已經拿幾家到master項目的offer,正在選擇,但各家教的內容區別還是很大。
我畢業以後計劃留美做資管,比較傾向二級市場方向,本科是金融系,數學、統計OK,但沒有編程基礎,也因此吃過一些公司和學校的拒信,所以希望在master階段彌補下。問題中列的語言分別被幾個我喜歡的項目的授課內容覆蓋,希望有經驗的前輩分析一下,我比較關心應用的領域和範圍。謝謝
不邀自來。
非常有趣,題主列的5個語言,後面4個我都學了。學習的先後路徑為:Python -&> C++ -&> R -&> Matlab. 掌握的熟練程度為:Python &> C++ &>&> Matlab &> R.
題主的目標是大行資管,那麼個人認為這些語言的重要性為:C++ &> Matlab &> Python &> R. 理由如下。
首先一個 C++,無他,絕大多數tech interview 對編程部分的考察都以C++ 為主。著名的面經書如 Baruch 的 Dan Stefanica 寫的150 questions, 就有專門的C++ 部分,包括對語法概念和簡單的數據結構的考察。國內的情況不是很清楚,但美帝還是很興C++ 的。再一個,從C++ 遷移到別的語言比較方便,但反之並不成立。所以第一個結論,C++ 一定得學。順帶一提,學C++ 的另一大好處是絕大部分的數據結構演算法書都有C++ 實現版本,如果你想學數據結構的話…
Matlab 我其實接觸也沒多久,主要用來做machine learning 。簡單說說我的看法,Matlab 最為精髓的部分就是vectorization. 對於其他的科學計算,其他語言,包括Python, 都可以做的很不錯。但獨獨是vectorization ,目前來看Matlab 還是無人能及的。可能有人會說Python 也支持vectorization, 用Numpy 的 matrix 類就行。Python 我也用,但就易用性、完備性等各方面而言,距離Matlab 還是有差距。接觸Matlab 越久,就越發意識到線性代數為什麼是區分是否接受過高等教育的標準。當你意識到循環是效率最大的敵人,並想要把一切都vectorization 時,恭喜你,Matlab 入門了。
我接觸時間最長,用的最多的是Python. Python 有多好就不贅述了,搜一搜知乎上的回答就能看出它的流行。膠水語言的頭銜不是隨便給的,Python 能做的事情太多了。在我看來,Python 的核心競爭力是它背後龐大而活躍的開發者社群。舉個例子,不誇張地說,所有用Python 做數據分析的人一定會用到的一個庫就是Pandas. 這個庫的開發者Wes McKinney 曾經是AQR Capital Management 的 Quantitative Analyst. 這個庫里最重要的數據結構就是DataFrame, 效仿自 R 當中的 data.frame 。如果題主決定學習Python,將來一定會碰到這些內容。可貴的是,這些開發者不斷為Python 貢獻著新的代碼,優化著原先的代碼。換句話說,可供你使用的工具是隨著時代進步而不斷更新進化的,並且進化的方向是滿足更多人更多的需求,你說贊不贊?在實際的工作當中,有相當一部分時間是花在數據清洗和規範化上的,當然你說Excel 能不能做這些工作?也能,但效率是絕對趕不上編程的。跑題一下,Excel 也是一定會用到的,並且一定要學VBA,看看知乎上的數據男神 @何明科 就明白了。另外,Python 提供了許多與Excel, Matlab 交互的庫和方法,別人扔給你一份xlsx 文件,你一樣可以用Python 處理當中的數據,膠水語言不是白叫的。值得指出的是,Python 作為一門user-friendly 的語言,當真是入門容易精通難。何況用Python,你能做的還有更多。因此,如果題主學有餘力,真心推薦Python!
對於R 我的了解非常淺薄,基本就是知道語法概念,熟悉幾個常見的函數而已。R 和Python 相似的一點是背後都有海量的開發者,不同之處在於(曾經多次在不同場合看見)R 是寫給統計學家用的,與其說是編程語言,倒不如說R 是用來給統計學家實現自己的想法的工具。唯一深入一點的了解,R 當中的TSA 庫,也就是專門用來做時間序列的庫,非常之好用。教科書我是買了,就是還沒開始看(慚愧…)。鑒於時間序列估計也是題主的必修課程,如果老師用的R,那就學。
SAS 我沒學過,但我ex 學過…所以對它沒有太大好感…
啰啰嗦嗦打了一大堆,有一點放在最後和題主分享。無論你最後選擇哪一門語言,都務必多寫多用。代碼總是碼的越多越熟練的。語言那麼多,普通人真正能熟練掌握的也就一兩門,沒有必要太過糾結。代碼寫的越多,越能體會到代碼背後的那些數學、金融知識的重要性。
與題主共勉。做計量的話,R語言做分析就夠用了,目前很多量化平台都使用python,這兩者python的使用面更廣泛;比較容易入門的搭配就是R做數據分析,然後python做量化編程比較專業的搭配就是Matlab做建模,C++做量化編程
如果Matlab和C++掌握,以後工作R和python學起來很容易
感謝特邀。
我也不是很懂,只能說共同探討。如果有什麼發現也請告訴我一下,我也想了解了解呢。首先,在我的有印象中,C++、Python、R三門是語言,而SAS、Matlab是工具。
C++比較於Python、R是更偏向於程序設計大類的計算機語言,雖然都是面向對象,但是私以為入門來說,或者不是計算機從業人員來說。C++入手難度大於Python。R是偏向於量化用的語言,如果你想從事資管之類的工作,私以為工作環境中R的應用會多一些。R用來做計量,應該也是不錯的。
python就是一個萬能變形的了,從哪都能看到它,而且易於入手,對於偏向於其他行業,想利用計算機語言編寫程序應用在自己行業是,私以為python是比較好的選擇。入門不是很難,去做計量相關工作也不是不可以。
SAS私以為是一個升級版spss,自己內建的庫很多了,基本的工作都能用。私以為就是一個巨大功能的計算器,不過用好了數據分析相關的東西基本都能解決。可以接觸下,工具總應該是入門更簡單一些的。可能吧。
Matlab我主要用於建模,回測。計量相關工作,似乎不大對口???
才疏學淺,僅供參考,多百度效果更佳,歡迎各位大神拍磚瀉藥:
SAS可能大行比較喜歡用,其他的不多了,黑喵還沒開始學,有興趣可以學一下『Matlab,R,python這些放一起講,都是為了實現某個演算法,計算某個數值的,最好全掌握了。c++必須學,不學么人權。最後題主可能有疑慮,這麼多時間怎麼夠。把用來靠FRM,CFA之類證書的時間,全部用來學習編程語言是絕對不會吃虧的,別看著別人傻考證就跟著考證推薦閱讀:
※非金融專業學生,如何學習金融?
※同事讓我投資10000元錢,許諾每個月有3000元的回報,可信嗎?
※工科生想轉行金融行業,哪些思維模式需要轉換?
※為什麼炒股高手願意分享自己的技術?