金融專業學生應該學編程語言嗎,學什麼語言好呢?

題主金融專業准大三學生,因為最近在跟老師做點簡單的科研項目,所以開始零基礎學編程,學MATLAB。先看了《MATLAB揭秘》,然後現在在看相關用MATLAB做統計分析的書,就是看的比較慢……
想學STATA的,但是STATA的書買回來發現一頭霧水看不太懂,感覺還是《MATLAB揭秘》比較容易上手吧。
現在比較糾結的地方在於以下幾個方面,懇請各位專業人士給予一些建議:
1、對於金融專業學生編程小白,學習編程的時間成本不小,那它對我們究竟有什麼幫助呢?
2、應該注重編程的哪方面的應用的?對於金融專業,我覺得編程應該多數是和數據、統計一類相關的吧?(有誤請指出)另外能否可以普及區分一下統計分析、數據挖掘這些概念嘛?
3、應該學習什麼語言好呢?網上又有人說金融MATLAB用的比較多,還有老師推薦用R,另一個老師說統計分析的話STATA用得多,還有人說excel夠用了……所以想問一下大家的意見,如果可以推薦一些容易上手的教程就最好啦~~
最後,感謝大家!


謝男神 @Jianchi Chen妖,他老人家不屑一顧,就得我等出馬維護世界和平。
首先明確範圍,金融專業的學生,想用編程也是寫論文搞項目或者實際工作中的時候處理數據,做做回歸,畫畫圖什麼的。那麼,雖然是要編程,也不能按照程序員來要求,開發級別的語言C++ JAVA C#什麼的一律pass,至於LISP haskell就更別扯了。 這類語言連quant都不愛用,用也是被逼的,畢竟是一個大公司的螺絲釘,要做成開發級別的。

還有一類我個人特別不喜歡,也沒有深入學習,就是SPSS STATA eviews一類的產品,我個人感覺主要用戶是社會科學的研究人員還有一些市場調查的從業人員,我不好評價。這類產品重分析,重報告,但是不需要比較強的編程能力,當然也沒那麼靈活。而且應該可以認為沒有什麼科學計算的功能。如果有人喜歡,可以多說說,我個人不是很了解這幾款產品,所以我也不推薦。

還有一個另類就是SAS,我單獨來說。SAS的產品線其實很大,他又像SPSS那樣直接輸出分析報告,又像SQL那樣去操作資料庫,也稍微有點編程的味道,總體說來是個強大的商業軟體。商業銀行的風險管理部和製藥廠的統計研究部用的比較多,一來是有官方認證,而來這兩類機構的模型相對來說已經比較成熟,更重要的是不斷更新資料庫,產生報告來分析,而且又土豪多金,更喜歡用現成的解決方案。對於研發新的統計模型來說,感覺SAS沒有R方便。而且你要考慮到另外一點就是去哪裡搞SAS,做科研項目的話恐怕不能用盜版。如果你們老師喜好SAS,又要做模型,你可以嘗試下SAS IML,操作風格比較像MATLAB,更有助於矩陣操作。

然後來說說R MATLAB和python這幾個大家都推薦的語言。其中我最推薦R。python是個好語言,但是他的初衷也畢竟不是科學計算,思維也更偏向於程序員。當你用R和MATLAB的時候,作為一個金融專業的學生,你是沒必要考慮int double float的區別,也沒必要去設計一個class理解什麼是hash table的。相反,R和MATLAB這種被大家認為不怎麼優雅的語言,在做計算和統計分析的時候卻像說話一樣直白。在R和MATLAB中我為什麼更推薦R呢?一是MATLAB的版權問題了,雖然國內的情況大家都懂得,但是不代表所有人都沒有這樣的顧慮。二是R是專註於統計分析和數據分析的語言,而MATLAB是理工科學子的最愛,是搞科學計算的。MATLAB主打的數據格式是數值型的matrix,而R里最常見的是data.frame,每一列是一個變數,可以為數值型,日期型,字元型等等。MATLAB雖然近幾年推出了一個table類型,但是實際應用的時候總是要切換成matrix或者cell,搞得很煩(當然可能我不夠熟練)。三就是包的豐富程度,這點我覺得R占絕對優勢,尤其是金融時間序列分析常用的ARIMA和GARCH模型,R包(比如rugarch)簡直豐富的令人髮指。
關於matlab在金融上的應用,我倒是很想聽聽反方 @李海濤的意見。

