小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

年化1000%?!什么才是回測(cè)的正確姿勢(shì)之系列一

 立志德美 2019-04-29

TUSHARE  金融與技術(shù)學(xué)習(xí)興趣小組 

翻譯 | Renormalizing

本期編輯 | Little monster 

譯者簡(jiǎn)介:美國(guó)俄亥俄州立大學(xué)高能物理實(shí)驗(yàn)(PhD),主要研究粒子物理實(shí)驗(yàn)數(shù)據(jù),最近開始接觸金融與機(jī)器學(xué)習(xí)方面的知識(shí)。

作者:QuantStart Team

算法回測(cè)需要各式各樣的知識(shí),涵蓋了心理學(xué),數(shù)學(xué),統(tǒng)計(jì),軟件開發(fā)以及市場(chǎng)微觀結(jié)構(gòu)等諸多領(lǐng)域。我們不期望在這短短的一篇文章中覆蓋所有的主題,因此我們將分兩三期來(lái)介紹這一主題。在這一期中,我們將會(huì)從回測(cè)的定義入手,進(jìn)而說(shuō)明實(shí)現(xiàn)回測(cè)的基礎(chǔ)。之后我們將解釋回測(cè)過(guò)程中的偏差,最后對(duì)可以進(jìn)行回測(cè)的不同軟件進(jìn)行比較。

在之后的幾期中我們將更加深入的檢視那些策略實(shí)現(xiàn)中常常被忽略的細(xì)節(jié)。同時(shí)通過(guò)考慮交易所的特質(zhì)讓回測(cè)過(guò)程更加貼近現(xiàn)實(shí)。之后我們會(huì)討論交易成本,以及如何在回測(cè)中對(duì)其正確地建模。最后我們將會(huì)討論如何評(píng)估回測(cè)表現(xiàn),并以常見的均值回歸配對(duì)交易策略為例子進(jìn)行分析。

現(xiàn)在就讓我們開始討論什么是回測(cè),以及如何對(duì)我們的算法交易進(jìn)行回測(cè)。本文內(nèi)容概覽如下:

一、什么是回測(cè)?

二、影響策略回測(cè)的偏差

三、不同回測(cè)軟件對(duì)比

一、什么是回測(cè)?

算法交易與其他交易類型的重要區(qū)別在于:算法交易能利用大量的數(shù)據(jù),更好地通過(guò)分析某個(gè)時(shí)間點(diǎn)前的歷史來(lái)預(yù)測(cè)之后的表現(xiàn)。而實(shí)現(xiàn)這一目的的過(guò)程,就叫回測(cè)。

簡(jiǎn)單來(lái)說(shuō),回測(cè)就是將你的交易算法應(yīng)用到一段歷史數(shù)據(jù)中,并產(chǎn)生一系列的交易信號(hào),其產(chǎn)生的一系列交易會(huì)產(chǎn)生一系列的收益或損失。在策略回測(cè)范圍中的一系列收益/損失最終會(huì)累積為總收益/損失,也稱為P&L。這就是回測(cè)的重點(diǎn),盡管還有許多的細(xì)節(jié)需要介紹。那么有哪些關(guān)鍵的原因使得對(duì)算法策略進(jìn)行回測(cè)如此重要呢?

【過(guò)濾】我們希望過(guò)濾掉不滿足特定條件的策略,而回測(cè)提供了一個(gè)篩選機(jī)制來(lái)幫助我們篩去那些表現(xiàn)不能滿足需求的策略。

【建模】回測(cè)可以讓我們測(cè)試關(guān)于特定市場(chǎng)現(xiàn)象的新模型,例如交易成本,買賣盤傳遞,延遲,流動(dòng)性或者其他市場(chǎng)微觀結(jié)構(gòu)。

【優(yōu)化】盡管策略優(yōu)化可能充滿了偏差,回測(cè)允許我們通過(guò)修正策略相關(guān)參數(shù)來(lái)提升策略表現(xiàn)。

【驗(yàn)證】我們采用的策略經(jīng)常從外部得到,回測(cè)可以驗(yàn)證這些策略得到了正確的實(shí)現(xiàn)。盡管我們無(wú)法得到外部策略產(chǎn)生的交易信號(hào),但是往往可以獲取例如夏普比率和回撤率等特征。因此可以通過(guò)比較檢查自己的實(shí)現(xiàn)。

二、影響策略回測(cè)的偏差

回測(cè)盡管為算法交易提供了一系列好處,但是對(duì)一個(gè)策略的回測(cè)往往不是簡(jiǎn)單直接的。一般來(lái)說(shuō),隨著策略頻率的提高,對(duì)市場(chǎng)和交易的微觀結(jié)構(gòu)正確建模變得更加困難。這使得回測(cè)變得更不可靠,同時(shí)使得對(duì)給定策略的評(píng)估變得更加復(fù)雜。對(duì)于那些交易執(zhí)行系統(tǒng)是策略表現(xiàn)關(guān)鍵因素的策略來(lái)說(shuō),譬如超高頻算法,這個(gè)問(wèn)題尤其重要。

