2014年12月15日 星期一

真實策略中的虛擬交易

EasyTrader ArtNo 227
在交易中,特別是突破類模型,成功率並不高,若碰上反復的假突破,更是一種災難。那有沒有方法來減少這種情形的發生呢?本篇為大家提供了一種方式。這個交易策略想法來自於交易過程的觀察,從歷史回測的交易記錄中發現,若上一次交易是盈利的,那麼下一筆交易是虧損的概率比較大。因此在設計策略時,希望能跳過這些我們認為會虧損的交易。實務應用到策略中,我們將引入虛擬交易的概念, 與之對應的是真實下單模組。虛擬交易始終在運行交易策略的條件確認是否符合。而真實下單模組直到上一筆虛擬交易是虧損的情況下才被執行。
本篇的策略,建立在一個簡單的長短期指數移動平均線的相對方向作為多空趨勢判定。
作多:短期(10)收盤價指數平均大於長期(20)最高價的指數平均。
作空:短期(10)收盤價指數平均小於長期(20)最低價的指數平均。

平多:多單部位時,當價格跌破21日低點時平倉。
平空:空單部位時,當價格突破21日高點時平倉。

真實下單模組
MP = MarKetPosition ;
{多單進場}
if (MP = 0  and Xaverage(Close,10) > Xaverage(High,20)) then begin
Buy next bar at High stop;
end;
{空單進場}
if(MP = 0  and Xaverage(Close,10) < Xaverage(Low,20)) then begin
Sell next bar at Low stop;
end;
{多單平倉}
if (MP = 1) then ExitLong next bar at Lowest(Low,21) stop;
{空單平倉}
if (MP = -1) then ExitShort next bar at Highest(High,21) stop;
以上進出場點並不是這個策略的要點,重點在如何記錄虛擬交易的狀況

虛擬交易模組描述
多單交易
1.虛擬倉位 = 0 且符合真實下單模組作多條件時,建立虛擬多單。
2.虛擬倉位 = 1 且符合真實下單模組平多條件時平倉。
3.計算獲利狀況 ,若是虧損單則真實下單模組準備進場。
4.虛擬倉位 = 0。

空單交易
1.虛擬倉位 = 0 且符合真實下單模組作空條件時,建立虛擬空單。
2.虛擬倉位 = -1 且符合真實下單模組平空條件時平倉。
3.計算獲利狀況 ,若是虧損單則真實下單模組準備進場。
4.虛擬倉位 = 0。

以下台指期績效報表 Before 代表單純的真實下單模組,After 為加入虛擬交易模組當濾網時,我們可以看到績效提昇、交易次數會降低且MDD也跟著下降


接下來我們來檢視上圖的交易報表
1.左半部的獲利交易(紅框)對照右半部加入虛擬單後,會被保留(藍框) ,讀者可以看一下交易進出時間與點位是一樣的。
2.假設左半部原始下單狀況是一筆獲利一筆虧損 ,則右半部的交易都會是獲利的 ,因為我們的虛擬單會過濾掉前一筆虧損交易。
3.當虧損是連續兩筆單子,就會有一筆虧損交易保留,同理,當虧損是連續3 筆單子,就會有 2 筆虧損交易保留在右半部。
4.當盈利是連續兩筆單子以上,資料跳過不會交易。

電子期測試

金融期測試
金融期的測試反而是三大期指中績效最佳的商品

結論:
1.對於開發的策略如果連續盈利或連續虧損次數不多此種虛擬交易概念放進策略中是一個不錯的選擇
2.也可將此概念應用在當 MDD/淨利比值過大時 停止下單直到比值回到常態時再進行實際下單模組交易

虛擬交易概念的學習教材 → 下載連結
MagicQS138

2 則留言:

  1. 請問版大,虛擬交易也是寫在策略的程式裡嗎?

    回覆刪除
  2. 您好 ,是的 ! 虛擬策略會放在真實下單程式段的前面來達到若是前一筆虧損才下單的目的

    回覆刪除