標籤:

金融專業,學matlab和R哪個好?

金融專業,以後想從事一些依託數據的量化分析,請問Matlab和R,學哪一個更實用一些?


我抖個機靈:

http://mathesaurus.sourceforge.net/octave-r.html

R for MATLAB users

基本功能基本無縫對接,個別小的不同也很多容易用別的功能找到替代辦法

比如repmat = kronecker

其他就是個人感情因素,你覺得matlab的自帶函數和R一些功能相同的包哪個好,哪個好就用哪個。

多說一句python,python是科學計算包跟一般編程語言黏合的最好的語言,matlab和R的功能都能在你面找到後跟開發無縫對接,所以叫「膠水語言」。 當然前提是你需要忍受很多開源包帶來的 「 一個函數定義一個type同時還不一定和基本計算兼容」 這種醜陋的小麻煩。


一個統計專用的,一個是萬金油,都學了吧。


其實你會發現在現實生活的金融分析領域內,學哪種語言都不是由自己說了算的。

也許你學了Matlab,但你發現你研究生的導師竟然是統計背景出身,用的是R。

也學你學了R,結果發現工作中大家用的是Matlab,為了方便對接,你又要重新學Matlab。

剛剛學語言的時候免不了擔心學哪種語言好,但其實後來發現,重要的不是哪種語言,而是用編程語言解決的問題的能力。學一種語言也真不是什麼困難的事。但是沒有動力的單純學語言也不是件容易的事,有的時候也感覺茫茫大海,無從下手。

不同語言往往有自己的優勢。重要的根據具體問題,去尋找,去發現,去學習。然後讓自己熟練。

-------------------------------------------------------------------------------------------------------------------------------

我是分割線

----------------------------------------------------------------------------------------------------------------------------

下面接著來分享一下我在金融領域的編程經驗和心得吧,當然也受限於自己的經驗和接觸範圍肯定有局限。歡迎大家指正。

先說說Matlab, matlab是傳統的數學,運籌和工程類學生常用的軟體,也是一個以矩陣為基礎的語言。非常適合金融中做蒙特卡洛的模擬。如果你以後要以隨機過程為發展方向。是一個非常合適的語言。而且,語言簡單幹凈直白。矩陣運算起來也比較直接。但是缺點是感覺因為收費而且還很貴(正式公司為了避免法律問題,必須要買軟體),且不夠開源,導致各種擴展包發展較慢,同時數據處理不夠簡潔,統計分析輸出不夠全面。

在市場上,國內還有很多公司在用matlab,美國這邊有一些傳統的基金同樣堅持再用。(早年R, Python 還不流行,matlab是很多不想在編程上花太多精力,又對效率沒什麼要求的金融開發者,或者分析者非常喜歡的語言,因此主要很多老模型或者策略已經寫在matlab里,為了保證,新的分析或者模型能夠很好的對接舊的模型,對於新加入組裡的成員也要求會寫matlab)。

再說R,R是更像是一個統計軟體。而且因為免費開源,這幾年發展表較快。 我目前個人感覺是,Matlab能幹的,R全能幹,而且沒感覺麻煩太多。 同時R在統計分析,數據處理上比Matlab強太多。同時與SQL的對接更好,更穩定一點。在金融行業內,很多有統計背景的人更偏向於R。因為開源,免費,很多公司也逐漸向R轉型。

但說實話,如果真是為了學金融而學一個語言,我更推薦Python。 從效率上來講,基本可以完爆以上R,matlab,而且R,Matlab做的,Python也全能。 當然你如果是純金融專業的話,我覺得你在除了分析之外,可能還在乎的是可視化效果好不好。從這個角度講,R和Matlab就顯得屌絲點兒Python的各種plot,可以讓你的報告fancy的不要不要。當然,Python的語法比R和Matlab也稍微難一點,但個人感覺不難自學。


首先結論,學R。

