量化投資編程
『壹』 python量化投資是什麼
量化投資是指通過數量化方式及計算機程序化發出買賣指令,以獲取穩定收益為目的的交易方式。在海外的發展已有30多年的歷史,其投資業績穩定,市場規模和份額不斷擴大、得到了越來越多投資者認可。從全球市場的參與主體來看,按照管理資產的規模,全球排名前四以及前六位中的五家資管機構,都是依靠計算機技術來開展投資決策,由量化及程序化交易所管理的資金規模在不斷擴大。
python是一種編程語言,python量化投資也就是通過使用Python編寫能夠發出買賣指令的程序來交易。
『貳』 量化投資 用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的使用方式,在其他語言或系統里也都或多或少包含了不同的特點,可以在學習過程里慢慢體會。
『叄』 想用python量化金融,需要掌握python哪些
urllib, urllib2, urlparse, BeautifulSoup, mechanize, cookielib 等等啦這些庫的掌握並不難,網路爬蟲難的是你要自己設計壓力控制演算法,還有你的解析演算法,還有圖的遍歷演算法等。
『肆』 量化投資要學那個語言好
Matlab 和 C++,一個建模一個執行,足夠了。實在不愛用Matlab的話,R和Python也行。多看書多學習,英語也是很重要的。可以找視頻和書籍學習。
個人推薦《量化投資:以python為工具》主要講解量化投資的思想和策略,並藉助Python 語言進行實戰。《量化投資:以Python為工具》一共分為5 部分,第1 部分是Python 入門,第2 部分是統計學基礎,第3 部分是金融理論、投資組合與量化選股,第4 部分是時間序列簡介與配對交易,第5 部分是技術指標與量化投資。《量化投資:以Python為工具》首先對Python 編程語言進行介紹,通過學習,讀者可以迅速掌握用Python 語言處理數據的方法,並靈活運用Python 解決實際金融問題;其次,向讀者介紹量化投資的理論知識,主要講解量化投資所需的數量基礎和類型等方面;最後講述如何在Python 語言中構建量化投資策略。
『伍』 matlab做量化投資分析,怎麼學
《MATLAB量化投資實戰視頻》網路網盤資源免費下載
鏈接:https://pan..com/s/1L0BtCA2VlRzXPoWffOCZmQ
MATLAB量化投資實戰視頻|課件|第1講|第8講.mp4|第7講.mp4|第6講.mp4|第5講.mp4|第4講.mp4|第3講.mp4|第2講.mp4|第1講_MATLAB量化投資快速入門.ppt|MATLAB量化投資實戰1_3.mp4|MATLAB量化投資實戰1_2.mp4|MATLAB量化投資實戰1_1b.mp4|MATLAB量化投資實戰1_1a.mp4
『陸』 量化投資中,MATLAB和python哪一個好
Matlab在矩陣處理方面的強大優勢Python無法比擬,我曾經用Matlab和Python跑同一個演算法,涉及到矩陣中Symbol求導。Python用的是Numpy,Sympy和Scipy,感覺Sympy中Matrix雖然功能強大,但是速度很慢,而且需要專注其中各種細節。如:其對Complex類型是無法自動expand的,常常出現(1+I)(2I+1)這種結果,這時需要調用.expand來解決。Matlab可以使你專注於模型,Python要超過Matlab還需要時間。但是Python在內容抓取,機器學習,等有強大的第三方包,如Scarpy,Skikit-learn等,發展很快。概括之:現在用Matlab,未來用Python
『柒』 用Python怎麼做量化投資
本文將會講解量化投資過程中的基本流程,量化投資無非這幾個流程,數據輸入------策略書寫------回測輸出
其中策略書寫部分還涉及到編程語言的選擇,如果不想苦惱數據輸入和回測輸出的話,還要選擇回測平台。
一、數據
首先,必須是數據,數據是量化投資的基礎
如何得到數據?
Wind:數據來源的最全的還是Wind,但是要付費,學生可以有免費試用的機會,之後還會和大家分享一下怎樣才Wind里摘取數據,Wind有很多軟體的借口,Excel,Matlab,Python,C++。
預測者網:不經意間發現,一個免費提供股票數據網站 預測者網,下載的是CSV格式
TB交易開拓者:Tradeblazer,感謝@孫存浩提供數據源
TuShare:TuShare -財經數據介麵包,基於Python的財經數據包,利用Python進行摘取
如何存儲數據?
Mysql
如何預處理數據?
空值處理:利用DataFrame的fill.na()函數,將空值(Nan)替換成列的平均數、中位數或者眾數
數據標准化
數據如何分類?
行情數據
財務數據
宏觀數據
二、計算語言&軟體
已經有很多人在網上詢問過該選擇什麼語言?筆者一開始用的是matlab,但最終選擇了python
python:庫很多,只有你找不到的,沒有你想不到,和量化這塊結合比較緊密的有:
Numpy&Scipy:科學計算庫,矩陣計算
Pandas:金融數據分析神器,原AQR資本員工寫的一個庫,處理時間序列的標配
Matplotlib:畫圖庫
scikit-learn:機器學習庫
statsmodels:統計分析模塊
TuShare:免費、開源的python財經數據介麵包
Zipline:回測系統
TaLib:技術指標庫
matlab:主要是矩陣運算、科學運算這一塊很強大,主要有優點是WorkSpace變數可視化
python的Numpy+Scipy兩個庫完全可以替代Matlab的矩陣運算
Matplotlib完克Matlab的畫圖功能
python還有很多其他的功能
pycharm(python的一款IDE)有很棒的調試功能,能代替Matlab的WorkSpace變數可視化
推薦的python學習文檔和書籍
關於python的基礎,建議廖雪峰Python 2.7教程,適合於沒有程序基礎的人來先看,涉及到python的基本數據類型、循環語句、條件語句、函數、類與對象、文件讀寫等很重要的基礎知識。
涉及到數據運算的話,其實基礎教程沒什麼應用,python各類包都幫你寫好了,最好的學習資料還是它的官方文檔,文檔中的不僅有API,還會有寫實例教程
pandas文檔
statsmodels文檔
scipy和numpy文檔
matplotlib文檔
TuShare文檔
第二,推薦《利用Python進行數據分析》,pandas的開發初衷就是用來處理金融數據的
三、回測框架和網站
兩個開源的回測框架
PyAlgoTrade - Algorithmic Trading
Zipline, a Pythonic Algorithmic Trading Library
『捌』 量化投資中用python主要是負責什麼
python作為一門編程語言,簡單說它在量化投資主要是進行量化策略模型的編譯。
『玖』 量化投資用什麼編程語言研發策略好呢
么以下我就以程序語言的角度來回答
當然如果已經會了某些語言,那你可以使用熟悉的語言去找網上的學習資源會比較快
如果沒有特別熟悉的語言,或者是願意多學一種非常好用的語言
我的建議是學習Python
我從以下幾點來分別說明
平台資源
國內外使用Python做雲端回測以及運算的免費平台相當的多,例如有 寬客在線,發明者量化,優礦, 等等不勝枚舉,可以使用平台的支持以及社區的互相幫助來學習
容易學習
綜合以上所說,"目前的環境底下" 我推薦Python.(推薦直接下載 Anaconda的集成開發環境)
『拾』 的基本功,量化投資學習哪門編程語言才好
計算機、數學、金融, 這三種知識 是必須的,其中計算機主要的是編程技術,數學涵蓋的比較多,有統計、數學建模等,金融方面需要有最基礎的金融知識(證券交易方面)。 再者就是找一個好的量化平台了,以前的都是程序員,也是寬客,自己寫代碼,...