最後不得不說說EXCEL,這特么才是我最推薦的。如果你做的不是什麼複雜的金融統計模型, 更多的是描述統計和數據處理,那麼EXCEL就夠用了。即使會R和MATLAB,我日常中也是離不開EXCEL。excel可不是一個數據儲存的軟體,他互動式圖表,最大優勢就是所見即所得。那要是畫個條形圖 餅圖啥的就別麻煩matlab這種大傢伙了。覺得excel不夠用那是功夫不到家,如果能熟練使用excel函數,用加藤鷹般的手速操作(熟悉快捷鍵),再會點VBA來提升辦公效率(不用到VBA開發級別),你做項目肯定飛速,自己對比過,在金融系做研究的時候,別人三個月乾的活我一天完成。(段子: 我們公司財務部的一群大媽每個季度底要查賬,拿著excel表對著計算器噼里啪啦得干一個禮拜,後來來了個實習生寫了段VBA,教會大媽之後,只有一個人搞一天就能弄完。大媽們高興了大半年,後來就一怒之下把這個excel模板給刪除了, 以為覺得自己沒有存在的意義了。)

推薦結果:R + EXCEL
推薦路徑:
R: 下載RStudio , 然後我就不知道看啥書了。。。R in nutshell , the art of R programming, R in action都有中文版。。。哦好像R in action是quant寫的,應該偏向金融點。 這裡面我只看過the art of R programming. 反正入個語法的門,其他靠實踐就可以。
Excel: 泡http://club.excelhome.net/forum.php


會編程以後你就能畫出這樣的圖。

(A股公司市值分布隨時間變化圖,python畫的)

----
我當時學python主要用這兩個,還有什麼不會就多百度,資源挺多的,不用買書。
Python教程 - 廖雪峰的官方網站
Jupyter Notebook Viewer

另外python練習我是直接在joinquant的投資研究模塊做的,pandas,numpy什麼的基本都自帶,還能雲端存儲,支持Notebook,和上面第二個鏈接一起用效果很好。
https://www.joinquant.com/research
(這投資研究模塊好像要先註冊)

python沒什麼做不了的,python學好總能用上,科學計算也有庫。
推薦python
---
不解釋,匿了


樓上說的特別在理。
金融不等於金融工程。
不是一上來嘛都要學編程,當然懂點編程對數據處理有幫助。
如果你想學金融工程,你看看下面這些例子,這種工作是不是你想要的。
多因子Fama-French三因子模型
事件驅動 盈利預增事件
機器學習 機器學習與量化投資
統計套利 基於時間序列的配對交易
趨勢跟隨 基於勝率的趨勢交易策略
高頻策略 基於高頻限價單的策略
行業輪動 ETF行業輪動


我實在是不知道 券商的行業研究員 基金操盤手 以及投行IBD 會一點編程有什麼暖用 除非你是IT或者data analyst 不然為何不去好好學學excel

感覺其他答主好像都把金融看成了金融工程

建議題主先弄清楚金融到底是幹什麼的 分哪幾塊 將來打算做什麼方向

****************************************************************

知乎首個過十贊的回答啊感謝支持~
評論里有問金融應該學啥,我就簡單補充一下個人的看法:

廣義的金融行業特別廣,拋去金工和data IT這一塊的,金融本質上就是個服務行業,就是service。就算是equity research,也是要為基金、散戶等等服務的。因此無論是IBD做一級,還是行研做二級,或者做信託、公募私募、甚至VCPE這些,基本不太需要真正的編程能力。用的比較多的應該也就是word,powerpoint,excel(對VBA是很有用,學好VBA就差不多了),access好像也可以處理數據(這個我沒用過不太清楚,但是美本一些MIS專業的課就會教excel和access),感覺這些差不多了。R一般是統計方面用的多,python也很強大,STATA逼格太高,MATLAB沒有太大的優勢,當然這些語言的功能知乎相關問題已經說得很好了。。。所以我覺得軟體方面還是excel+VBA為主,這些就夠「處理數據」了,因為你如果不是專門的統計學畢業去做data analyst,那些數據的統計都是很基礎的,沒有太多技術含量,都是看你怎麼把軟體功能發揮好就行了。至於學著finance專業還非要去做data mining,那你這不是蛋疼嗎。技術方面的人才需要的是螺絲釘,你自學了貝葉斯被噎死了之後看到別人做machine learning又想學機器學習,那你還不如直接轉統計+CS雙學位呢。
我個人覺得金融這行業比較坑(勿噴),是個門檻比較低的行業(除了技術崗),可能卓越的PPT技巧以及良好的溝通能力和人際關係比編程能力有用的多。很多進諮詢和投行的金融學生從大一開始就各種實習,經驗相比技術更重要(好像金融也沒有太多技術吧。。。和其他行業相比)。所以不要入了什麼「金融一定要學好數學和編程」的坑。當然可能有些時候學一些編程,是讓自己有一個sense,讓自己的數理邏輯思維能力更好,這點可能面試官會看,但是你實際工作不太用的上的。比如MS的TMT研究組就只招CS畢業生,他們平時根本不用編程,但就是覺得他們sense好,對這個industry了解。
不過總體來說,寬泛而言,學起來用處不大,可以讓簡歷稍微好看,如果學有餘力,可以學一點。
當然,如果你不是抱著功利的目的,而是因為興趣,那你學什麼都是對的。
這種任性是好的。