很不幸的是,回測(cè)往往會(huì)被各式各樣的偏差干擾,我們現(xiàn)在就來(lái)討論這個(gè)問(wèn)題。

有許多偏差都會(huì)為影響策略在回測(cè)中的表現(xiàn),這些偏差往往會(huì)高估策略的表現(xiàn)。因此,我們往往將回測(cè)視為一個(gè)策略在真實(shí)市場(chǎng)中實(shí)際表現(xiàn)的理想上界。想要從算法交易中完全剔除偏差是不可能的,但是我們可以盡力減少策略中的偏差并對(duì)算法策略做出判斷。在這里我們一共討論四種主要的偏差:優(yōu)化偏差、前瞻性偏差、幸存者偏差、心理容忍偏差。

優(yōu)化偏差

這可能是所有回測(cè)偏差中最隱蔽的偏差了。它源自于對(duì)額外交易參數(shù)的調(diào)整或者引入,直到對(duì)回測(cè)數(shù)據(jù)集的算法表現(xiàn)十分優(yōu)秀。但是此時(shí)策略的實(shí)際表現(xiàn)往往會(huì)不同于預(yù)期。這種偏差又稱為曲線擬合或者數(shù)據(jù)透視偏差。

由于算法策略常常包括許多參數(shù),因此很難完全消除優(yōu)化偏差。在這里,參數(shù)可以是出入條件,回溯周期,平均周期(例如移動(dòng)平均光滑參數(shù))或是波動(dòng)率測(cè)量頻率。我們可以通過(guò)精簡(jiǎn)參數(shù)數(shù)量,提高數(shù)據(jù)集中數(shù)據(jù)點(diǎn)質(zhì)量來(lái)降低優(yōu)化偏差。事實(shí)上,十分值得注意的一件事是,舊的數(shù)據(jù)點(diǎn)有可能遵從以前的范式, 對(duì)于現(xiàn)在的策略來(lái)說(shuō)沒(méi)什么意義。

一種有助于降低優(yōu)化誤差的方法是進(jìn)行敏感度分析,即對(duì)參數(shù)做一系列的變化并繪制出策略表現(xiàn)在參數(shù)空間的超曲面。一個(gè)合適的參數(shù)選擇應(yīng)當(dāng)產(chǎn)生一個(gè)光滑的參數(shù)表面,如果你得到的策略表現(xiàn)是一個(gè)上躥下跳的曲面,那么說(shuō)明這樣的參數(shù)并沒(méi)有反映普遍的現(xiàn)象,而只是從測(cè)試數(shù)據(jù)中硬造出來(lái)的一個(gè)指標(biāo)。

關(guān)于多維優(yōu)化算法有許多的文章,同時(shí)也是研究的熱門領(lǐng)域。在這里我們并不會(huì)繼續(xù)深入,但是希望大家在找到一個(gè)有著超神回測(cè)的策略時(shí)可以多留一個(gè)心眼。

前瞻性偏差

前瞻性偏差來(lái)自于在回測(cè)系統(tǒng)中意外使用了未來(lái)的數(shù)據(jù)。當(dāng)我們的回測(cè)運(yùn)行到時(shí)間點(diǎn)N時(shí),如果使用了時(shí)間點(diǎn)在N+k(k>0)的數(shù)據(jù),就會(huì)引入前瞻性誤差。前瞻性誤差有時(shí)會(huì)極其的微妙。這里給出幾個(gè)前瞻性誤差產(chǎn)生的例子:

【技術(shù)Bug】代碼中的array或vector往往有迭代器或是指標(biāo)變量,錯(cuò)誤的指標(biāo)偏移量可能讀取未來(lái)的數(shù)據(jù)而產(chǎn)生前瞻性誤差。

【參數(shù)計(jì)算】另一個(gè)常見的前瞻性偏差例子在計(jì)算策略優(yōu)化參數(shù)時(shí)產(chǎn)生,例如計(jì)算時(shí)間序列的線性回歸。如果所有的數(shù)據(jù)點(diǎn)都用于回歸參數(shù)的計(jì)算,就會(huì)將未來(lái)的數(shù)據(jù)包括在內(nèi)。

【極大/極小】一些交易策略會(huì)利用一段時(shí)間內(nèi)的極值。但是鑒于極大極小等極值只有在一個(gè)時(shí)間段完成之后才能計(jì)算,如果在這個(gè)時(shí)間段中使用這些參數(shù)就會(huì)帶來(lái)前瞻性誤差。對(duì)極值的使用往往要延后至少一個(gè)時(shí)間段才能使用。