一個比較看起來政治正確且有逼格的回答是,工具都是次要的,主要的是你的策略和方法。但是實際運用中,一個好工具的重要性不遜於一個好想法。道理是,你在實際開發策略的過程中,你的思維是跳躍性,是片段的。更多時候是一種,如果我這麼做,會怎麼樣?我覺得,這兩個數據之間應該會存在一種關係,事實上,是這樣嗎?

觀察,假設,求證,進一步觀察,進一步假設,進一步求證。量化工具幫助你提高求證的效率,而求證往往是整個策略開發中最廢時間的,你的求證效率直接影響了你對策略開發的深度,即你能對你的想法問出幾個深入的後續問題。須知,很多策略的賺錢與虧錢之間,可能根本邏輯沒有變化,僅僅是參數的調整而已。

工具的重要性說完後,就是你覺得在量化交易中用的最多的數學工具是什麼?如果你跟我一樣覺得是統計的話,請選擇R。另,給quantstrat打個廣告,真的很好。


我要推薦下符號運算里的王者Mathematica。。。只要涉及符號運算,就選Mathematica沒有錯。。

Pros:有時候的推到過程用Mathematica推到一遍才是王道。。不然在符號計算里很容易出錯。。Mathematica也可以和R對接。。因為它也是functional programming的。。微分積分,fourier transform, pde的analytical和數值解法都可以,sde也可以。。Machine learning的一些也可以實現,基本上你能想到的數學運算裡面基本都有。。來寫作業偷懶是非常好的非常強大的工具。。用Mathematica 做一些prototype來test 一些想法也是非常容易。。

Cons:

但是Mathematica沒有R發展的快。。很多package沒有。。語言不flexible。。所以不適合作為第一語言。。而且很多語法比較神奇和其他語言不一樣。。

總結不適合做第一語言,但是如果用到任何符號計算的話,Mathematica是一個很好的符號計算工具,適合收入囊中。。。就醬。。


絕大部分做quant的職位要求C和C++,因為可以在底層優化計算效率,這在高頻交易中非常重要。

同時大部分要求至少一門腳本語言,比如Python. 如果搞data mining基本上Python 和R中會挑一個.

R和Matlab感覺也就是在學校里用用,求職要求不多. 因為在R比C什麼的簡單太多了…

如果你的志向是非Jane street不去,那麼就Haskell, erlang走吧…


對於金融的學生,R在統計在計量方面已經足夠好了,如想進一步想了解web等等python也該學學,無論是R的rcpp還是cpython都能與C混編。MATLAB我個人不喜歡,不過不否認也是個好工具。最後一句,觸類旁通。


python+R+MySQL標配


我上學的時候的學科是精算 經常使用marlab和R。所以比較有發言權。

我上學授課期間是有的課程都教授的R, 而且從統計方面來看, R確實非常的實用。所有的老師都非常精通的使用R。其強大的功能也實在讓我跪地折服。

但到我寫畢業設計的時候,我發現對我的畢業項目R就在很多方面不能幫我了。不是說R不夠強大。而是說在很多方面的情況R不會去涉獵。

而Matlab就不同了,我所有在艦模型方面的想法都可以使用Matlab做出來,但在一些反而特別需要統計歸攏方面的是就會顯得有些冗雜和緩慢(當然導師一直說我的代碼非常的沒有效率,我覺得高手肯定可以解決這個問題:))

綜合而言,對於數據分析,R真的是一個非常棒的軟體。但Matlab卻可以做很多其他的事情。


可以學python和java,R也還行,mathlab感覺不是很有必要了,當然你有興趣也可以學。

這麼說是因為學完要用的,不僅僅是這個語言本身,大一點說應該是技術棧的技術生態圈的概念。

比如,數據分析可能要用到爬蟲抓取,數據清洗,文檔導入和處理,這些python和java都能很好的處理,R和mathlab就弱了,因為他們也不是設計來做這個的。

