以“量化女皇”美譽(yù)著稱對(duì)沖基金界的Leda Braga稱,計(jì)算機(jī)算法交易將在未來(lái)十年成為主流交易。而量化交易是數(shù)量金融學(xué)一個(gè)極其艱深復(fù)雜的領(lǐng)域,若你要從事量化交易或者構(gòu)建自己的交易策略,首先需要去學(xué)習(xí)一些必備知識(shí)。在你開(kāi)始量化投資之前,希望此篇文章能對(duì)你有所幫助。
前提假設(shè),你大概已經(jīng)知道股票、期貨、外匯、黃金、ETF、期權(quán)以及其他衍生品等等都是什么的。也都了解各大交易所交易所交易的品種,交易規(guī)則和流程以及如何操作。還有各類金融機(jī)構(gòu)(券商、期貨公司、公私募基金等)都是做什么的了。
那么,無(wú)論你是從何處聽(tīng)到了“量化投資”這個(gè)詞,首先會(huì)問(wèn),什么是量化投資?量邦科技董事長(zhǎng)馮永昌博士在北大金融校友會(huì)關(guān)于量化投資給出了一個(gè)比較合適的定義,歸納概括出來(lái):量化投資就是將人的投資思想變量化、規(guī)則化、規(guī)則化、最終模型化,形成一整套完整、可量化的操作思路。這套操作思路可以用歷史數(shù)據(jù)回溯分析和驗(yàn)證,在交易的執(zhí)行階段,可以選擇是否使用計(jì)算機(jī)自動(dòng)執(zhí)行。
關(guān)于量化、高頻和程序化交易之間的區(qū)別,小編之前寫了一篇《程序化交易 高頻交易 量化交易還傻傻分不清楚么》或許會(huì)有所幫助。
思想準(zhǔn)備是重中之重。也許你是聽(tīng)過(guò)很多關(guān)于量化交易的神話,但要小心,神話故事都是個(gè)例。所以請(qǐng)拋開(kāi)對(duì)量化交易的幻想,首先一個(gè)就是:“量化更容易賺大錢”。你要想到的是,從上述量化的概念出發(fā),前提是人的交易思想、理念和策略組合。世上沒(méi)有只賺不賠的策略。根據(jù)行情變化不斷開(kāi)發(fā)適合的策略以及策略組合,重要的是把風(fēng)險(xiǎn)分散開(kāi),賺的是策略研究和開(kāi)發(fā)帶來(lái)的錢。
而作為開(kāi)發(fā)人員,如果你幻想著模型算法千千萬(wàn),每天充滿新鮮感。那么也請(qǐng)放棄這種想法。因?yàn)榱炕顿Y的主流模型就那么多,而更多的工作是重復(fù)性的“體力活”,比如怎么對(duì)數(shù)據(jù)查漏補(bǔ)缺,怎么調(diào)整參數(shù),這些基本上都比較枯燥,但是也是最重要的。因?yàn)榻灰字蟹浅V匾氖莻}(cāng)位管理和資金管理。量化交易系統(tǒng)需要根據(jù)交易思想精細(xì)打磨,而不是天天換新路去探索未知。
小編對(duì)金融的了解,幾乎全來(lái)自于書中,而且讀的金融類書籍并不多,所以推薦挑幾本自己認(rèn)為有幫助的入門書,作為投資思路的儲(chǔ)備。我想基本上夠用了,之后再看什么書,就看你自己的選擇了。
第一本肯定是《投資學(xué)》,這是屬于教科書的類別了。做投資,起碼要對(duì)市場(chǎng)會(huì)有一個(gè)基本認(rèn)識(shí)。這本書對(duì)于投資交易講的非常系統(tǒng)。適合建立知識(shí)框架。
第二本是朋友強(qiáng)烈推薦的,也是很著名的《股票大作手回憶錄》,很有故事性,而且干貨多,能讓你了解如何去做交易。或許你已經(jīng)看過(guò)了,就不多說(shuō)了。
第三本是技術(shù)分析的書《日本蠟燭圖技術(shù)》,也不用多介紹或許你也看過(guò)了。唯一的目的不是讓你學(xué)形態(tài)做分析,而是為了讓你能夠了解蠟燭圖并畫出來(lái)(了解描述指標(biāo)的方法),感受這個(gè)動(dòng)態(tài)過(guò)程中的力量對(duì)比。
第四本是《海龜交易法》,可以看作是一個(gè)交易策略各個(gè)組成部分的講解,如果你能設(shè)計(jì)出一個(gè)類似乎海龜交易法則的交易策略出來(lái),量化交易應(yīng)該算初入門徑了。
首先要明確數(shù)學(xué)是一切的基礎(chǔ)。量化中不管是統(tǒng)計(jì)學(xué)還是計(jì)算機(jī),都離不開(kāi)數(shù)學(xué)。
數(shù)據(jù)分析方面:入門的書有很多:《深入淺出數(shù)據(jù)分析》、《深入淺出統(tǒng)計(jì)學(xué)》、《白話統(tǒng)計(jì)學(xué)》等等隨便挑出來(lái)一本就行(教材另當(dāng)別論)。另外推薦一下《計(jì)量經(jīng)濟(jì)學(xué)》,很多人說(shuō)用處不大,而且因?yàn)槭墙滩?,很學(xué)術(shù)很晦澀,但是我的一位做數(shù)據(jù)分析的朋友推薦說(shuō)《計(jì)量經(jīng)濟(jì)學(xué)》能讓你知道怎么用邏輯和數(shù)字去講故事。從數(shù)據(jù)分析的角度,值得一讀。最后,在這里推薦一本書:《利用Python進(jìn)行數(shù)據(jù)分析》作者是pandas庫(kù)的主要作者,不言而喻是一本很具有專業(yè)性和實(shí)踐性的書(至于為什么用python下面會(huì)提到)。
編程技術(shù)方面:這里略過(guò)針對(duì)程序化交易軟件開(kāi)發(fā)的語(yǔ)言類型(例如文華財(cái)經(jīng)的麥語(yǔ)言、TB等)。從統(tǒng)計(jì)和計(jì)算機(jī)專業(yè)角度,你會(huì)聽(tīng)到有人推薦:MATLAB 、R、Python、C++、C、Java、C#等等。這次我們拿出常常被討論的前4種重點(diǎn)介紹一下。
MATLAB:是面向科學(xué)計(jì)算的,它即是一門語(yǔ)言,也是一款工具。它既可以數(shù)值計(jì)算,也可以矩陣運(yùn)算。優(yōu)勢(shì)在于它實(shí)現(xiàn)算法速度快,數(shù)據(jù)可視化也很方便。在數(shù)學(xué)上應(yīng)用很廣,如果你有數(shù)理背景對(duì)它應(yīng)該并不陌生。
R語(yǔ)言:同屬數(shù)據(jù)分析或統(tǒng)計(jì)類軟件,R語(yǔ)言官網(wǎng)的介紹是說(shuō) R 是統(tǒng)計(jì)計(jì)算和繪圖的語(yǔ)言及環(huán)境。做學(xué)術(shù)的更偏向于用它,因?yàn)樗淖杂啥雀?。R是免費(fèi)的,而且重要的一點(diǎn)在R上算法包更新很快,主要是很多數(shù)據(jù)分析統(tǒng)計(jì)上的新觀點(diǎn)新模型,很多會(huì)用到R編寫發(fā)布傳播(學(xué)術(shù)上常用)。所以如果你是統(tǒng)計(jì)學(xué)出身,建議使用R。
Python:本人很推薦(學(xué)習(xí)ing)。Python是一門腳本語(yǔ)言,其最大的優(yōu)勢(shì)就是易學(xué)易用,其次功能強(qiáng)大,它不止是可以用來(lái)做為數(shù)據(jù)分析或量化交易。如果你剛剛接觸程序開(kāi)發(fā),建議從Python開(kāi)始,它屬于上手很快的類型(類似偽代碼的風(fēng)格)。Python在數(shù)據(jù)分析機(jī)器學(xué)習(xí)中都擁有很多專業(yè)的函數(shù)庫(kù),比如用于科學(xué)計(jì)算的Numpy和Scipy,通過(guò)有機(jī)結(jié)合完全可以替代MATLAB的計(jì)算功能。還有用于數(shù)理數(shù)據(jù)分析的pandas以及用于數(shù)據(jù)可視化的matplotlib等。當(dāng)然作為膠水語(yǔ)言,它在科學(xué)計(jì)算中的成功部分來(lái)源于它能夠輕松地集成C、C++、Fortran代碼。這幾年隨著數(shù)據(jù)科學(xué)的火爆,Python 在TIOBE編程語(yǔ)言排行榜中也從2014年的第9上升到了第4位。由于Python的代碼開(kāi)源,網(wǎng)上能找到的很多源碼學(xué)習(xí)參考,也能找到很多python教程來(lái)學(xué)習(xí)(上面推薦的《利用Python進(jìn)行數(shù)據(jù)分析》附錄部分也有關(guān)于python語(yǔ)法的精要說(shuō)明)。
C++:如果你說(shuō)你要做高頻搶單的交易,推薦使用C++。同等硬件水平,運(yùn)行效率上C++應(yīng)該是除了匯編語(yǔ)言(交易中匯編語(yǔ)言一般用在FPGA上)最快的了。C++非常靈活且十分強(qiáng)大,但學(xué)起來(lái)也自然會(huì)困難許多。一般C++用來(lái)開(kāi)發(fā)交易系統(tǒng)底層、API接口等。相對(duì)Python來(lái)說(shuō)開(kāi)發(fā)周期長(zhǎng)很多。核算時(shí)間成本,對(duì)于初入量化而不懂編程的人并不十分推薦。但如果你是計(jì)算機(jī)專業(yè)出身,請(qǐng)千萬(wàn)用好C++,它將會(huì)是你的巨大優(yōu)勢(shì)!
C++和C語(yǔ)法類似,有人說(shuō)學(xué)C++先學(xué)C會(huì)輕松很多,小編親身體驗(yàn)是謬論。C是面向過(guò)程的,而C++是面向?qū)ο蟮模?span>兩者編程思想是不同的,所以編程思路上也截然不同。如果打算去學(xué)C++就直接去!而Java和C#與C++編程思路類似,但從底層執(zhí)行效率來(lái)看C和C++的效率最高。當(dāng)然C++可以說(shuō)是這里面最難學(xué)的。
在你構(gòu)建自己的交易系統(tǒng)前,我想,你用什么交易軟件是每個(gè)人的選擇,但是首先要分清經(jīng)常聽(tīng)說(shuō)的眾多交易軟件到底是做什么用的。這里說(shuō)明一下交易軟件的層級(jí)關(guān)系,列舉一些我所知道或有代表性的交易軟件。
交易所系統(tǒng)也是交易系統(tǒng)里最牛逼,最龐大,最核心的系統(tǒng)。它們不工作的時(shí)候,所有交易都要停止。交易所系統(tǒng)一般都是專門定制的,位于國(guó)內(nèi)交易市場(chǎng)的核心。其他所有層級(jí)的軟件,都要適應(yīng)交易所系統(tǒng)的功能進(jìn)行開(kāi)發(fā)和對(duì)接。
柜臺(tái)系統(tǒng)是經(jīng)紀(jì)商使用的系統(tǒng),一般的客戶是不會(huì)接觸的。經(jīng)紀(jì)商柜臺(tái)系統(tǒng)一頭連接交易所,另一頭連接客戶,它是經(jīng)紀(jì)商的核心生產(chǎn)系統(tǒng)。一般來(lái)說(shuō),每家經(jīng)紀(jì)商有一套主交易系統(tǒng),多套次席交易系統(tǒng)。
主席系統(tǒng):包含有交易、結(jié)算、風(fēng)控等諸多功能,所有數(shù)據(jù)最終都要導(dǎo)入到主席系統(tǒng)。功能完備,無(wú)所不包是它的優(yōu)勢(shì),但也因?yàn)榘喙δ?,在信息處理速度上主席系統(tǒng)會(huì)受到一些影響。比如CTP就是國(guó)內(nèi)主要的主席系統(tǒng)。
次席系統(tǒng):則更加追求交易的速度和效率,是主席系統(tǒng)的補(bǔ)充,主要滿足高端投資者對(duì)交易的高要求。例如飛鼠高頻交易系統(tǒng)就是針對(duì)追求速度的交易者開(kāi)發(fā)的次席系統(tǒng)。除了CTP和飛鼠,國(guó)內(nèi)期貨行業(yè)主要的柜臺(tái)系統(tǒng)還有恒生、飛馬、飛創(chuàng)、易盛、金士達(dá)等。
交易軟件是屬于客戶使用的軟件,也擁有最為豐富的品類。其中分為普通的交易客戶端(例如快期等)以及程序化交易客戶端。
程序化交易客戶端指的是擁有編程功能的交易客戶端,客戶可以自行編制程序化指令,通過(guò)程序化交易客戶端運(yùn)行,實(shí)現(xiàn)自動(dòng)或半自動(dòng)的程序化交易。其中,面對(duì)初級(jí)程序化交易者的產(chǎn)品,比如文華財(cái)經(jīng)的贏智程序化交易系統(tǒng)(麥語(yǔ)言)、交易開(kāi)拓者程序化交易系統(tǒng)和金字塔,達(dá)錢&multicharts自動(dòng)化交易系統(tǒng)(MC)。
還有一些更為高端的產(chǎn)品,例如ProgressApama(利用Java開(kāi)發(fā)策略模型)、飛創(chuàng)STP(Java)、易盛程序化交易(C++)、盛立SPT平臺(tái)(C++)、銀飛鼠開(kāi)放式策略平臺(tái)(C語(yǔ)言)等。
這里說(shuō)明一下,平時(shí)我們做股票、期貨用到的同花順、文華、博弈大師都是行情軟件,雖然它們都自帶了交易客戶端,但它們和交易軟件不是一類產(chǎn)品。
最后不得不再次強(qiáng)調(diào)一下:世上沒(méi)有只賺不賠的策略;重要的是人的交易思想、理念和策略組合;把風(fēng)險(xiǎn)分散開(kāi),做好倉(cāng)位管理和資金管理;精心打磨。
祝你找到最合適自己的交易方法。
【編輯:木町】
聯(lián)系客服