與優(yōu)化偏差類似,我們必須十分小心以避免前瞻性誤差的引入, 這也往往是一些交易策略在實(shí)際交易中表現(xiàn)不佳的主要原因。

幸存者偏差

幸存者偏差是一個(gè)極其危險(xiǎn)的現(xiàn)象,并會(huì)大大高估特定策略類型的表現(xiàn)。當(dāng)一個(gè)策略在測(cè)試時(shí)沒(méi)有包括當(dāng)時(shí)所有可選資產(chǎn),而是只從現(xiàn)在已經(jīng)“幸存”那些資產(chǎn)中選取。

舉例來(lái)說(shuō), 如果隨機(jī)選取標(biāo)的,對(duì)一個(gè)策略在2001年市場(chǎng)崩潰前后進(jìn)行測(cè)試。一些科技股直接破產(chǎn),而另一些則挺了過(guò)來(lái),甚至實(shí)現(xiàn)了增長(zhǎng)。如果我們?cè)谶x擇股票進(jìn)行策略測(cè)試時(shí)只選取那些從市場(chǎng)回落中幸存的那些股票,我們就會(huì)引入幸存誤差,因?yàn)檫@些股票已經(jīng)證明了自己的成功。事實(shí)上,這就是前瞻性誤差的一個(gè)特例,其核心在于未來(lái)的信息摻到了對(duì)過(guò)去的分析中。有兩種方法可以避免幸存偏差對(duì)策略回測(cè)的影響:

【無(wú)幸存偏差的數(shù)據(jù)集】盡管價(jià)格不菲,并往往只有研究機(jī)構(gòu)會(huì)使用,對(duì)于股票的情況可以試著購(gòu)買包括了除名公司的數(shù)據(jù)集。特別要注意的是,Yahoo經(jīng)濟(jì)數(shù)據(jù)就不是剔除幸存者偏差的數(shù)據(jù)集,而且被退休算法交易員廣泛使用。另一方面可以選擇針對(duì)沒(méi)有幸存偏差的標(biāo)的進(jìn)行交易,比如一些大宗商品及其期貨衍生品。

【采用近期的數(shù)據(jù)】只用近期的數(shù)據(jù)可以部分移除幸存者效應(yīng)的權(quán)重, 這只是基于短期內(nèi)股票被除名的概率極小。也可以從現(xiàn)在開始構(gòu)建個(gè)人的無(wú)幸存者偏差數(shù)據(jù)集,在3-4年后就可以獲得一個(gè)可靠的數(shù)據(jù)集來(lái)實(shí)現(xiàn)未來(lái)的策略回測(cè)了。

心理容忍偏差

現(xiàn)在我們來(lái)考慮心理學(xué)現(xiàn)象如何影響你的交易表現(xiàn)。這一現(xiàn)象不只是討論量化交易,而是擴(kuò)展到更加任意的交易方式。這一現(xiàn)象有各種不同的叫法,在這里我們將其稱為心理容忍偏差,這一名稱更好地反映出了問(wèn)題的實(shí)質(zhì)。

在對(duì)過(guò)去五年或更長(zhǎng)時(shí)間的時(shí)間進(jìn)行回測(cè)時(shí),很容易得到向上增長(zhǎng)的凈值曲線,不錯(cuò)的復(fù)合年增長(zhǎng)率,夏普率甚至回撤率都十分令人滿意。一個(gè)策略可能產(chǎn)生最大25%的回撤,而最大回撤時(shí)間可能持續(xù)四個(gè)月。對(duì)于動(dòng)量策略來(lái)說(shuō)這并不常見。在回測(cè)時(shí)可以輕易地說(shuō)服自己忍受這段時(shí)間的損失,但是在實(shí)際操作中,這比想象得困難得多。

如果在回測(cè)中可以觀察到25%甚至更大的歷史回撤, 那么在實(shí)際交易中會(huì)時(shí)長(zhǎng)看到相似的回撤。盡管回測(cè)結(jié)果已經(jīng)預(yù)測(cè)了長(zhǎng)期的回撤,一段持續(xù)的回撤在心理上是十分難熬的。

在這里將其稱為偏差的原因在于,一個(gè)原本可以成功的策略很有可能在一個(gè)長(zhǎng)期的回測(cè)過(guò)程中被中止執(zhí)行,進(jìn)而帶來(lái)遠(yuǎn)不如回測(cè)結(jié)果的實(shí)際表現(xiàn)。因此,即使一個(gè)策略在算法上可行,心理因素同樣會(huì)對(duì)最終收益帶來(lái)巨大的影響。解決的方法就是在實(shí)際交易環(huán)境中預(yù)期這樣的回撤并堅(jiān)持下來(lái)。