可惜的是現在太多高中畢業生報專業的時候往往都聽從大人的意見,盲目選擇了聽上去很多金的高大上的「金融」行業,可上了好幾年連金融行業做什麼的都不知道,對金融市場現狀一無所知。
每次跟別人說我學金融,他們說哇那麼屌,高大上,好專業啊未來錢途無量,我說,呵呵。
不過我對金融沒有惡意,我自己也很喜歡。希望題主能知道自己喜歡什麼,多了解行業現狀,利用好時間。


不需要學 如果想干quant的話 那麼學金融一開始就是錯的


同為金融專業
一定要學編程!
一定要學編程!
一定要學編程!

申研或者求職的時候你會發現一門編程課可能比你剩下的所有專業課綁一塊都要有用

至於學什麼我覺得不應該聽程序員建議,雖然程序員是編程專家,但對金融行業接觸不多,而且每個程序員擅長的語言不一樣,不一定真的適合你

從上手難度和適用性來說首推Java,Java公認難度不大,適合入門學習,另外美國主流大行和對沖基金也有不少用Java的(我記得另一個答案提過各家使用的語言,爪機不好找鏈接)我們學校商學院入門編程也是選Java比較多,因為容易

然後是Matlab,這個數學系必經之路,建模統計都一流,然而我不會T-T,建議還是選修一門課,不要自己啃


@小貓(對不起列表裡搜不到,只能這樣白@), 提到c++在金融應用的重要性。

Mark Joshi的關於quant面試書籍是及其建議所有金融數學方向童鞋看的,整理了一些常見問題和解

C++我這個弱逼還沒有開始接觸,但不能否認在大機構里c++的在很多大機構里地位依然舉足輕重,不會c++可能要錯過和他們的交
集。不過一個在大摩工作過9年的IT技術員告訴我他們也在漸漸嘗試一些新的語言比如python,同時也在局部的轉換系統。其次,不得不承認這種純效率語
言對非計算專業的人學習曲線極其陡峭,從上手到解決一些實際問題可能需要非常長的時間,所以對上手來說還是以為要在有一些其他語言的基礎上(比如
python自己編寫數列函數來完成矩陣計算,這點可以移植到c++里)再在對效率有極高需求的時候(求職目標就是HFT!!)開始惡補c++。

不過單純做一
些演算法和策略用c++還是太難了(我肯定不會,就連我剛說過那個9年的it,他要用編下文那個模擬項目還是花了兩天整的時間,還跟我說運算量不大效率要求不高的時候
盡量使用別的語言)。

還是那句話,有的放矢總是最快的學習方法。


正文————

恭喜入坑,現在考慮這個問題真的還不晚,不像我這個笨人研究生才開始學編程。

像 @凌天白 和 @揪帝 都提到了編程在金融中的運用

其實 @AzuralRainbow 說的不無道理,金融的方向有很多是不需要辣么多計算機能力的,excel里的vba就能幫你解決很多問題,所以先把excel學好是沒有錯的。

先引用以為學長的話:在江湖裡,金融知識是江湖規矩,學習江湖規矩可以在江湖裡混下去;數學和統計是內功心法,能提高你的修為和層次;計算機就是兵器和外功了,用來直接和比武和拼殺。交易要系統,演算法需實現,如果沒有一些計算機的手段,再好的策略演算法都實現不了,自然按連人都摸不到了(參考秦時明月里繼承巨子內里的天明)。

如果真的對金數,金工,風險管理,量化交易這些領域有興趣的話在學習也不要操之過急的學習編程。先多看一點統計方法,鞏固本科的計量知識,稍微涉足一點隨機過程和微分方程什麼的對一日後編程有很大幫助。因為這些在這些知識的學習過程中你會自然而然的發現什麼問題單純的數據處理解決不了,需要編程能力的介入了。這個時候你的學習計算機是有目的性的,而不是單單為了學一門語言去學的,有的放矢效率更高。

