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

對大多數交易員來說,策略的制定僅僅是一種手段,是獲利的必要路徑。交易系統開發的過程,相對最終投入使用,是比較艱難的:通常,實際交易遠比制定交易策略要更有意思。不過,這會使得交易員採取各種捷徑,這樣一來,他們在制定交易策略時就可能產生各種錯誤。儘管短期來看,交易方法是簡便了,但捷徑所帶來的錯誤最終還將影響實時交易。好在大多數交易員在策略開發時出現的錯誤基本類似,一旦確定後,就能加以糾正、改進。不過,排除這些問題並不容易:在無法使用捷徑的情況下,策略從制定到正確執行將變得更為困難。

那麼,有哪些最常見的錯誤與捷徑呢?

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

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

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

在交易過程中,你不可避免地要遇到一些複雜的交易策略。對於自主交易員來說,可能會出現“分析癱瘓”中的情形,對於一個算法交易員來說,一個複雜的方法將包含成千上萬行代碼,需要優化調整幾十個甚至上百個變量。這兩種方法有一個共同點:它們都極其複雜,涉及眾多內容。很多缺乏經驗的交易員會認為這就是開發系統的一種方式;他們認為,指標越多,算法對過去數據的擬合程度也就越好,所制定的交易策略也就會更好。但事實並非如此。在衡量複雜策略時,存在一個謬誤,使我們得出這一策略優於一般策略的錯誤結論:在歷史數據上能取得較好結果的策略,並不意味著這一策略用於實際的交易中也能獲得同樣的成功。事實上,通過增加指標來不斷地調整策略,或在算法中添加新的規則使得交易策略更為複雜;這種做法通常只能給交易員一種虛假的信心。在策略中,改進及添加更多的規則,並不意味著策略將變得更好。

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

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

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

比較市面上的交易系統,你會發現大多數交易系統都會列出一小段免責條款:佣金與滑移價差不包括在內。同樣,許多自行開發系統的人也會忽略佣金與滑移成本;即使他們考慮了這些成本,通常也會低估實際的金額。你會聽到系統不包括佣金與滑移在內的各種原因。最常見的藉口是“不同券商通常收取不同佣金”;另一個常見的理由是“我的系統只使用限價指令”。但真正的原因則是:這樣的做法可以使系統看上去更好。如果考慮實際交易成本,能夠獲利的系統就更難找到。因此,在系統開發初期,就將一定數額的佣金與滑移成本考慮進來,是至關重要的。對於E-Mini標普500指數期貨來說,每個交易回合5美元的佣金,一兩個基點的滑點,這樣的假設是相對合理的。

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

在系統開發時,很多交易員可能出現的第三個錯誤就是在測試系統時使用所有可用的歷史數據。大多數缺乏經驗的交易員會對到今天為止所有的歷史數據進行優化與分析。之所以這麼做,是因為他們希望確保策略已經反映了對最新數據的調整。當然,如果第一次測試失敗,交易員將在系統中添加一些規則或篩選條件(這樣一來,就更可能出現前面提到的策略過於複雜的錯誤),然後再次運行所有數據。最終,交易員會找到一個可行的交易策略系統,並將這一系統運用到實際交易中。但在交易策略發生問題時,這種做法幾乎總是必然的解決方法。

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

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

系統開發沒有捷徑。

設計一個可行的交易策略是相當困難的。事實上,很多交易員從來沒有真正做到過這一點;很多時候,他們在開發系統時會走捷徑或者在系統開發過程中出現過於簡化的錯誤。當然,在系統中添加一條又一條規則、一個又一個篩選條件,比找到一條合適又簡潔的規則要容易得多。同樣地,如果不考慮佣金和滑移的摩擦成本,找到可行的策略也是相當容易的。

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

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


分享到:


相關文章: