現在上有關numeric analysis的課時,都用Python,實際工作時候呢?
回複內容:
對於不同的quant崗位,使用的軟體大不相同。
如果是做定價模型的,可能最經常用的是matlab,因為語言簡單,擴充包優良。對於不需要對時間有要求的衍生品定價,最為適合。
如果是做高頻交易,最常用的是C++,因為速度快。有很多的高頻公司,都有自己寫的底層包,並為此花了大量的人力和物力去維護。
如果是寫盈利模型的,會更多的選擇R。R裡面有很多前沿的統計模型包。對於統計分析和時間序列處理非常強大。但是擴充包沒有matlab的穩定。
對於Python 而言,更像是一種全能的編程需要。無論是網路抓包,統計分析,還是數值分析,都有還算不錯的方案。但是,在專業領域方面,還是弱於上邊提到的語言。
其實在不同的金融公司,有著不同的語言使用傳統,有的喜歡C++,有的喜歡C#,有的喜歡Java。但是對於一個成熟的公司而言,需要對這些語言都提供良好的支援。畢竟一個好的trader是十分難得的,難道就因為使用語言的不同就拒絕能讓他發財的人才嗎?
其實,軟體只是一個載體,思想才是最核心的。我工作的地方,大家都用VBA。交易的時候,滿屏的Excel。只要能完成工作,誰管你用什麼語言。先來結論:工具和語言不是重點。數學能力和市場理解才是。
本人去過幾間國際大行,主流工具有
1. 公司自主平台上的C++
2. 公司自主平台的Python
3. Matlab
4. R
其中1和2之所以要強調自主平台 主要是因為其重要庫和部分文法都是定製的,基本可以看作半個獨立語言了。自己在外學習意義不大。公司內進階碼農一大堆,一個quant的主要能力其實是數學能力,其他能寫就可以了。
在大型基金也是一樣。小型基金什麼行什麼上,vba都有。先正面回答題主的問題,
在金融工程領域,Python不但在用,用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測。
也有一些例外:
1、過去形成了其他語言為主的體系,比如平台以C++編寫,API都是C++的,老人也熟練C++,那麼他們以C++為主。
2、有些機構以研究為主,也許他們使用Matlab,R。
3、C++、JAVA、VB等各種語言的天才Coder,我只能遠距離膜拜,你們用彙編也比我的效率高十倍,你們是我心目中的神。
再描述一下自己,按照知乎上的分類,我應該算一個Trader,一個會寫程式的Trader。我的工作是分析資料、發現規律、制定和驗證策略,然後交易,然後最佳化調整,往複迴圈。我們用自動交易,但高頻交易不是我的範圍。
我個人是從C/C++轉向JAVA,然後又轉向Python,原因無他,效率。人的精力有限,寫程式的時間多,交易賺錢的時間就少,我的團隊也非常認同我的想法。
我偏好Python的原因:
1、正確就是效率。越複雜、越低級的語言,出錯率越高,BUG導致資料分析錯誤、交易策略程式崩潰,輕則錯失交易機會,重則交易策略本身導致虧損,那種欲哭無淚的感覺...
2、Python重在開發效率,設想同一個交易策略,我已經完成回測,給老闆打報告申請交易額度了,而你還在調試C++,老闆不會認為你勤奮,老闆會認為你是某種動物,再往遠想想,比如年底咱倆的紅包厚度...。
3、Python的效能不差,Python還是調用C庫,再考慮PVM,其實和C的效能差別基本上可以忽略不計。確實在乎相差的微小效能,建議花2萬塊買個最新的MAC PRO,直接秒殺。你說什嗎?單位不給撥預算?為了快感,自費行不行?。
4、語言不是主要效能瓶頸,網路、裝置等造成的影響更大,比如C++程式快了2us,而網路延遲就耗去了1ms。
我熟悉的同行,瞭解Python的,有能力的都在往Python轉,也有一部分是程式員說了算,轉不了的,你們懂的。
再扒一扒前面幾個例外情況,這部分作為娛樂,不屬於內容:
第一種,就是有曆史積累的那種,說的好聽是知識庫,說的不好聽那就是曆史包袱。老平台上絕大多數策略都已經失效了,早都該推倒重來了。
第二種,那些賣分析報告的,那些用Matlab,R的,也許可能還是個實習生,甚至從來就沒有交易過,他的報告可靠嗎。再進一步,如果報告是可靠的,他為什麼不自己交易,再造一個文藝複興,為什麼要告訴你呢,他是大傻?或者買報告的是大傻?
兩天沒來,關注的人多,澄清一下。發這貼的時候深夜剛加完班,在車上手機草草打的,言辭草率,對兄弟不敬,先道歉。
A股行情火爆,這幾天都在加班,剛睡醒,說錯了請包涵。今年執行策略有幾個不錯,如果大家有興趣,我可以分享兩個,當然還是討論Python在金融工程的應用為主。
======================================================================
原來寫的在這:
先說排名第一的,一看你就是個外行,人家問Python,你要是懂,就直接跟人說Python,不懂還要裝逼,知乎上淨是你這種貨色。
還有那些說工具不重要的,你乾脆別用電腦了,回去用紙筆行不行,只要半輩子就能跑一條策略了,你一輩子能跑兩條呢,別著急,慢慢來。
作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測,早就是各大行的首選。
都什麼年代了,一台PC的效能就遠超過去的大型主機,誰有功夫給你c和c++,就知道瞎bb。看看5年前的文章
Python有望成為金融語言
http://www.infoq.com/cn/news/2010/04/Python-ABS
金融行業用Python,R做研究都比較常見。Python 配合科學資料計算模組,能做很多事了。如果從整個美國這邊quant行業來看,quant們用python應用比例還是挺高的,三四種主流語言之一吧。引用一位元學博士姐姐的話,python is the second generation language 相對於C++。工程的孩子可能用matlab更多,而醫學統計等則用SAS。事實上認真學,做項目,學起來很快 一個月熟悉,三個月熟練。
Programming語言 其實就是用英文 +符號+ 數學發明的一種針對電腦的語言。如果這三個你都掌握的不錯,就直接開始學吧,不要糾結啦。。。 quant的核心能力就是有什麼迅速學什麼,迅速掌握就好了。加油!以上~先說排名第一的,一看你就是個外行,或許你涉及過一兩個行業,但是就金融來講,你就不要不懂裝懂了,知乎上淨是你這種貨色。
不同的業務類型,不同的功能部分,不同的公司文化,不同的團隊技能熟練度,決定著業務用什麼語言開發,用什麼硬體架構,選擇何種資料庫,選擇何種開發模式。
python上手快,開發速度快,生產效率高,依然有其力所不能及的地方,不懂就別瞎bb了。軟體和工具不是重點,訓練得多就能初步上手,關鍵還是數理基礎和應用能力