三、不同回測(cè)軟件對(duì)比

可以用于回測(cè)的軟件多種多樣,包括了從完全集成化的復(fù)雜軟件包到需要自己從頭編制的各類編程語(yǔ)言(C++,Python,R等)。作為量化交易者,我們需要在開發(fā)交易策略的時(shí)間和策略的速度與可靠性之間找到平衡。 這里有一些值得考慮的關(guān)鍵因素:

【編程能力】 對(duì)環(huán)境的選擇需要考慮編程能力。在這里原作者建議盡量增強(qiáng)自己對(duì)策略實(shí)現(xiàn)的控制能力,原因在于使用外部實(shí)現(xiàn)存在出現(xiàn)自己難以修復(fù)的bug的可能性。當(dāng)然也要考慮生產(chǎn)力,可用庫(kù)和執(zhí)行速度的平衡。

【執(zhí)行能力】有一些回測(cè)軟件,例如Tradestation直接與券商綁定。原作者不建議這種方式,因?yàn)檫@會(huì)增加交易成本,進(jìn)而明顯得影響夏普比率。

【自定義能力】諸如 MATLAB 和 Python 等環(huán)境為算法開發(fā)提供了良好的庫(kù)支持,同時(shí)保留了自主拓展的空間。

【策略復(fù)雜度】有些軟件無(wú)法實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)操作,例如Excel,適合于簡(jiǎn)單策略但不適合大規(guī)模數(shù)據(jù)處理與復(fù)雜的算法。

【偏差最小化】如果是自己構(gòu)建的函數(shù),需要盡力保證不引入偏差。

【開發(fā)速度】交易者不應(yīng)當(dāng)花費(fèi)幾個(gè)月的時(shí)間只是為了實(shí)現(xiàn)一個(gè)回測(cè)引擎。我們只應(yīng)該在原型程序上花費(fèi)幾周的時(shí)間。應(yīng)該確保我們花在軟件開發(fā)上的時(shí)間不應(yīng)該只帶來(lái)有限的運(yùn)行速度提升。(C++風(fēng)評(píng)被害)

【運(yùn)行速度】如果你的策略完全基于執(zhí)行的時(shí)間,例如HFT/UHFT,那么C或是C++就是必要的,使用Linux核優(yōu)化與FPGA則不在這篇文章的討論范圍。

【花費(fèi)】有許多可以編寫算法交易策略的軟件環(huán)境都是免費(fèi)開源的。事實(shí)上,有許多對(duì)沖基金都使用開源軟件進(jìn)行算法開發(fā)。此外Excel和MATLAB都相對(duì)便宜,而且有免費(fèi)替代品。

既然我們已經(jīng)有了一系列的準(zhǔn)則,就可以對(duì)目前流行的一系列軟件包進(jìn)行比較:

不同的策略對(duì)軟件有不同的需求,HFT和UHFT就需要用C++編寫(現(xiàn)在還可以通過(guò)GPU和FPGA實(shí)現(xiàn))。在實(shí)際的開發(fā)過(guò)程中可以先用Python實(shí)現(xiàn)策略原型,之后將執(zhí)行較慢的部分用C++代替,最終使用C++代碼進(jìn)行實(shí)盤交易。

在接下來(lái)關(guān)于回測(cè)的幾期中,我們將會(huì)討論關(guān)于回測(cè)實(shí)現(xiàn)的具體問(wèn)題,以及如何引入市場(chǎng)成交的影響。同時(shí)也會(huì)討論如何評(píng)判策略表現(xiàn)并舉一個(gè)策略作為例子進(jìn)行分析。

END

米哥點(diǎn)評(píng)

確實(shí)在一些量化大賽或者量化平臺(tái)的論壇里見過(guò)很多次回測(cè)年化達(dá)到1000%的情況,我并不認(rèn)為這是一件值得大驚小怪的事,因?yàn)槟莾H僅是一種回測(cè)。且不說(shuō)是否用了未來(lái)函數(shù)、過(guò)度擬合或者過(guò)度優(yōu)化,各種滑點(diǎn)、手續(xù)費(fèi)、市場(chǎng)容量以及樣本的問(wèn)題都需要認(rèn)真考慮。用自己的投資經(jīng)驗(yàn),結(jié)合干凈的歷史數(shù)據(jù),通過(guò)編程工具等技術(shù)手段實(shí)現(xiàn)完美的回測(cè)效果,是落地量化投資過(guò)程的重要一環(huán)。本文從量化的實(shí)現(xiàn)過(guò)程、需要注意的環(huán)境以及各類工具的優(yōu)缺點(diǎn)進(jìn)行了說(shuō)明,相信能給想要進(jìn)入量化投資領(lǐng)域的朋友帶來(lái)一些幫助。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多