當前位置:股票大全官網 - 股票投資 - 構建交易系統需明晰的三大陷阱

構建交易系統需明晰的三大陷阱

對大多數交易員來說,策略的制定僅僅是壹種手段,是獲利的必要路徑。交易系統開發的過程,相對最終投入使用,是比較艱難的:通常,實際交易遠比制定交易策略要更有意思。

不過,這會使得交易員采取各種捷徑,這樣壹來,他們在制定交易策略時就可能產生各種錯誤。盡管短期來看,交易方法是簡便了,但捷徑所帶來的錯誤最終還將影響實時交易。

好在大多數交易員在策略開發時出現的錯誤基本類似,壹旦確定後,就能加以糾正、改進。不過,排除這些問題並不容易;在無法使用捷徑的情況下,策略從制定到正確執行將變得更為困難。

那麽,有哪些最常見的錯誤與捷徑呢?大致有三種。下面我們將分別解釋這三種錯誤會產生怎樣的負面影響,如何發現並糾正這些錯誤。避免這些常見錯誤,將有助於建立壹個更好的交易系統。

陷阱1:策略過於復雜難懂

在交易過程中,妳不可避免地要遇到壹些復雜的交易策略。對於自主交易員來說,可能會出現“分析癱瘓”中的情形:可以明顯看到,下面的圖表中充斥了各種技術指標、技術線及支撐與阻力區域。對於壹個算法交易員來說,壹個復雜的方法將包含成千上萬行代碼,需要優化調整幾十個甚至上百個變量。

這兩種方法有壹個***同點:它們都極其復雜,涉及眾多內容。很多缺乏經驗的交易員會認為這就是開發系統的壹種方式;他們認為,指標越多,算法對過去數據的擬合程度也就越好,所制定的交易策略也就會更好。但事實並非如此。

在衡量復雜策略時,存在壹個謬誤,使我們得出這壹策略優於壹般策略的錯誤結論:在歷史數據上能取得較好結果的策略,並不意味著這壹策略用於實際的交易中也能獲得同樣的成功。事實上,通過增加指標來不斷地調整策略,或在算法中添加新的規則使得交易策略更為復雜;這種做法通常只能給交易員壹種虛假的信心。在策略中,改進及添加更多的規則,並不意味著策略將變得更好。

很多人可能很難相信,簡單的交易策略通常是最好的。對於自主交易員來說,只有壹兩個技術指標的相對簡潔的圖表,加上對價格走勢與市場動態深刻的理解,往往比壹個充斥著技術線與技術指標的圖表要好得多。對於算法交易員來說,壹條簡單的入場指令通常要比需要滿足5至10個條件才能執行交易的規則要好。

陷阱2:沒有考慮市場摩擦的交易策略

比較市面上的交易系統,妳會發現大多數交易系統都會列出壹小段免責條款:傭金與滑移價差不包括在內。同樣,許多自行開發系統的人也會忽略傭金與滑移成本;即使他們考慮了這些成本,通常也會低估實際的金額。

妳會聽到系統不包括傭金與滑移在內的各種原因。最常見的借口是“不同券商通常收取不同傭金”;另壹個常見的理由是“我的系統只使用限價指令”。但真正的原因則是:這樣的做法可以使系統看上去更好。如果考慮實際交易成本,能夠獲利的系統就更難找到。

以壹個交易E-Mini標普500指數期貨(CME:ESM14)的系統為例,該系統使用壹種通過微小交易來捕捉非常小的市場變動的技術,並頻繁運行日內買賣對沖來運行投機。如果不考慮傭金與滑點,該系統每天運行20筆交易,平均每筆獲取15美元的利潤。交易員看到的是每天300美元的利潤,並會認為這些交易還算不錯。但如果加上每個交易回合5美元的傭金及1個基點的滑點(這可能已經是樂觀的估計),每天300美元的利潤就變成了每天50美元的虧損。

