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/淨利比值過大時 ,停止下單,直到比值回到常態時再進行實際下單模組交易。

1 留言:

匿名 提到...

您好!小弟拜讀後嘗試了好幾遍,確一直寫不出虛擬交易模組的語法,可請Easy 大提供嗎?

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------