數據分析這塊,幾乎免不了還要和資料庫打交道(真要不用也行,那數據結構和演算法的知識要強到逆天),比如最常見的開源免費資料庫mysql、postgresql之類,

python和java等本身就是和資料庫在整個技術生態圈裡的,有各種簡潔好用的orm等方式,能省事很多。R等方式也能連接資料庫,但是明顯隔了一層。

另外一般還要涉及搜索,如果數據量巨大,那還要涉及大數據處理。這兩塊java處於霸王級的地位。搜索的lucene、solr,大數據的hadoop、spark,整個技術棧幾乎都是java為基礎構建的(scala也是運行在jvm上,雖然和java完全是兩碼事,好歹算有點聯繫)。

java的優點是功能大而全,應用極其廣泛,一技伴身幾乎可平趟所有技術開發類職位,學了絕不會後悔。

java的缺點也是太大,還是編譯型的,寫個簡單的小功能,也要掏出ide,建個工程,小百行代碼才搭個架子,分分鐘被解釋型的腳本語言如php、python、ruby等鄙視。所以搭配可以學學python。

python的強項是上手快,很多現成包,使用方便。很多小功能小需求,分分鐘搞定。更多描述可以參見我的另外一個回答:學習計量經濟學的學生需要學習編程嗎?如果需要,要學習到什麼程度,有什麼好的建議嗎? - 張海的回答

另外要是還需要做點界面啥的,建議用web頁面方式來處理,比開發gui省事省心。這一點也是在java和python的技術生態圈內。R和mathlab?離的更遠了。


都學吧。


R,簡潔好用。


最近matlab和R都用,遇到的最多的需求是數據可視化,俗稱畫圖(?_?),在畫圖方面如果是空間數據尤其是二三維的matlab畫的好看,如果是時間序列或者高維或者一些亂七八糟的factor比較多用R比較省事。

金融數據應該用R的場景更多,

但是matlab也絕對值得學,很簡單很容易上手但是真的非常非常強大,andrew在他的機器學習課上講過一個笑話:

「我有一個朋友,他的一個學生賺了很多錢回去拜訪他,學生很激動地感謝他,他看到那位學生很成功就問他你怎麼這麼成功啊,是我的課上教給你的哪個機器學習演算法很有用嗎?學生回答說no, it is matlab」

matlab還有強大的模擬功能不知道金融裡面會不會有用


數據量不大用Stata,量大用matlab,R勝在開源。

其實會一個在學其他的都會容易一些的。

說得好像我都會似的-_-#


Matlab好一些,範圍廣但是不深,適合一些簡單的分析,畫圖也好看。

R主要是數據,統計類的,其他的做不了,雖然有ggplot但是畫圖是真的丑。

其實金融+數據明顯vba簡單粗暴實用,樓主可以考慮一下。


matlab、python、R都在用,不過現在只用R和python,因為需要用到Linux環境,沒嘗試過octave(Matlab的Linux版),R在金融方面的包確實優於python,但是更想精通python,以前用python Django,現在機器學習方面python用的很多


開始行動 少糾結 開始學最好


一開始我也糾結於學習python2還是python3

因為想用現在的一點微小工作來做一個調查 省去以後得麻煩。

不過更重要的是先學會一門


涉及到大數據的金融實證研究用SAS是必須的,導師們絕大部分是用SAS,python不是金融學導師所用的工具,MATLAB其次金融定價用,用R的人大部分是統計學院的孩子還有計量經濟學方向的,python是計算機亂入金融。


推薦閱讀:

金融工程,量化投資學什麼軟體好?Python還是Matlab?
Data Science 和 Finance 兩個領域的融合是什麼樣子的?
羅格斯金融數學和紐大tandon金工的選擇?
標的價格或者 implied vol 變化很大時 Greeks P&L 該如何分解?
在紐約大學(New York University)讀金融數學是什麼樣的體驗?

TAG:金融工程學 |