對於不考慮傭金與滑移成本的交易策略來說,壹個潛在的影響便是該系統可能會使交易員運行過多的交易。這裏有壹個例子。假設系統A是上面所提到的小型投機系統,如果不考慮傭金與滑移成本,每天可以獲得300美元的利潤。相對來說,系統B每天只運行壹次交易,不考慮交易成本,每筆交易平均可以獲得50美元的利潤。任何比較這兩個系統的人,都會選擇系統A。但是,當加入傭金與滑點,結果正好相反;系統B才是唯壹有價值的策略;交易次數少了,傭金與滑點占總利潤的比例也要小很多。

因此,在系統開發初期,就將壹定數額的傭金與滑移成本考慮進來,是至關重要的。對於E-Mini標普500指數期貨來說,每個交易回合5美元的傭金,壹兩個基點的滑點,這樣的假設是相對合理的。

陷阱3:系統測試使用所有歷史數據

在系統開發時,很多交易員可能出現的第三個錯誤就是在測試系統時使用所有可用的歷史數據。大多數缺乏經驗的交易員會對到今天為止所有的歷史數據運行優化與分析。之所以這麽做,是因為他們希望確保策略已經反映了對最新數據的調整。

當然,如果第壹次測試失敗,交易員將在系統中添加壹些規則或篩選條件(這樣壹來,就更可能出現前面提到的策略過於復雜的錯誤),然後再次運行所有數據。

最終,交易員會找到壹個可行的交易策略系統,並將這壹系統運用到實際交易中。但在交易策略發生問題時,這種做法幾乎總是必然的解決方法。

壹個更好但難度也更高的方法是通過對樣本外數據的測試來驗證壹個交易系統。比如說,交易員可能會用過去10年的數據來制定交易策略,但保留最近壹年的數據。當系統開發完成後,使用未知的(也就是樣本外數據)運行測試;如果系統運行得較好,那麽這壹系統可以被用於實時交易。

此外,還能采取移動窗格測試。這種方法使用多個樣本外的時間段,更有可能獲得成功,因為產生的股票曲線已經完全包括了樣本外的優化結果。

移動窗格測試或者樣本外測試的壹個缺陷在於:壹旦樣本外測試運行過壹次,任何進壹步的測試就不再是基於真正的“樣本外數據”而運行的。因此,如果測試運行過很多次之後,很容易在不經意間就使得樣本外測試變成了樣本內測試。不過,樣本外測試的方法還是要優於對所有數據運行優化的方法。

系統開發沒有捷徑

設計壹個可行的交易策略是相當困難的。事實上,很多交易員從來沒有真正做到過這壹點;很多時候,他們在開發系統時會走捷徑或者在系統開發過程中出現過於簡化的錯誤。當然,在系統中添加壹條又壹條規則、壹個又壹個篩選條件,比找到壹條合適又簡潔的規則要容易得多。

同樣地,如果不考慮傭金和滑移的摩擦成本,找到可行的策略也是相當容易的。

最後,與移動窗格測試或者樣本外測試相比,對所有可用的歷史數據運行優化是壹種相對簡單的方法,得到的結果看上去會更好。

但問題的關鍵是,如果我們使用對所有數據運行優化的方法來建立交易策略系統,相當於設計出這樣壹個交易策略:只有在測試的時間樣本內應用這壹交易策略系統,才能獲利。當然,這需要有壹個時間機器,而這顯然比建立壹個有利可圖的系統更為復雜。

我們從上述系統開發的常見錯誤中得到的啟示是:如果某壹種方法使得系統設計變得更簡單,或者回測的成功率明顯提高,那麽,這實際是壹個可能有錯誤發生的警示信號。壹個合理、恰當的系統開發過程總是困難重重的。

然而,從長期來看,用正確、恰當的方法開發交易系統,總是要好過因為系統開發中產生的錯誤而在市場上虧錢。