舉個具體的例子,當做多變數統計的時候你會發現一個隨機變數的概率密度函數的式子非常長,長的超乎你想想到只能用一個二次型來表示了。這個時候excel的mmult功能,和要拖的超長的表格基本不能滿足你了。於是想到了能進行矩陣運算的matlab,於是開始學習matlab。

再比如,你要跑一個蒙特卡洛模擬,但是matlab跑6個10萬次的模擬(或者說不光是模擬,模擬完了要hedge,要做每期的payoff等等)時間就非常長,這個時候你可能還沒有學習到variant reduction的方法(實在翻不出來,雖然這個跑模擬必須用到哪怕你用了別的語言),但是必須要多次跑模擬。怎麼辦呢,開始學習效率更高的python語言了。

這些過程中,你總是先有一些數學和演算法上的邏輯,然後再去想你要變什麼。這個是用你學編程技能是最快的,也是最有用的。然後編著編著又發現我的演算法和結構可能不夠好導致我算東一個東西要多編或者多運行好久,這個時候自然而然地就會接觸一些編程結構,模塊化的東西,而這些東西反過來又會加強你對數學和演算法的理解,相輔相成。

說了怎麼多隻想表達一個信息:想學編程最快的方法就是先知道要編什麼。


編程是要的……工作中正在學習python,以前上課都是用eviews,r和matlab

推薦R和Python

其實matlab也可以編出花……我愛matlab


金融,零基礎。
當然是office系列的VBA。


MATLAB
R
Python
C/C++
Mathematica


IBD的話,學好PPT跟excel 會點VBA也行


不玩虛的,先學會excel再說其他,所謂學會是指熟練處理不規範的數據,基本掌握數據透視表,會使用簡單的公式,excel都不會就不要學什麼編程了。


同為金融專業,不過過去只是喜歡編程,所以學了C++,Python,Java和JavaScript。後來才發現原來金融行業用到了那麼多編程知識,哈哈哈無意中算是福利。


個人推薦R,另外,我覺得當今任何專業的學生都應該學編程語言。因為這是一項能力讓你能更好地利用一項工具,就像80年代開始全民開始學英語,當作工具一樣。


Python+R+Maple/Matlab
另外其實excel是大殺器但是大部分人都沒用到位


哥學編程的在大學蹭課學金融……題主,我們可以深入交流一下


R,如果科研的話,要不excel的確夠了!


睡前首答,非常不專業,只是基於個人粗淺的經驗,而且偏功利。

1、對於金融專業學生編程小白,多個做研究時的分析工具;多個申請金工,quant方面深造時的優勢;多個求職時的硬工具。

2、對於金融專業,確實是和數據統計一類相關。如果比較淺的項目,也就是說個故事,造個模型,相關性分析,修改修改模型。數據挖掘會比較深,應該需要更強的編程功底,本人並不了解。

3、應該學習什麼語言好呢?Excel學好用處很多,其他要是能精通任何一個,對於金融專業都挺不錯了。
現在貌似是Python,R比較流行,資源也比較多。
國內金融業內可能用SAS的會多點(貌似有些專門用於金融的模塊,了解不多,不敢妄言),從版權問題來說,深度使用正版,貴。我還記得當初老師給我們的那個安裝包,一直出錯,小白我裝了有整整一天半。
STATA是我們本科時用的,並不難上手,價格應該也不便宜。也有開源的包,也可以自己編寫。其實也是可以畫出花的,我們當年一個老師心血來潮,憑著不甚良好的審美,拿STATA給孩子畫簡筆兒童畫。
MATLAB確實理工科的學生用得多些,SPSS則是社科類學生多用。
要選哪一個,也很難說,如果是求職的話,題主可以去看看理想職位的JD,一般要求是Excel+(SPSS/SAS精通一項)偏多。

其實經管本科300+同學畢業2年,現在還能用到以上的(除EXCEL),大概不超過20人吧。


通用3殺器
Excel及VBA - 數據處理/簡單模型
R - forecast/generate scenario
Qlikview - 報告展示


找個程序員男友就解決問題了


推薦閱讀:

互聯網金融與金融互聯網、P2P金融的區別與重點是什麼?
2016 年哪些互聯網行業在由盛轉衰?
融資租賃資產證券化的前景怎樣?
如何評價美聯儲2017年6月15日宣布「加息」和「縮表」?
既然餘額寶是把錢借給銀行賺錢,那銀行為什麼不幹脆把活期利率提高來跟餘額寶競爭以省下付給餘額寶的錢?

TAG:金融學 | 編程 | 數據分析 | 統計 | 金融 |