A. 量化投資 用python好 還是c++
Python是非常適合做quant類工作的語言,本身就是科學計算方面的統治級語言,現在加入了IPython,pandas等重量級神器,為Quant類工作量身定做,而且仍在飛速發展中,以後會越來越重要。
關於其他語言,首先介紹一下我自己最喜歡的一個比較小眾的組合,Mathematica+java/Scala。 Mathematica的優點在於:本身提供函數式的編程語言,表達能力非常強大,比如Map/Rece是標配,很多時候不需要去做煩人的for循環或下標控制,排版經常可以直接照數學公式原樣輸入,即直觀又不容易寫錯;代碼和輸出混排的排版方式使得建模時的演算和推理過程非常流暢,甚至還可以直接生成動畫,對於找直觀理解非常有幫助(這幾點分別被IPython和R偷師了一部分)。Mathematica的缺點在於對金融類的時間序列數據沒有很好的內建支持,使得存儲和計算都會比較低效,因此需要用內嵌Java的方式來補足,對於數據格式或性能敏感的操作都可以用Java/Scala實現。這個組合在我心目中無出其右,不論是快速建模,還是建模轉生產,都遠遠領先於其他選擇。但Mathematica的商用授權很貴,如果公司本身不認可的話很難得到支持,這是最致命的缺陷。另外隨著Python系的逐漸成熟,領先優勢在逐漸縮小,長遠看Python的勢頭更好一些。
其他答案里也列舉了不少其他語言,我自己既做Quant的工作,也做軟體開發的工作,這里想從一個軟體工程師的角度,說說我的理解。平時工作中會和一些偏Quant背景的人合作,很容易發現建模能力好的人往往在計算機方面基礎比較薄弱(因為以前的訓練重點不在這里)。他們也可以快速學習掌握一種像C++,Java這樣的語言,實現很多必要的功能。但是一方面這些語言陡峭的學習曲線和繁瑣的開發步驟會給他們真正要做的工作增加不必要的負擔,另一方面一旦涉及到性能敏感的情景,他們對計算機體系結構缺乏理解的缺點就容易暴露,比如說很可能他們沒有計算復雜度,內存碎片,cache miss,甚至多線程等概念,導致寫出的程序存在相當大的隱患。
即使是計算機功底扎實,如果每天的工作需要在C++,Python,R/Matlab,甚至一眾腳本語言之前來回切換,思維負擔也會非常重,人的精力是有限的,很難同時兼顧數學建模和底層代碼調試這種差距巨大的工作。長期發展下去最可能的結果就是要麼遠離建模,專心做生產環境開發,要麼遠離生產環境,專心建模。這種局面顯然不論對個人還是團隊都是有很大弊端的。
如果深入思考這個問題,相信不難得出結論,對於Quant來說,C++這種相當面向機器的語言肯定不是最佳選擇。的確在歷史上,它比更面向機器的C已經友好了很多,但是在計算機技術飛速發展的今天,如果還需要Quant大量使用C++做建模類的工作顯然是很遺憾的事情。設想一下你拿到一份股票數據,不論你是想分析價格走勢,成交量分布,還是波動性,第一件要做的事一定是畫出圖來看看,有一個直觀認識。如果你的工具是C++,肯定有很多時間花在編譯,調試,再編譯的過程上,好容易能解析文件了,接下來怎麼算移動平均?怎麼算波動性?全都要自己寫代碼。再然後怎麼畫圖?這整個工作流簡直慘不忍睹,這些問題浪費掉你大部分精力,而他們全部和你真正感興趣的工作毫無關系。所以如果你是一個數理金融等背景的新人打算開始Quant生涯,在決定是否要投資到這項重量級技術上時需要慎重,即便它目前的市場定價可能仍在峰值。相比之下我認為Python會是更理想的選擇,即能很好的完成建模工作,也可以訓練一定的編程技巧,使你在必要時也能勝任一些簡單的C++工作。
最後同意 @袁浩瀚,不要拘泥於語言,不論學習那一種,對其他的語言還是要抱有開放的心態。另外世界變化很快,你會發現單一的語言分類方式其實是沒有意義的,每一門語言在發展過程中都會逐漸吸收其他語言的特性,比如Python本身就既有C/C++/Java那樣命令式的特點,也有函數式的特點,像pandas甚至還提供類似SQL的使用方式,在其他語言或系統里也都或多或少包含了不同的特點,可以在學習過程里慢慢體會。
B. 量化投資用什麼編程語言研發策略好呢
么以下我就以程序語言的角度來回答
當然如果已經會了某些語言,那你可以使用熟悉的語言去找網上的學習資源會比較快
如果沒有特別熟悉的語言,或者是願意多學一種非常好用的語言
我的建議是學習Python
我從以下幾點來分別說明
平台資源
國內外使用Python做雲端回測以及運算的免費平台相當的多,例如有 寬客在線,發明者量化,優礦, 等等不勝枚舉,可以使用平台的支持以及社區的互相幫助來學習
容易學習
綜合以上所說,"目前的環境底下" 我推薦Python.(推薦直接下載 Anaconda的集成開發環境)
C. 編程語言入門學哪個好
編程語言入門學Java、C、Python和C++比較好, 這類語言都是非常通用的語言,它們並不局限於特定的編程平台或用途。
1、java——大眾化的編程語言
Java是歷史最悠久的編程語言之一。 Java可謂 是Web應用程序、桌面程序、操作系統及更多系統的立足之本。這種面向對象、基於類的編程語言泛使用:;此外,它也是最受歡迎的語言之一。
2、python——最好的編程語言
Python是種模塊化的、 易於學習的、面向對象的解釋型計算機程序設計語言。Web應用、用戶界面、數據分析、數
據統計——無論是什麼問題, Python都有框架可以解決。用Python編寫的許多開源庫能夠實現數據科學廣泛使用的一些核心的機器學習演算法。
最近,由於對大數據分析和機器學習演算法的需求的增長,對Python的需 求也在快速增長。數據科學家也將其當作篩選大型數據集的一個關鍵工具。
3. C/C++
C和C+ +都是優秀的入門編程語言。如果你對游戲開發很有興趣,C+ +是-種優秀的入門語言,因為除了Web開發應用程序、移動應用程序和桌面應用程序外,它還經常用於開發游戲和游戲引擎。
C和C+ +都不僅僅為編程提供了入門知識,還為整個計算機學提供了入門知識。即便你將注意力集中在其他編程語言上,C/C+ +提供的基礎性知識也很有價值。
不過,C+ +在最初階段對初學者來說可能頗具挑戰性。如果你能夠克服這個困難,那麼將會大有回報。
D. 初學編程學什麼語言比較好去哪學好
初學編程,一個比較好的選擇是Python語言。Python是一種易於學習和使用的高級編程語言,擁有簡潔的語法和強大的功能。常用於數據分析、機器學習、人工智慧等領域。對於非計算機專業的初學者,Python語言還可以世培如作為他們了解編程的入門語言。
關於學習,可以選擇各種方式,如網中胡上教程、MOOC課程、編程書籍等。在線編程平台如GitHub、Codeacademy、Coursera等也可以提供編程學習資源,同時可以加入編程社區,與編程愛好者交流學習經驗。此外搜啟,還可以尋找線下的編程機構或社群,聽取導師的建議,方便交流,快速提高學習效果。
E. 自學編程入門,先學什麼語言好
強烈推薦Python。
其實這個問題在入門階段一直是爭議十分大的問題,n多語言,n多推薦,到最後搞到新手一會聽說這種語言適合新手,於是學習這種語言,一會又有人說xx語言是垃圾、弱爆了,學了也沒用,之類的話,開始推薦你xxx語言。
簡介
Python語言入門,接觸編程時完全是零基礎,現在接觸了C、接觸了C++、JAVA,回味了下,如果讓我再次選擇一門入門語言,我絕對不會後悔選擇Python,建議每位同學去網路搜索下Python,看下是否真的簡單易學。
並且強大,如果你想快速寫GUI(圖形用戶界面)的軟體,Python有一大把圖形庫供你選擇,不像C語言,半年下來,還是停留在黑框框里,大大打擊了初學者對軟體開發的信心,對於寫游戲,Python也是絕對不會讓你失望的。
F. 打算自學編程,選擇哪個語言比較好
不是計算機專業的話,建議學python。因為python代碼會少一些,好的都是調用別人的代碼,調用別人的代碼就只需略懂別人代碼的意思就行了哦!
G. 想學量化交易的C++編程,有沒有比較好的參考書可看
下面這個可以參考一下,具體還要看個人的情況。
我覺得應該根據你的工作需要或者說你的發展方向而定。基本上兩大類吧:C/C++和Java。比如,如果你要做企業級應用的你應該學習Java和C#;如果你想做嵌入式,那麼應該學好C語言;其他情況下,在你不知道要做什麼之前你可以選擇學習C/C++。學會這兩大類中的一類,對於你學習其他語言都將是比較輕松,包括腳本語言,動態語言„„呵呵,這里想就自己的學習經歷和情況給大家一個建議,僅供參考。
1、我的入門是從學習C語言開始的(其實課程是C++),這是我們學校的公共課,我上課比較認真(雖然老師講得很差,而且一段時間後,我就發現自己的基礎掌握比她好,當然理解深度沒她好),因此,我認為對於完全沒有基礎的人而言,聽別人講比較容易入門。當時的教材是學校自己編的,挺爛的。
建議一(以C/C++為例),對於剛想進入編程的人(就是從來都沒有接觸過編程的人),最好是聽課的方式(自己看的話估計要很慢,而且很痛苦),可以找視頻或者培訓等。C語言推薦入門教材:譚浩強的C語言,最新版是第三版,不過第二版應該也可以了(藍色的)。說明一下:堅決不同意直接看K&R的《The C programming language》,這本書絕對不是初學者可以看懂的,裡面講語法的並不多,語法都是合在程序裡面講。不過這本書非常好,入門以後一定要看的一本書。
當然可以從C++直接入門,C++之父強烈推薦從C++直接入手。C++推薦入門教材:錢能的C++(紅色的,清華大學出版),這本書第一版不是ISO C++,不過比較經典,作者現在也出了第二版了,第二版好像不是太好。國外的最好的入門教材據說是:《Acclerated C++》作者是Koenig和Moo夫婦,非常厲害。他們的著作還有《c陷阱與缺陷》《c++沉思錄》。《Acclerated C++》這本入門的書我沒有看過,我覺得還是先找本國內的書好好看,看的差不多了,國外的經典書籍隨便看就會覺得很有味道,否則你可能會很受打擊。入門的書至少要看兩三遍(要徹底理解哦 ):)。如果是C++,我建議後面類的部分至少要理解三到五遍。說明一下,c++模板的部分可以先不用看,如果有興趣的話,等把c++學的差不多了,我覺得可以把模板、STL、泛型編程結合起來學習,這個又是一個很大的工作量了,又得下很大的功夫。所以說,C++博大精深啊。
建議二、學習過程中要結合簡單的演算法,像冒泡還有類似c語言程序百例這樣的小例子做做;更進一步應該做點大一點的項目,最好是控制台程序。或者你已經著手學習win32、MFC或linux,你也可以結合平台做點小的項目。
2、第一階段是最苦的,接下來相對就知道應該怎麼去學習了。這時候假設你已經有了扎實的c++基礎。這是你可以選擇也應該選擇發展方向了,做企業級應用,還是系統開發,嵌入式設計或者游戲開發„„ 那時我其實並沒有考慮那麼多,因為我不是學計算機的,因此我就把參加一些計算機之類的考試當作學習目標。我當時其實C++語言基礎已經很不錯了,但是上機實踐很少(那時我沒有電腦),因此參加省計算機二級,全國計算機三級和全國計算機四級考試,結果上機都沒有通過。我很郁悶,二級的時候是我不知道怎麼樣進那個DOS界面把題目調出來,三級的時候是很快就編好了,也通過運行了,可是成績出來卻不及格,四級的時候是編好了,可能是我那題目比較難,好像用了兩次循環,結果那破機器竟然承受不了。後來一亂就毀了(當然主要是上機太少了)。不過我那些上機都沒有去補考。二級和三級的時候是自恃水平已經遠遠超過考試要求了,四級的時候則因為自己已經通過高級程序員考試,覺得補考上機好像沒必要。(我高程和四級都是在2003年考的)。
建議三:定位學習方向,並好好學習計算機基礎知識。在你還不確定學習方向,或者你還在大學本科期間,那麼我認為應該先把計算機的基礎知識好好學習一下。我認為計算機必學的基礎課程而且要精學——首先是數據結構,其次是操作系統、軟體工程,資料庫。這四門課不管你將來想從事哪個方向的基本上都會用到。當然,有時間的話,其他基礎課都是應該掌握的,離散數學、組成原理、體系結構、網路、編譯原理甚至跨學科的。方向是很重要的,因為知識其實是無限的,一個小小的領域就夠你研究很久了。本科生可能還沒有什麼方向的感覺,但是到了研究生你一定要清楚自己到底想要做什麼,要往哪個方面發展,不要盲目學,瞎學亂學,否則最後可能看似什麼都會,其實什麼都不會。
我也曾經學習過Java一段時間,這篇文章既然是談編程語言的入門學習,我也簡單說一說。因為有了比較C++扎實的語言基礎,所以Java學起來比較輕松。我先找了國內一本薄薄的教材很快看了一遍(幾乎都理解,但是只看了一遍),空閑的時間配合清華張孝詳老師的java視頻。以後其實才算我真正要開始入門JAVA的學習,我用了是《core java》中文第六版(本來想用候捷翻譯的第二版的《Thinking in Java》,發現被同學弄丟了),這本書我差不多用了20天才把裡面的知識都搞懂,當然包括程序風格的模擬,最重要的時我把有關GUI編程的那三章裡面的程序例子幾乎可以默寫出來(當然,那是因為我理解了,其實這樣就變成了我的知識了),裡面的API我也記得差不多了。(說明:Java裡面的GUI編程沒什麼用處了,建議大家先跳過,GUI不是Java的長處,如果以後需要的話再查手冊或者再記憶學習)。
其實學習了C++以後,學習Java是比較容易了,但是建議不要兩種都學啦,他們的用途是不一樣的,你應該熟悉其中一種,更重要的是熟悉其應用領域所需要的專業知識甚至平台,以及使用他們的企業,有創業計劃的還應該考慮一下他們的應用領域,最重要的是思考他們的潛在的應用領域。
對於初級的學習就講到這里,接下去的學習其實都是高級部分,先不介紹了,因為:一、我自己都還沒有學懂,這里亂吹會誤人子弟。 二、高級東西的學習很多,有很多選擇,又需要很多繁瑣的知識,可能也一下子沒辦法講清楚。
H. 編程學什麼語言好
編程語言有很多種,選擇一門好的編程語言可以幫助你更快地學習編程,也有利於你未來的就業和發展。下面列舉幾種比較流行的編程語言: