通過開發(fā)程序化模型來駕馭波動,將其轉(zhuǎn)化成交易利潤,已經(jīng)成為越來越多人的選擇。不論新入市的學(xué)生還是期貨老手,很多人都打磨過自己的交易系統(tǒng),嘗試使之程序化。交易新手構(gòu)建程序化模型時,往往容易出現(xiàn)很多障礙和誤區(qū),很多錯誤的思路和思考方式讓我們都曾經(jīng)誤入歧途,浪費了時間精力,還沒有得到有效的模型框架。 同樣是作為交易者,從蹣跚學(xué)步到管理程序化賬戶,再到管理公司的基金產(chǎn)品,以及配置其他交易員的賬戶作為基金資產(chǎn)配置,我希望通過這篇文章貢獻一點自己的體會和交易邏輯。 我相信做程序化的交易者、模型開發(fā)者,大部分都是聰明且勤奮的人,這條路雖然不好走,但是堅持走下去,在困難中總結(jié)經(jīng)驗,不斷產(chǎn)生和驗證假設(shè),廣開閱讀和交流渠道,終會有所收獲。 相關(guān)鏈接:15節(jié)精品課、9套策略源碼分享,帶您零基礎(chǔ)學(xué)量化! 1、過度挖掘時間序列信息 對于數(shù)據(jù)的過度挖掘,會造成模型在建模階段表現(xiàn)優(yōu)異,但實盤最終失效。這個道理很多人都懂,但總是無法控制自己要去過度使用一段期貨時間序列數(shù)據(jù),無論是優(yōu)化參數(shù)還是讓模型結(jié)構(gòu)過度復(fù)雜,其實都是對于數(shù)據(jù)的過度挖掘。 我們在之前撰寫的資料里,和一些公開的課程中,都盡量讓各位讀者了解到,期貨市場很大很豐富,數(shù)據(jù)有很多個維度,今天簡單展開幾個維度來講解。 A、期貨品種時間序列的不同周期。1分鐘線、15分鐘線、1小時線、日線,都蘊含著不同信息,而且有不同的噪音和信號比率,一般我們傾向于選擇信號比率更高的、相對較慢的周期去構(gòu)建模型,并試圖尋找到各品種通用的、比較安全的參數(shù)。 B、期貨品種之間的相關(guān)性和動量特性。螺紋鋼和熱卷,都是鋼鐵廠的產(chǎn)品,都需要鐵礦石,需要焦炭來煉制。螺紋和熱卷可以做類似的套利交易,也可以用一者反應(yīng)另一者的波動強弱,做相關(guān)操作,這樣就引入了不僅一個品種自己的時間序列,而是引入了更多信息。 C、每個品種不僅像經(jīng)濟學(xué)統(tǒng)計數(shù)據(jù)那樣只有點數(shù)據(jù),而是有多個價格可以采用。特別是開盤價,它透露了集合競價的信息,這個信息和收盤價同樣重要,還有日線結(jié)算價,它是不是也可以做一些分析?需要反復(fù)思考。最高最低價呢?他們除了可以作為突破類模型的成交點位,還可以成為衡量日內(nèi)波動范圍的重要參考信息。 D、全市場信息值得關(guān)注。海龜交易法則也說過全市場同向波動很大的時候,需要注意風(fēng)險,我們也經(jīng)歷了2016年雙11期貨黑暗的劇烈震蕩行情,能否通過全市場數(shù)據(jù)分析得到現(xiàn)在的風(fēng)險度,然后做一些交易上的控制? E、我們應(yīng)該注意到,成交量可以作為反饋交易熱度的數(shù)據(jù),特別是成交量的快速變化。由此可以想到,它不僅能夠作為一個參數(shù)調(diào)節(jié)模型,還能夠作為一種方式來重構(gòu)數(shù)據(jù),比如有機構(gòu)投資者提到的“等量線”,這要求我們有較強的IT能力。還有持倉量,如果在一輪巨大的上漲中,多頭在某個階段總是降低持倉,說明前期的籌碼發(fā)生了松動,是值得警惕的信號,也許意味著,我們需要更謹(jǐn)慎面對市場波動。還有成交量和持倉量的一致性關(guān)系。 F、價格的多頭和空頭,模型的多頭和空頭,其實在很多細(xì)節(jié)上是有差異的,是需要分開應(yīng)對的。這造成了我們的模型可能要拆分多空構(gòu)建,要給予多頭空頭不同參數(shù)控制模型關(guān)鍵組件,不要擔(dān)心這是一個危險的優(yōu)化,實際上這是符合行為金融學(xué)的。 2、偏愛高噪音的小周期 這也是程序化模型的陷阱,很重要的一個陷阱。在我最初學(xué)習(xí)模型構(gòu)建的時候,總覺得自己要建立一套快速反饋市場波動的模型,心里想著高頻交易等關(guān)鍵字,仿佛我們的目標(biāo)就是追求速度,和市場賽跑。然而實際上并非如此,高頻領(lǐng)域的噪音很嚴(yán)重,時間序列變得難以捉摸和統(tǒng)計得到一個穩(wěn)定的特征。 在七禾網(wǎng)即將上線的《15節(jié)精品課、9套策略源碼分享,帶您零基礎(chǔ)學(xué)量化!》中的第8課上,我們講解了周期和噪音的關(guān)系。 相關(guān)鏈接:15節(jié)精品課、9套策略源碼分享,帶您零基礎(chǔ)學(xué)量化! 首先我們將持續(xù)較長地、波動方向一致的價格變化稱之為趨勢,或者大勢。相對應(yīng)的,在此過程中呈現(xiàn)短期相反方向的就是噪音。 商品期貨時間序列的趨勢會突破很多個價格區(qū)間,走出波瀾壯闊的行情,非常有利于方向性投機交易者獲得利潤。但是與此同時,小幅度震蕩甚至大幅度震蕩也是顯著存在的,這是導(dǎo)致利潤流失的主要原因,甚至成為很多賬戶持續(xù)無法盈利最終衰敗的主要原因。 我們使用ER效率系數(shù)作為工具,測算了類似信噪比(SIGNAL-NOISE RATIO)的概念,結(jié)論可以這樣說,在等效窗口期長度下,越大的周期趨勢性越顯著;越小的周期趨勢性越弱,噪音越高。 這打破了很多交易者認(rèn)為的小周期做程序化有優(yōu)勢的想法。實際上不僅小周期不能做開平倉的點位,也無法統(tǒng)計到其他穩(wěn)定的統(tǒng)計量,甚至我們計算ATR平均真實波動周期,也傾向于選擇日線或者小時線級別的ATR,而不用分鐘線上的ATR。因為分鐘線要獲得穩(wěn)定統(tǒng)計量,就要加大窗口期。而平均數(shù)作為計算工具,加大窗口期后會造成系統(tǒng)對于近期的數(shù)據(jù)很不敏感。 大周期雖然樣本量更小,交易次數(shù)或許也降低,但是大周期的數(shù)據(jù)含金量顯著高于小周期,這是需要我們權(quán)衡的。 3、以均線為主的動量策略思路單一 由于我們最早的分析工具——道氏理論使用均線做價格分析,并且均線的計算方式簡單、交易方法多樣,深入人心。所以很多投資者構(gòu)成了強烈的先入為主思維方式,認(rèn)為做趨勢就是做均線,殊不知均線雖然很重要,但是我們依然可以有其他方法把握控制動量。 動量效應(yīng),簡單說就是波動方向和之前一致,并且維持下去,我們做方向性交易因此可以獲得盈利。我們一定要明白動量是可以分析觀測、并且把握的,而反轉(zhuǎn)則是更傾向于隨機的。隨機波動非??膳拢@是我們大部分利潤被消耗的核心原因,所以做模型、選品種、選周期一定要盡可能避免隨機波動,且數(shù)據(jù)量盡可能大,這樣才能準(zhǔn)確觀測把握動量波動。 商品期貨時間序列,特別是在小時線日線級別,動量特征顯著。 期貨市場的時間序列動量表達,主要是這樣幾種方法。 1、回溯期和持有期(最基礎(chǔ)的動量表達方法) 2、均線、雙均線、自適應(yīng)均線 3、高低點價格位突破、ATR突破 4、布林帶、肯特鈉通道 5、多因子打分動量 我們的實盤模型思路產(chǎn)生,也大致是基于上述幾種思路。其中我最關(guān)注的,也是我們工作中使用最多的動量模型,就是均線類模型和突破類模型. 均線類模型原理簡單透徹,它衡量了價格近期均值,然后用當(dāng)前價格是否高于或者低于均值,來做出信號判斷。這里可以在均線的計算方面做一些文章,比如說使用等權(quán)計算的MA或者使用權(quán)重隨時間變化的WMA和EMA,還可以使用自適應(yīng)變化的AMA。另一種方案是在規(guī)則方面做文章,使用單均線規(guī)則、使用雙均線規(guī)則、或者使用多重均線規(guī)則,甚至構(gòu)建出震蕩規(guī)則或打分規(guī)則。 突破類模型,首先要選擇一個基準(zhǔn),如使用今日開盤價做基準(zhǔn),或者使用昨日收盤價做基準(zhǔn),或者使用近期均價做基準(zhǔn)。然后制定一個突破位置,可以是ATR位置,也可以是近期高低點。價格延續(xù)趨勢后突破新的價格位,這就是突破類模型的贏利點。技術(shù)較好的交易者可以構(gòu)建短期,甚至日內(nèi)突破交易模型,用開盤價做基準(zhǔn),上下ATR突破加其他精細(xì)迭代,本教程(《15節(jié)精品課、9套策略源碼分享,帶您零基礎(chǔ)學(xué)量化!》)有相關(guān)內(nèi)容。 布林帶、肯特鈉通道類策略相對中長期一些,構(gòu)建通道,然后依然是突破類交易思路。 最后一種是打分模型。采用很多動量因子,通過打分法,對各品種的強弱度評分,然后交易。這種模式可能擬合度較低,但是魯棒性強,不容易失效,而且可以并行考慮很多因素的影響,值得持續(xù)探索。 雖然也有很多反動量思路,但是不僅從市場特征檢測,更是從交易者心態(tài)來分析,動量都非常重要。動量能夠被駕馭,而且能夠被解釋。雖然做動量類交易比較折磨人,但是我們可看到市場低潮和高潮,能夠妥善應(yīng)對自己的盈虧,這是堅持交易的重要支撐。所以一定要活學(xué)活用,了解更多的趨勢或者說動量的表達方式,讓模型更加不同源。 4、將少數(shù)特性當(dāng)做穩(wěn)定統(tǒng)計量 這也是程序化模型中要注意不能犯的錯誤,但是很多交易者經(jīng)常犯。因為在于,我們認(rèn)為自己使用了量化工具,自然地就是構(gòu)造統(tǒng)計類模型,已經(jīng)避免了像手工交易者一樣陷入小樣本的認(rèn)知偏差。 實際上,如果我們統(tǒng)計到的特征較少,并且有效應(yīng)對這些較少特征,產(chǎn)生了很多虧損的降低和盈利的增加,這一樣是一種過度使用數(shù)據(jù)和認(rèn)知偏差。 那么哪些行為是典型的短時間或者小樣本特征?哪些行為會造成對波動的不完整認(rèn)知?舉幾個例子。 A、在過去10年的數(shù)據(jù)中,發(fā)現(xiàn)了不足10個時間點上有顯著的風(fēng)險,并剔除了風(fēng)險。或者發(fā)現(xiàn)了10個機會點,并有效駕馭機會開倉獲利。這需要我們再斟酌一下,是否模型在少數(shù)高風(fēng)險時間點上產(chǎn)生了效果,畢竟10年有2000多個交易日,這些現(xiàn)象如果不是頻繁發(fā)生,以后模型依然能保持較好績效,并保持對于風(fēng)險的控制?或者對于這類機會的把握? B、某些較特殊的參數(shù)組合,構(gòu)建出的績效勝率超過50%甚至60%,但是在更大的參數(shù)面上,平均勝率只有40%。說明這些特殊的參數(shù)組合,或者略過,或者使用其他方式,回避了很多應(yīng)該產(chǎn)生交易的位置,僅抓住了最優(yōu)質(zhì)的交易機會并產(chǎn)生了利潤。這種較少的統(tǒng)計特征,難以認(rèn)為是穩(wěn)定的統(tǒng)計量。 C、我們用一段很冗長的代碼,識別出了某種K線組合形態(tài),并且不斷修飾代碼使之更加精準(zhǔn)。這也是典型的較為危險的方法,特別是涉及到形態(tài)識別,而且是用非通用方法,強行去擬合出歷史上的K線走勢,試圖在實盤交易中也發(fā)揮功效。我自己建模過程中也走入過這一誤區(qū),但是后來發(fā)現(xiàn)數(shù)量并不多的統(tǒng)計樣本造成了我們的條件在樣本外無法維持績效。 既然少數(shù)統(tǒng)計特征不穩(wěn)定,那么什么樣的特征穩(wěn)定?我們認(rèn)為,一個特征必須在大多數(shù)活躍品種上,大致8年以上的測試周期中,都出現(xiàn)多次,才能夠說它可以被駕馭,并且駕馭的方法一定是非常簡單有效的程序化語句,而非是冗長的語句。一定要思考如何讓自己的模型又簡單又有效,可以為了簡單而失去一些性能,因為你換回了更寶貴的穩(wěn)健性。 參數(shù)優(yōu)化的問題在今天文章里就不提了,這個問題太多人分享過自己的經(jīng)驗和教訓(xùn),我們很多時候都傾向于不優(yōu)化參數(shù),而是構(gòu)建模型的不同部分。程序化交易,不僅是打造一個交易信號的發(fā)生器,這僅是第一步,還要打造品種選擇模型,打造市場風(fēng)控模型,才能將不同模塊結(jié)合起來,站立于市場上。所以當(dāng)你看到還有很多工作沒做的時候,就發(fā)現(xiàn)單純地在時間序列上做文章,的確是一件很無聊的事情,要學(xué)會拓展自己。 5、缺乏對于收益的妥善歸因 CTA程序化模型到底賺了哪部分錢,是很多人都想知道的。我們可以大致認(rèn)為中長期趨勢交易類模型獲取的是波動率升高帶來的反應(yīng)過度收益。并且是有一定漂移的,相對于之前的走勢滯后的出現(xiàn)趨勢,模型才能夠把握的波動率,而不是短時間內(nèi)大幅度箱體震蕩,這雖然也是波動率,但是做多這種波動率不會有任何收益。 日內(nèi)交易策略常用的一種方法,是在當(dāng)日開盤價的基礎(chǔ)上加上一個區(qū)間寬度值得到上突破價,減去區(qū)間寬度值得到下突破價。這就是區(qū)間突破策略,即當(dāng)價格突破某一價位時,采取做多做法,當(dāng)價格跌破某一價位時,采取做空做法。它要求價格在突破開盤價加減某個區(qū)間,模型開倉后,繼續(xù)延這個方向波動,才有可能獲利。 還有一類反趨勢策略,可以稱作均值回復(fù)策略。相比較趨勢追蹤策略,CTA均值回復(fù)策略的主要特點是捕捉小機會,先把菜撿到籃子里,而且勝率較高,但單筆交易的收益率并不高。它交易的核心在于如何尋找一對在歷史上走勢基本一致而且又長期穩(wěn)定關(guān)系的資產(chǎn)。當(dāng)然如果市場出現(xiàn)極端行情,回復(fù)性變成了大單邊趨勢,則選擇止損或者直接進行趨勢交易。 總體來看,CTA是做多波動率的一種策略,它不預(yù)測趨勢,而是只跟隨趨勢,市場上漲時做多,市場下跌時做空。因此,該策略比較適合趨勢較明顯的市場。但是也有一些行業(yè)高手認(rèn)為,高波動率并不適合獲利,一定要高的漂移率,也就是逐漸形成一個顯著的方向性波動,程序化模型才能獲利。我非常支持這種觀點,剛才也說過了,短期劇烈震蕩也是高波動,難以獲利,大家要一起承受虧損。而如果在波動率低的時候,出現(xiàn)了一次延續(xù)型強的同向價格運行,這樣的環(huán)境才能夠真正獲利。 在單時間序列上,部署一個趨勢交易模型,這種收益我個人更愿意歸結(jié)為商品期貨的Beta收益,是一種應(yīng)該獲得的,但是波動較高的收益。我們使用ATR通道、使用均線、使用海龜交易法則,都是獲取這類收益。 還有一類收益叫做期限結(jié)構(gòu)收益。期貨的合約和合約之間有差價,利用同一個品種不同合約之間的價格關(guān)系來賺錢就是期限結(jié)構(gòu)的本質(zhì),也是量化CTA重要的收益來源之一。我個人更愿意將此認(rèn)為是Alpha收益,是較為稀缺的,并且低波動率環(huán)境下的收益。 6、更加理性并有把握地度過回撤期 由于我們在初學(xué)程序化模型時,往往難以將模型部署在很多個品種上,也難以構(gòu)造很多不同類型的模型,造成了同源性強、波動率獲取的來源單一。所以我們?nèi)菀子龅交爻?,并且一旦遇到就是較長時間的回撤期。 當(dāng)波動率低于某個臨界點時,大部分模型(以及參數(shù)配置方法)都無法盈利。當(dāng)波動率過小時,方向的維持周期會縮減,方向的維持力度也會縮減,時間序列上捕捉動量和反轉(zhuǎn)的模型基本上都無法盈利。這對于商品期貨模型尤為適用,比如說在慢慢長陰下跌階段,有時你會發(fā)現(xiàn)空頭模型(或組合模型的空頭部分)竟然也沒有盈利(或者盈利微弱),這是令人十分尷尬的,也是很多交易者忽略的,并非商品期貨能做空,空頭就一定能夠盈利。 比如說2017年上半年橡膠出現(xiàn)很大幅度的下跌調(diào)整時,我們發(fā)現(xiàn)空頭盈利不多,沒能妥善對沖多頭虧損。而我們在實盤中往往希望,當(dāng)價格處于階段性高位,一旦開始下跌時,我們的空頭部分能夠為模型甚至是產(chǎn)品凈值帶來強有力的提升,實際上這很困難。如果一旦凈值目標(biāo)設(shè)計失誤,導(dǎo)致倉位設(shè)計失誤,可能面臨繼續(xù)凈值虧損。 每年總有幾個階段是這樣,在中國市場,時間點春節(jié)附近,由于流動性的減弱以及長假影響(部分頭寸要平倉),價格波動率都很低。再比如經(jīng)過了一個大幅度波動之后,市場也會走向低波動率,比如牛市后的漫漫長熊,以及期貨市場上主要品種釋放了寬幅波動后,價格開始趨于平穩(wěn)。 波動率不足時會回撤,但是在市場資金充裕的情況下,模型績效表現(xiàn)又有可能超預(yù)期,超回測績效。所以偏差是大概率會出現(xiàn)的,我們在預(yù)估模型績效的時候,一定不要僅看回測特別是多品種組合后的效果(雖然這些資金曲線都非常好看),而是要考慮單品種在某個參數(shù)區(qū)間可能達到的平均績效,以及組合沒有帶來回撤相抵的情況下的績效,也就是說要計算出最壞的情況。 所以心態(tài)一定要穩(wěn)定,要知道模型在歷史上也遇到過類似難題,所以我們的反應(yīng)應(yīng)該是度過這段時間,等待凈值回升,甚至凈值的下階段大幅度躍升。 回撤并不可怕,可怕的是我們輕敵了。在向投資人描述業(yè)績的時候,我們總喜歡放大優(yōu)勢,掩蓋劣勢。在向團隊匯報新模型績效時,我們也有類似問題。這會造成資金風(fēng)險偏好錯配,頭寸過大配置,或者雙方彼此對于困難估計不足,為之后埋下隱患。其實這個時候你再看一眼模型的最大回撤,也許還沒有達到歷史最大回撤??上攵绻_到最大回撤會引發(fā)更大的恐慌。 我在撰寫《量化投資技術(shù)分析實戰(zhàn)》這本書時,寫到了這樣一段話,有價值分享給各位讀者共勉:放大對于困難的估計,獲得一個健康的績效預(yù)期,逐步承認(rèn)系統(tǒng)不是在所有市場條件下都有效(不完美的模型),進而承認(rèn)自己的能力有限(不完美的自己),是賺錢的第一步。獲得這種頓悟,和開發(fā)一套好的模型同樣重要。獲得這種能力,非常依賴長期實盤經(jīng)驗和對績效可信度的把握,更依賴強大的內(nèi)心和自制力。 我回憶自己學(xué)習(xí)過程中,也有一兩年是極其艱難的,看不到盈利,甚至看不到方向。后來逐漸增加測試,增加假設(shè),增加策略思路來源,獲得了一些提升,在此過程中自己創(chuàng)立的“量化投資訓(xùn)練營”公眾號,不僅是對外交流的一扇窗,也是鼓勵前進的動力,讓我知道還有很多朋友們在關(guān)注著,在思考著。直到2016年2017年,策略思路逐漸清晰,也產(chǎn)生了較為穩(wěn)定的收益。 在2018年入秋時點,這個期貨行情躊躇不前的階段,應(yīng)七禾網(wǎng)邀請撰寫此文,希望各位讀者們構(gòu)建出自己滿意的模型,不斷體會市場波動的真諦,更長久地交易下去,用程序化交易創(chuàng)造盈利,充實自己的工作和生活。 作者介紹:濮元愷,2009年開始專注于程序化模型研究,隨后經(jīng)歷股票多因子模型、商品期貨時間序列模型等開發(fā)工作,2016年加入中國量化投資學(xué)會專家委員會。隨后作為勵京投資管理(北京)有限公司創(chuàng)始團隊,發(fā)行了多只陽光化私募基金產(chǎn)品。2018年撰寫的《量化投資技術(shù)分析實戰(zhàn)》圖書獲得眾多業(yè)內(nèi)人士推薦成為暢銷書,幫助很多量化投資交易者走上了起步之路。 相關(guān)鏈接:15節(jié)精品課、9套策略源碼分享,帶您零基礎(chǔ)學(xué)量化! 責(zé)任編輯:傅旭鵬 |
【免責(zé)聲明】本文僅代表作者本人觀點,與本網(wǎng)站無關(guān)。本網(wǎng)站對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。
本網(wǎng)站凡是注明“來源:七禾網(wǎng)”的文章均為七禾網(wǎng) levitate-skate.com版權(quán)所有,相關(guān)網(wǎng)站或媒體若要轉(zhuǎn)載須經(jīng)七禾網(wǎng)同意0571-88212938,并注明出處。若本網(wǎng)站相關(guān)內(nèi)容涉及到其他媒體或公司的版權(quán),請聯(lián)系0571-88212938,我們將及時調(diào)整或刪除。
七禾研究中心負(fù)責(zé)人:劉健偉/翁建平
電話:0571-88212938
Email:57124514@qq.com
七禾科技中心負(fù)責(zé)人:李賀/相升澳
電話:15068166275
Email:1573338006@qq.com
七禾產(chǎn)業(yè)中心負(fù)責(zé)人:果圓/王婷
電話:18258198313
七禾研究員:唐正璐/李燁
電話:0571-88212938
Email:7hcn@163.com
七禾財富管理中心
電話:13732204374(微信同號)
電話:18657157586(微信同號)
七禾網(wǎng) | 沈良宏觀 | 七禾調(diào)研 | 價值投資君 | 七禾網(wǎng)APP安卓&鴻蒙 | 七禾網(wǎng)APP蘋果 | 七禾網(wǎng)投顧平臺 | 傅海棠自媒體 | 沈良自媒體 |
? 七禾網(wǎng) 浙ICP備09012462號-1 浙公網(wǎng)安備 33010802010119號 增值電信業(yè)務(wù)經(jīng)營許可證[浙B2-20110481] 廣播電視節(jié)目制作經(jīng)營許可證[浙字第05637號]
技術(shù)支持 本網(wǎng)法律顧問 曲峰律師 余楓梧律師 廣告合作 關(guān)于我們 鄭重聲明 業(yè)務(wù)公告
中期協(xié)“期媒投教聯(lián)盟”成員 、 中期協(xié)“金融科技委員會”委員單位