Skip to Content Facebook Feature Image

外匯天眼:構建交易系統需明晰的三大陷阱

博客文章

外匯天眼:構建交易系統需明晰的三大陷阱
博客文章

博客文章

外匯天眼:構建交易系統需明晰的三大陷阱

2020年11月05日 12:01 最後更新:12:10

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

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

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

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

  陷阱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年的數據來制定交易策略,但保留最近一年的數據。當系統開發完成後,使用未知的(也就是樣本外數據)進行測試;如果系統運行得較好,那麼這一系統可以被用於即時交易。

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

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

  系統開發沒有捷徑

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

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

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

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

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

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




外匯天眼

** 博客文章文責自負,不代表本公司立場 **

       每個交易者或者分析員都擁有自己所喜好的交易技術用於交易。然而,當傳統技術分析方法無能為力的時候,波浪理論卻可以柳暗花明又一村。而且,同樣重要的是,波浪理論可以辨析交易者經常忽視的那些可靠入場機會。

  一、傳統技術分析無能為力

  技術分析分為三類:趨勢追隨指標、震盪指標和情緒指標。趨勢追隨指標包括移動平均線、移動平均彙聚背弛指標(MACD)和平均動向指標(ADX)。交易者經常使用的震盪指標有Stochastics,ROC和CCI。情緒指標包括權證認沽認購比率和交易契約報告數據。

  此類技術分析對於交易者的交易的確提供了智慧之光,但是他們都有一個共同的缺點:他們限制了交易者對目前價格行為的理解,使交易者無法看到目前價格與大級別價格行為的關係。

  例如,股票XYZ的MACD指標為正,表明目前的趨勢為上升。這些資訊的確是有用的,但是它卻不能回答這些問題:該趨勢是一個新的趨勢,還是原來趨勢的延續?如果趨勢為上升,那麼它能走多遠?大多數技術分析都無法揭示趨勢的程度和可量化的目標價格,但是波浪理論可以。

  二、波浪理論可以從5個方面完善你的交易

  1)識別趨勢

  波浪理論可以識別主趨勢的方向。五浪上升表示趨勢向上,五浪下跌表示趨勢向下。為什麼這個重要呢?因為跟隨趨勢交易會更加容易,遇到的阻力更少。“趨勢是你的朋友”。

  2)識別反趨勢

  三浪形態為調整浪。如果知道目前的價格走勢只是上一級趨勢的調整,那麼就為交易者重新入場提供了機會。

  3)確定趨勢的程度

  通過波浪形態,可以瞭解目前趨勢所處的位置,從而採取不同的交易策略。

  4)提供價格目標

  5)提供了明確的鐵律

  到什麼點位交易便告失敗?許多交易者利用資金管理紀律來尋找答案,因為大部分技術分析無法解決這個問題。

  而波浪理論的三大鐵律:

  浪2不能回撤浪1的 100%以上;

  浪4不能進入浪1的區間;

  與浪1和浪5比較,浪3不能最短。

  鐵律如被違反,則說明數浪錯誤。交易者應及時採取相應的措施。

  三、波浪理論提供的交易入場機會

  當交易者結合傳統技術分析方法和波浪理論使用時,他們對當前的價格行為會有更好的理解。

  儘管波浪理論作為一種分析工具得到了很高的評價,但是很多交易者在即時交易中仍然放棄了它,主要是因為他們認為波浪理論不能為一個具體的交易系統提供規則和指南。

  但是不要太快下結論。雖然波浪理論並不是一個“交易系統”,它的內在規律的確能幫助你在即時交易中設定止損位置。

  四、波浪理論的三大鐵律

  1)浪2永遠不能回撤浪1的100%以上

  2)浪4永遠不能進入浪1的區間

  3)浪3相比較於浪1和浪5,永遠不能是最短的推動浪。

  根據鐵律1:在下圖中,我們有一個5浪前進,然後是3浪調整。根據波浪理論第二浪的特性,浪2往往會回撤浪1的一半以上,一般都是回撤0.618。因此,你應該在浪2回撤到浪1的0.618處買入,以便享受到最強勁的第3浪。

  止損位:設置於浪1底部下的一個價位。因為一旦跌到浪1底部以下,則目前的浪不應該是第2浪。

  根據鐵律2:浪4最常見的長度是回撤到浪3的0.382處。因此當三浪調整到這個位置時你應該買入,以便捕捉到浪5的升勢。

  止損位:設置於浪1頂部下的一個價位。因為一旦跌到浪1頂部以下,則目前的數浪不正確。

  根據鐵律3:覺得這個方法不對,原文是說當第3浪比第1浪短時,可以在5浪快要超過3浪長度的時候做空,止損位就設置在5浪長度等於3浪長度時的上面一個價位上。由於3浪經常出現延長浪,這樣會造成頻繁割肉,個人覺得最好還是不要採取這種進場方式了。