這篇文章為大家介紹量化交易系統(tǒng)中最為常見(jiàn)的幾個(gè)基本概念鸭限。本篇的預(yù)期讀者主要是希望成為基金公司量化交易員的人俯画,以及嘗試搞搞個(gè)人算法交易的愛(ài)好者析桥。
量化交易是量化金融行業(yè)中最為尖端的一個(gè)領(lǐng)域,不論你是希望通過(guò)面試還是構(gòu)建自己的交易策略活翩,都會(huì)花費(fèi)大量的時(shí)間與精力學(xué)習(xí)相關(guān)的知識(shí)烹骨。不僅如此翻伺,你還需要過(guò)關(guān)的編程技術(shù)材泄,至少需要精通一門(mén)高級(jí)編程語(yǔ)言(如MATLAB、R或Python)吨岭,而且伴隨著高頻交易策略的日益盛行拉宗,技術(shù)層面對(duì)于策略執(zhí)行效果越來(lái)越至關(guān)重要,精通C/C++也許是最佳的選擇辣辫。
量化交易系統(tǒng)包含以下四個(gè)主要組件:
- 策略構(gòu)建模塊:尋找策略旦事,發(fā)掘可用優(yōu)勢(shì),決定交易頻率急灭。
- 策略回測(cè)模塊:獲取數(shù)據(jù)姐浮,分析策略表現(xiàn),排除模型偏差葬馋。
- 指令執(zhí)行系統(tǒng):對(duì)接券商卖鲤,自動(dòng)化交易,合理減少交易費(fèi)用畴嘶。
- 風(fēng)險(xiǎn)控制模塊:最優(yōu)化資產(chǎn)配置蛋逾,根據(jù)凱利公式與交易心理學(xué)決定風(fēng)險(xiǎn)容忍度。
**注:凱利公式
凱利公式是一條可應(yīng)用在投資資金和賭注的公式窗悯。應(yīng)用于多次的隨機(jī)賭博游戲区匣,資金的期望增長(zhǎng)率最高,且永遠(yuǎn)不會(huì)導(dǎo)致完全損失所有資金的后果蒋院。它假設(shè)賭博可無(wú)限次進(jìn)行亏钩,而且沒(méi)有下注上下限莲绰。
**
策略構(gòu)建
量化交易始于研究,研究過(guò)程包含選定策略姑丑、校驗(yàn)策略(檢查其是否與當(dāng)前投資組合的其他策略有沖突)钉蒲、優(yōu)化策略(通過(guò)數(shù)據(jù)對(duì)策略調(diào)優(yōu),提高回報(bào)率彻坛,降低風(fēng)險(xiǎn))等過(guò)程顷啼。需要注意的是,如果你是非機(jī)構(gòu)投資者昌屉,你還需要考慮自身的“資本充足率”钙蒙,交易費(fèi)用對(duì)于你策略的影響也會(huì)更大。
與大家的普遍印象不同间驮,通過(guò)公共資源就可以獲取到許多有用的策略躬厌,學(xué)術(shù)期刊會(huì)發(fā)布一些理論交易結(jié)果(大部分對(duì)于交易成本的考慮比較粗糙),相關(guān)博客會(huì)深入討論一些策略竞帽,行業(yè)期刊上則會(huì)概述一些基金所使用的策略扛施。
你可以會(huì)感到困惑,為什么這些個(gè)人與機(jī)構(gòu)會(huì)熱衷于公開(kāi)討論他們的策略屹篓?他們都非常明白如果其他人都蜂擁使用此策略時(shí)疙渣,這些策略可能會(huì)失效。真實(shí)原因在于堆巧,他們從來(lái)不會(huì)公開(kāi)策略的調(diào)優(yōu)方法與詳細(xì)的參數(shù)設(shè)置妄荔,而調(diào)優(yōu)過(guò)程才是將一個(gè)普通策略提升到高盈利狀態(tài)的關(guān)鍵所在。事實(shí)上谍肤,找一個(gè)類似的已有策略啦租,并實(shí)施自己的優(yōu)化過(guò)程,才是目前構(gòu)建自身策略的最佳實(shí)踐荒揣。
你可以從以下網(wǎng)站找尋些策略的靈感:
- Social Science Research Network - www.ssrn.com
- arXiv Quantitative Finance - arxiv.org/archive/q-fin
- Seeking Alpha - www.seekingalpha.com
- Elite Trader - www.elitetrader.com
- Nuclear Phynance - www.nuclearphynance.com
- Quantivity - quantivity.wordpress.com
你看到的大多數(shù)策略可以分為均值回歸與趨勢(shì)跟蹤/慣性策略兩類篷角。均值回歸策略認(rèn)為標(biāo)的資產(chǎn)的價(jià)格序列(如兩個(gè)關(guān)聯(lián)資產(chǎn)的價(jià)格差異)存在長(zhǎng)期均值,短期的偏離最終必定恢復(fù)系任。趨勢(shì)跟蹤策略則在跟蹤市場(chǎng)趨勢(shì)的同時(shí)恳蹲,通過(guò)對(duì)投資者心理及大型基金的資產(chǎn)結(jié)構(gòu)的分析收集某個(gè)交易方向的慣性,跟蹤該趨勢(shì)直到慣性發(fā)生反轉(zhuǎn)赋除。
另一個(gè)重要趨勢(shì)是交易頻率阱缓。低頻交易(LFT)通常是指持有標(biāo)的資產(chǎn)超過(guò)一個(gè)交易日的策略,高頻交易(HFT)則只在交易日內(nèi)持有資產(chǎn)举农,還有超高頻交易(UHFT)只持有標(biāo)的幾秒甚至幾毫秒荆针。雖然對(duì)于個(gè)人投資者來(lái)說(shuō)高頻和超高頻策略也都是可實(shí)現(xiàn)的,但必須對(duì)于交易的技術(shù)棧和交易所的報(bào)價(jià)成交原理非常了解,這篇文章不會(huì)對(duì)這些方面做過(guò)多的延伸航背。
策略/策略集一旦構(gòu)建完成喉悴,就需要用歷史數(shù)據(jù)進(jìn)行收益能力的評(píng)估測(cè)試。接下來(lái)就是回測(cè)發(fā)揮的環(huán)節(jié)了玖媚。
回測(cè)
回測(cè)的目的在于使用歷史及樣本外數(shù)據(jù)對(duì)策略進(jìn)行驗(yàn)證箕肃,確定其能否創(chuàng)造預(yù)期收益,結(jié)果也會(huì)被看做為該策略實(shí)盤(pán)操作的一個(gè)預(yù)期值今魔。但實(shí)盤(pán)涉及因素極其復(fù)雜勺像,回測(cè)并不能確保策略的成功。
回測(cè)可能是量化交易中要求最為精細(xì)的一環(huán)错森,因?yàn)樘嗫赡艿娜藶槠顣?huì)涉及其中吟宦,一般包括前視偏差、幸存偏差和優(yōu)化偏差(也被成為數(shù)據(jù)透視偏差)涩维。關(guān)于回測(cè)還有幾個(gè)需要關(guān)注的關(guān)鍵點(diǎn)殃姓,包括歷史數(shù)據(jù)的質(zhì)量和可得性、實(shí)際交易成本的影響及如何確定一個(gè)健壯的回測(cè)平臺(tái)瓦阐,下文指令執(zhí)行系統(tǒng)中會(huì)進(jìn)一步討論交易成本蜗侈。
通過(guò)歷史數(shù)據(jù)測(cè)試及優(yōu)化是回測(cè)必須的步驟。市場(chǎng)中有各種不同的標(biāo)的資產(chǎn)睡蟋,更有數(shù)不勝數(shù)的數(shù)據(jù)供應(yīng)商踏幻,服務(wù)價(jià)格取決于數(shù)據(jù)的質(zhì)量、深度及實(shí)時(shí)性薄湿。對(duì)于菜鳥(niǎo)量化交易員(至少是個(gè)人投資級(jí)別)來(lái)說(shuō)叫倍,一般Yahoo金融上的免費(fèi)數(shù)據(jù)就足以大家使用。我會(huì)著重介紹在處理歷史數(shù)據(jù)集是的常見(jiàn)問(wèn)題豺瘤,數(shù)據(jù)供應(yīng)商這里不會(huì)詳述。
**注:數(shù)據(jù)透視偏差是指使用過(guò)多參數(shù)與擬合歷史數(shù)據(jù)听诸,而沒(méi)有進(jìn)行大數(shù)據(jù)量坐求、樣本外測(cè)試及敏感度分析導(dǎo)致的偏差
**
關(guān)于歷史數(shù)據(jù)主要關(guān)心準(zhǔn)確度/清潔度、幸存者偏差及對(duì)于公司行為(如發(fā)放股利晌梨、拆股等)的調(diào)整桥嗤。
- 準(zhǔn)確度指數(shù)據(jù)的整體質(zhì)量(是否存在謬誤數(shù)據(jù))。錯(cuò)誤數(shù)據(jù)有時(shí)候很容易發(fā)現(xiàn)仔蝌,比如使用窄帶濾波器可以從時(shí)間序列數(shù)據(jù)中篩選出超出范圍的數(shù)據(jù)并修正它們泛领,但有時(shí)候也非常難以確定,通常我們需要兩個(gè)以上的數(shù)據(jù)提供商敛惊,通過(guò)比對(duì)確定數(shù)據(jù)是否準(zhǔn)確渊鞋。
- 幸存者偏差,通常免費(fèi)或比較便宜的數(shù)據(jù)集都存在這個(gè)問(wèn)題,幸存者偏差是指數(shù)據(jù)集中不在包含已經(jīng)不再流通的資產(chǎn)锡宋,比如已經(jīng)退市或者破產(chǎn)的股票儡湾。使用這種數(shù)據(jù)集進(jìn)行回測(cè)會(huì)導(dǎo)致評(píng)估業(yè)績(jī)比真實(shí)的(歷史上)業(yè)績(jī)要好,因?yàn)閿?shù)據(jù)集相當(dāng)于做了一次自我篩選执俩,篩選出了歷史上表現(xiàn)較好的股票徐钠。
- 公司行為通常會(huì)對(duì)原始股票價(jià)格出現(xiàn)階梯性影響,而這部分影響在計(jì)算基于價(jià)格的收益率時(shí)不應(yīng)當(dāng)被考慮進(jìn)來(lái)役首,股利分發(fā)與拆股是最為常見(jiàn)的公司行為尝丐。每當(dāng)發(fā)生公司行為時(shí),都要經(jīng)歷價(jià)格的回調(diào)衡奥,要注意千萬(wàn)別把拆股與真實(shí)的價(jià)格調(diào)整給混淆了摊崭,許多交易員都曾在公司行為上栽過(guò)跟頭。
執(zhí)行回測(cè)需要一個(gè)軟件平臺(tái)杰赛,你可以選擇專業(yè)的回測(cè)軟件呢簸,如Tradestation;一個(gè)數(shù)值處理平臺(tái)乏屯,比如Excel或MATLAB根时;也可以使用Python或者C++自主研發(fā)一套軟件。這里不會(huì)詳述Tradestation辰晕、Excel和MATLAB蛤迎,因?yàn)槲蚁M麡?gòu)建一套完整的技術(shù)棧,這么做的一個(gè)好處在于回測(cè)軟件和指令執(zhí)行系統(tǒng)可以緊密的結(jié)合在一起含友,即使面對(duì)的是一個(gè)高級(jí)統(tǒng)計(jì)學(xué)策略替裆,對(duì)于高頻交易策略,自主研發(fā)甚至可以說(shuō)是必須的窘问。
進(jìn)行回測(cè)時(shí)辆童,回測(cè)系統(tǒng)必須能夠定量地給出策略的收益表現(xiàn)。最大跌幅與夏普比率是業(yè)界公認(rèn)的兩個(gè)度量標(biāo)準(zhǔn)惠赫。最大跌幅標(biāo)注了一定時(shí)期內(nèi)(通常以年為單位)賬戶資金曲線中最大的波峰-波谷差把鉴,通常以百分比計(jì)量。因?yàn)橐恍┙y(tǒng)計(jì)學(xué)因素影響儿咱,低頻交易的最大跌幅要比高頻來(lái)得更大些庭砍。歷史回測(cè)可以得到歷史上的最大跌幅,對(duì)于未來(lái)具有很強(qiáng)的指導(dǎo)意義混埠。第二個(gè)指標(biāo)是夏普比率怠缸,它被定義為超額收益的平均值除以這些超額收益的標(biāo)準(zhǔn)差,超額收益指策略高于預(yù)定基準(zhǔn)收益的部分钳宪,基準(zhǔn)收益常會(huì)選擇標(biāo)普500或3個(gè)月的國(guó)債揭北。需要注意的是扳炬,“年化收益”這個(gè)平日里常見(jiàn)的指標(biāo),回測(cè)里確基本不用罐呼,因?yàn)樗鼪](méi)有將策略的波動(dòng)性考慮進(jìn)去鞠柄。
回測(cè)完成,確信策略中已經(jīng)排除了所有偏差嫉柴,如果運(yùn)氣好夏普比率和最大跌幅表現(xiàn)都挺好厌杜,那么恭喜你,可以開(kāi)始著手構(gòu)建指令執(zhí)行系統(tǒng)了计螺!
指令執(zhí)行系統(tǒng)
通過(guò)指令執(zhí)行系統(tǒng)夯尽,策略產(chǎn)生的交易指令被傳送給經(jīng)紀(jì)商并執(zhí)行。現(xiàn)實(shí)當(dāng)中登馒,指令生成可以是半自動(dòng)或者全自動(dòng)匙握,執(zhí)行機(jī)制也可以配置為手工、半手工或者完全自動(dòng)陈轿。低頻交易中圈纺,手工和半手工較為常見(jiàn),而高頻交易則需要建立完全自動(dòng)化的執(zhí)行機(jī)制麦射,通常也需要與指令生成模塊緊密配合蛾娶。
構(gòu)建指令執(zhí)行系統(tǒng)的關(guān)鍵在于對(duì)接券商的接口、降低交易費(fèi)用的策略(包含傭金潜秋、滑點(diǎn)及經(jīng)紀(jì)商買(mǎi)賣差價(jià))及處理實(shí)盤(pán)與回測(cè)預(yù)測(cè)業(yè)績(jī)差異的處理蛔琅。
經(jīng)紀(jì)商提供了多種交易接入方式,從電話到高性能API任你挑選峻呛。理想情況下罗售,每個(gè)人都希望自己的指令執(zhí)行越自動(dòng)化越好,還有支持多策略并行及如何提高執(zhí)行頻率钩述,這些宏偉的目標(biāo)都促使你不斷前進(jìn)寨躁。常用的回測(cè)軟件,MATLAB切距、Excel及Tradestation在低頻朽缎、簡(jiǎn)單的交易策略中都可以表現(xiàn)很好,但如果你希望實(shí)施實(shí)盤(pán)的高頻交易谜悟,那么你必須使用高性能的編程語(yǔ)言如C++構(gòu)建一個(gè)自己的指令執(zhí)行系統(tǒng)。我之前就職的基金公司里北秽,有一個(gè)10分鐘的交易回路葡幸,每十分鐘我們可以就可以從這個(gè)回路下載最新的市場(chǎng)數(shù)據(jù),并基于新數(shù)據(jù)在這個(gè)10分鐘的周期內(nèi)完成交易贺氓,據(jù)說(shuō)是用優(yōu)化過(guò)的Python腳本實(shí)現(xiàn)的蔚叨。如果需要實(shí)現(xiàn)分鐘甚至秒級(jí)別的數(shù)據(jù)交互,C/C++可能表現(xiàn)會(huì)更好些。
在一個(gè)大型基金中蔑水,指令如何最優(yōu)執(zhí)行通常不在量化交易員的工作范疇邢锯,但在小型點(diǎn)的基金或做高頻交易的公司,交易員既是指令的執(zhí)行者搀别,同時(shí)又必須要具備更廣泛的技能丹擎。如果希望供職于基金,那么請(qǐng)你記住一點(diǎn)歇父,你的編程技能可能要比你的統(tǒng)計(jì)學(xué)蒂培、經(jīng)濟(jì)學(xué)技能更為重要!
指令執(zhí)行過(guò)程中經(jīng)常會(huì)出現(xiàn)問(wèn)題的地方在于交易費(fèi)用的優(yōu)化榜苫。最為常見(jiàn)的三類費(fèi)用包含
- 傭金/稅費(fèi)(commission/tax)护戳,通常由經(jīng)紀(jì)商、交易所或監(jiān)管機(jī)構(gòu)收取
- 滑點(diǎn)(slippage)垂睬,指你訂單希望的成交價(jià)格與實(shí)際成交價(jià)格的差異(一般會(huì)在行情波動(dòng)大或市場(chǎng)缺乏流動(dòng)性的時(shí)候出現(xiàn))
- 價(jià)差(spread)媳荒,指交易標(biāo)的的買(mǎi)賣報(bào)價(jià)之差,注意價(jià)差并非常量驹饺,會(huì)跟隨市場(chǎng)訂單的情況而不停變化钳枕。
交易成本對(duì)策略影響很大,甚至可以讓一個(gè)原本高盈利高夏普率的策略搖身一變成為爛到掉渣的策略逻淌,通過(guò)回測(cè)正確預(yù)測(cè)交易成本極具挑戰(zhàn)性么伯。依據(jù)交易策略頻率,需要獲取歷史成交數(shù)據(jù)(包含逐筆交易的買(mǎi)賣信息)卡儒,數(shù)據(jù)量很大田柔,所以大型基金中,基本所有寬客團(tuán)隊(duì)都在專注于指令的執(zhí)行優(yōu)化骨望。以如下場(chǎng)景為例硬爆,一個(gè)基金需要拋售大量的標(biāo)的資產(chǎn),如果上來(lái)就大量?jī)A銷擎鸠,會(huì)導(dǎo)致股價(jià)快速大幅下降缀磕,該指令也就沒(méi)有獲得最優(yōu)的執(zhí)行。因此劣光,算法一般會(huì)將該指令拆分為“點(diǎn)滴訂單”袜蚕,盡管可能需要承擔(dān)滑點(diǎn)風(fēng)險(xiǎn)。再深入一步绢涡,甚至有專門(mén)的策略來(lái)捕捉這些情況并加以利用牲剃,這個(gè)領(lǐng)域被稱為“基金結(jié)構(gòu)套利”。
指令執(zhí)行系統(tǒng)最后一個(gè)主要關(guān)注點(diǎn)在于策略的真實(shí)表現(xiàn)與回測(cè)中的期望的差別雄可,有許多原因會(huì)導(dǎo)致這種情況凿傅,比如之前已經(jīng)回測(cè)部分已經(jīng)提到的前視偏差和數(shù)據(jù)透視偏差缠犀。但一些策略在真實(shí)運(yùn)行前很難發(fā)現(xiàn)偏差,高頻交易尤為明顯聪舒。交易策略和指令執(zhí)行系統(tǒng)都可能存在回測(cè)中無(wú)法復(fù)現(xiàn)辨液,但在線上實(shí)盤(pán)又出來(lái)?yè)v亂的bug,市場(chǎng)也可能因?yàn)橐粋€(gè)策略的部署從而天翻地覆箱残。新的監(jiān)管環(huán)境滔迈,投資者情緒與宏觀經(jīng)濟(jì)的變化都可能導(dǎo)致市場(chǎng)行為的變化,進(jìn)而也會(huì)影響你策略的表現(xiàn)疚宇。
風(fēng)險(xiǎn)管理
風(fēng)險(xiǎn)管理是量化交易魔方的最后一塊亡鼠,我們之前討論的所有偏差都屬于風(fēng)險(xiǎn)的范疇。常見(jiàn)的風(fēng)險(xiǎn)有技術(shù)性風(fēng)險(xiǎn)(比如交易所的服務(wù)突然發(fā)生了硬盤(pán)故障)敷待、經(jīng)紀(jì)商風(fēng)險(xiǎn)(比如經(jīng)紀(jì)商破產(chǎn)了间涵,別笑,真的有榜揖,MF Global9戳ā)等,簡(jiǎn)言之举哟,只要會(huì)影響交易進(jìn)行的因素思劳,都可能帶來(lái)風(fēng)險(xiǎn)。
風(fēng)險(xiǎn)管理還需要確定最優(yōu)資本配置(組合理論的一個(gè)分支)妨猩,這意味著資本如何分配到不同的策略上執(zhí)行潜叛。這是一個(gè)非常復(fù)雜的研究領(lǐng)域,需要依賴非凡的數(shù)學(xué)技能壶硅。目前凱利公式是業(yè)界公認(rèn)進(jìn)行資產(chǎn)及杠桿配置的標(biāo)準(zhǔn)威兜,凱利公式提出了一些收益的統(tǒng)計(jì)特征假設(shè),但在真實(shí)的金融市場(chǎng)中卻不一定總是正確庐椒,交易員具體使用其時(shí)一般偏保守椒舵。
風(fēng)險(xiǎn)管理的另一個(gè)主要作用是用來(lái)排除交易員的心理障礙,有許多認(rèn)知偏差會(huì)潛移默化地影響到交易過(guò)程约谈。盡管大家普遍認(rèn)同如果策略完全交由算法執(zhí)行問(wèn)題會(huì)更少笔宿,但目前很多交易還是需要經(jīng)交易員之手。損失厭惡是一種常見(jiàn)偏差棱诱,當(dāng)處于虧損狀態(tài)時(shí)泼橘,可能會(huì)由于確認(rèn)損失帶來(lái)的痛苦而遲遲不進(jìn)行止損,盈利情況下類似迈勋,可能會(huì)因?yàn)楹ε率ヒ勋@收益而過(guò)早地交易侥加。當(dāng)交易員強(qiáng)調(diào)最近而忽略了長(zhǎng)期,則會(huì)產(chǎn)生另一種常見(jiàn)偏差——近期偏差粪躬。當(dāng)然也有經(jīng)典的情緒偏差——恐懼與貪婪担败,它們會(huì)導(dǎo)致杠桿不足/杠桿過(guò)高,進(jìn)而可能導(dǎo)致收益降低或爆倉(cāng)的情況镰官。
總結(jié)
顯而易見(jiàn)提前,量化交易是量化金融中一個(gè)極其復(fù)雜,但卻非常有趣的領(lǐng)域泳唠。這篇文章我只是觸及皮毛地介紹了量化金融的基本框架狈网,文中很多我只是一兩句話帶過(guò)的內(nèi)容都有對(duì)應(yīng)詳盡的書(shū)籍與論文,所以建議在你準(zhǔn)備申請(qǐng)量化交易相關(guān)工作之前笨腥,一定要補(bǔ)一補(bǔ)基礎(chǔ)知識(shí)拓哺,至少要對(duì)統(tǒng)計(jì)、經(jīng)濟(jì)學(xué)有個(gè)大略的認(rèn)識(shí)脖母,有MATLAB士鸥、Python或者R的相關(guān)實(shí)踐,對(duì)于更高級(jí)的高頻交易谆级,你還需要Linux內(nèi)核烤礁、C/C++,匯編及網(wǎng)絡(luò)延遲優(yōu)化等技能肥照。
如果你對(duì)創(chuàng)建自己的算法交易策略感興趣脚仔,建議你首先精通編程,盡可能自己構(gòu)建數(shù)據(jù)采集器舆绎、策略回測(cè)及指令執(zhí)行系統(tǒng)鲤脏,因?yàn)樵囅肽愕淖杂匈Y本一直在線持續(xù)運(yùn)作,親自完成完備的測(cè)試吕朵、熟悉策略里的各種陷阱與問(wèn)題猎醇,相對(duì)于把這部分工作外包出去,是不是更能睡個(gè)安穩(wěn)覺(jué)呢:)
翻譯自
https://www.quantstart.com/articles/Beginners-Guide-to-Quantitative-Trading
原標(biāo)題:Beginner's Guide to Quantitative Trading
作者: Mike Halls-Moore