[轉] 交易系統(tǒng)開發(fā)中常見的三大錯誤
對大多數(shù)交易員來說,策略的制定僅僅是一種手段,是獲利的必要路徑。交易系統(tǒng)開發(fā)的過程,相對最終投入使用,是比較艱難的:通常,實際交易遠比制定交易策略要更有意思。
不過,這會使得交易員采取各種捷徑,這樣一來,他們在制定交易策略時就可能產生各種錯誤。盡管短期來看,交易方法是簡便了,但捷徑所帶來的錯誤最終還將影響實時交易。
好在大多數(shù)交易員在策略開發(fā)時出現(xiàn)的錯誤基本類似,一旦確定后,就能加以糾正、改進。不過,排除這些問題并不容易;在無法使用捷徑的情況下,策略從制定到正確執(zhí)行將變得更為困難。
那么,有哪些最常見的錯誤與捷徑呢?大致有三種。下面我們將分別解釋這三種錯誤會產生怎樣的負面影響,如何發(fā)現(xiàn)并糾正這些錯誤。避免這些常見錯誤,將有助于建立一個更好的交易系統(tǒng)。
錯誤1:策略過于復雜難懂
在交易過程中,你不可避免地要遇到一些復雜的交易策略。對于自主交易員來說,可能會出現(xiàn)“分析癱瘓”中的情形:可以明顯看到,下面的圖表中充斥了各種技術指標、技術線及支撐與阻力區(qū)域。對于一個算法交易員來說,一個復雜的方法將包含成千上萬行代碼,需要優(yōu)化調整幾十個甚至上百個變量。
這兩種方法有一個共同點:它們都極其復雜,涉及眾多內容。很多缺乏經驗的交易員會認為這就是開發(fā)系統(tǒng)的一種方式;他們認為,指標越多,算法對過去數(shù)據(jù)的擬合程度也就越好,所制定的交易策略也就會更好。但事實并非如此。
在衡量復雜策略時,存在一個謬誤,使我們得出這一策略優(yōu)于一般策略的錯誤結論:在歷史數(shù)據(jù)上能取得較好結果的策略,并不意味著這一策略用于實際的交易中也能獲得同樣的成功。事實上,通過增加指標來不斷地調整策略,或在算法中添加新的規(guī)則使得交易策略更為復雜;這種做法通常只能給交易員一種虛假的信心。在策略中,改進及添加更多的規(guī)則,并不意味著策略將變得更好。
很多人可能很難相信,簡單的交易策略通常是最好的。對于自主交易員來說,只有一兩個技術指標的相對簡潔的圖表,加上對價格走勢與市場動態(tài)深刻的理解,往往比一個充斥著技術線與技術指標的圖表要好得多。對于算法交易員來說,一條簡單的入場指令通常要比需要滿足5至10個條件才能執(zhí)行交易的規(guī)則要好。
錯誤2:沒有考慮市場摩擦的交易策略
比較市面上的交易系統(tǒng),你會發(fā)現(xiàn)大多數(shù)交易系統(tǒng)都會列出一小段免責條款:傭金與滑移價差不包括在內。同樣,許多自行開發(fā)系統(tǒng)的人也會忽略傭金與滑移成本;即使他們考慮了這些成本,通常也會低估實際的金額。
你會聽到系統(tǒng)不包括傭金與滑移在內的各種原因。最常見的借口是“不同券商通常收取不同傭金”;另一個常見的理由是“我的系統(tǒng)只使用限價指令”。但真正的原因則是:這樣的做法可以使系統(tǒng)看上去更好。如果考慮實際交易成本,能夠獲利的系統(tǒng)就更難找到。
以一個交易E-Mini標普500指數(shù)期貨(CME:ESM14)的系統(tǒng)為例,該系統(tǒng)使用一種通過微小交易來捕捉非常小的市場變動的技術,并頻繁進行日內買賣對沖來進行投機。如果不考慮傭金與滑點,該系統(tǒng)每天進行20筆交易,平均每筆獲取15美元的利潤。交易員看到的是每天300美元的利潤,并會認為這些交易還算不錯。但如果加上每個交易回合5美元的傭金及1個基點的滑點(這可能已經是樂觀的估計),每天300美元的利潤就變成了每天50美元的虧損。
對于不考慮傭金與滑移成本的交易策略來說,一個潛在的影響便是該系統(tǒng)可能會使交易員進行過多的交易。這里有一個例子。假設系統(tǒng)A是上面所提到的小型投機系統(tǒng),如果不考慮傭金與滑移成本,每天可以獲得300美元的利潤。相對來說,系統(tǒng)B每天只進行一次交易,不考慮交易成本,每筆交易平均可以獲得50美元的利潤。任何比較這兩個系統(tǒng)的人,都會選擇系統(tǒng)A。但是,當加入傭金與滑點,結果正好相反;系統(tǒng)B才是唯一有價值的策略;交易次數(shù)少了,傭金與滑點占總利潤的比例也要小很多。
因此,在系統(tǒng)開發(fā)初期,就將一定數(shù)額的傭金與滑移成本考慮進來,是至關重要的。對于E-Mini標普500指數(shù)期貨來說,每個交易回合5美元的傭金,一兩個基點的滑點,這樣的假設是相對合理的。
錯誤3:系統(tǒng)測試使用所有歷史數(shù)據(jù)
在系統(tǒng)開發(fā)時,很多交易員可能出現(xiàn)的第三個錯誤就是在測試系統(tǒng)時使用所有可用的歷史數(shù)據(jù)。大多數(shù)缺乏經驗的交易員會對到今天為止所有的歷史數(shù)據(jù)進行優(yōu)化與分析。之所以這么做,是因為他們希望確保策略已經反映了對最新數(shù)據(jù)的調整。
當然,如果第一次測試失敗,交易員將在系統(tǒng)中添加一些規(guī)則或篩選條件(這樣一來,就更可能出現(xiàn)前面提到的策略過于復雜的錯誤),然后再次運行所有數(shù)據(jù)。
最終,交易員會找到一個可行的交易策略系統(tǒng),并將這一系統(tǒng)運用到實際交易中。但在交易策略發(fā)生問題時,這種做法幾乎總是必然的解決方法。
一個更好但難度也更高的方法是通過對樣本外數(shù)據(jù)的測試來驗證一個交易系統(tǒng)。比如說,交易員可能會用過去10年的數(shù)據(jù)來制定交易策略,但保留最近一年的數(shù)據(jù)。當系統(tǒng)開發(fā)完成后,使用未知的(也就是樣本外數(shù)據(jù))進行測試;如果系統(tǒng)運行得較好,那么這一系統(tǒng)可以被用于實時交易。
此外,還能采取移動窗格測試。這種方法使用多個樣本外的時間段,更有可能獲得成功,因為產生的股票曲線已經完全包括了樣本外的優(yōu)化結果。
移動窗格測試或者樣本外測試的一個缺陷在于:一旦樣本外測試運行過一次,任何進一步的測試就不再是基于真正的“樣本外數(shù)據(jù)”而進行的。因此,如果測試運行過很多次之后,很容易在不經意間就使得樣本外測試變成了樣本內測試。不過,樣本外測試的方法還是要優(yōu)于對所有數(shù)據(jù)進行優(yōu)化的方法。
系統(tǒng)開發(fā)沒有捷徑
設計一個可行的交易策略是相當困難的。事實上,很多交易員從來沒有真正做到過這一點;很多時候,他們在開發(fā)系統(tǒng)時會走捷徑或者在系統(tǒng)開發(fā)過程中出現(xiàn)過于簡化的錯誤。當然,在系統(tǒng)中添加一條又一條規(guī)則、一個又一個篩選條件,比找到一條合適又簡潔的規(guī)則要容易得多。
同樣地,如果不考慮傭金和滑移的摩擦成本,找到可行的策略也是相當容易的。
最后,與移動窗格測試或者樣本外測試相比,對所有可用的歷史數(shù)據(jù)進行優(yōu)化是一種相對簡單的方法,得到的結果看上去會更好。
但問題的關鍵是,如果我們使用對所有數(shù)據(jù)進行優(yōu)化的方法來建立交易策略系統(tǒng),相當于設計出這樣一個交易策略:只有在測試的時間樣本內應用這一交易策略系統(tǒng),才能獲利。當然,這需要有一個時間機器,而這顯然比建立一個有利可圖的系統(tǒng)更為復雜。
我們從上述系統(tǒng)開發(fā)的常見錯誤中得到的啟示是:如果某一種方法使得系統(tǒng)設計變得更簡單,或者回測的成功率明顯提高,那么,這實際是一個可能有錯誤發(fā)生的警示信號。一個合理、恰當?shù)南到y(tǒng)開發(fā)過程總是困難重重的。
然而,從長期來看,用正確、恰當?shù)姆椒ㄩ_發(fā)交易系統(tǒng),總是要好過因為系統(tǒng)開發(fā)中產生的錯誤而在市場上賠錢。
您需要 [注冊] 或 [登陸] 后才能發(fā)表點評