簡單介紹一下VEMA
VEMA原理就是使用震盪指標的波動率來決定EMA的f值
f:最近價格佔過去平均值比重.
f值愈大表示最新的價格影響程度愈大,均線反應就較快

如下圖:
當rsi在50附近表示盤整,對應的f值就小,均線就不敏感,避免一直交乂
當rsi破70後,表示盤動起來了,對應f值就變大,均線敏感,可以較快跟上價格
圖片 5  
如果把VEMA用成策略,最簡單的方式就是:短均交乂長均就買,相反就作空
以下使用台指期做績效測試,但同樣的這種方式使用在股票波段上也有不錯的成果.

程式如下:
Inputs: Length1(4),Length2(20),rsiLength(14);
variables:a1(0),a2(0);
a1=v_ema(close,Length1,rsiLength);
a2=v_ema(close,Length2,rsiLength);

condition1=a1 Crosses Above a2;
condition2=a1 Crosses Under a2;
if condition1=true then Buy ("Long_in" ) next bar at market ;
if condition2=true then sellshort ("short_in") next bar market ;
if _Endday_list then begin
setexitonclose;
end;

函數:V_EMA 這裡可下載

週期:30分鐘 (週期隨便選的,可以改成自己喜歡的,當然指標參數值也要順便改掉
,60分鐘以內,5分鐘以上選一個自己喜歡的數字,對於未來這並不太重要)
時段:2001~2013/11 
成本:來回1000元 (600,或1000都可以,但務必要設不然沒什麼參考價值)

這裡只對Length1,Length2 長短均線週期簡單的跑最佳值 ,RSI值就用預設14
有興趣可以連RSI也跑參數,績效應該會再好些.
圖片 2  
圖片 3  


以下是回測績效3D圖,主要來看參數高原分佈.
X軸:長均線週期
Y軸:短均線週期
Z軸:淨利
固定RSI週期:14
以短均線交乂長均線順勢交易做法,只要長短均線週期不重疊,回測結果都是獲利的


圖片 1  
把水平線拉到200萬,以伏視圖來看,鮮綠色為績效大於200萬
稱為參數高原,如果只要求此系統有200萬以上的獲利,那這高原區算是能接受的
最適合參數:
Length1:4 ,5
Length2:22~28(可以看高原起伏或把水平面再上移找出最適合的)
圖片 14  

但以波段策略來說,淨值250萬是有點少,且在這獲利下MDD值就太大
那如何改善?

策略套用在一個商品上,除了跑最佳化外,最重要的一點就是去觀察進出點
思考合理性,應該如何做才能更好.
我覺得深入去了解該商品的走趨特性,把這些想法加入策略中,會比一直去做參數最佳化重要.
以這個策略為例:
1.
這個策略在結算日時就會平倉,但進場是使用到cross 穿越,當均線再次交乂才會進場
但如去觀察台指期,會發現如果是大行情走勢,下個月的方向會延續當月的,
那結算日出場後除非均線要crosses under 才會有crosses above 產生.
所以會有一大段都吃不到的形情發生.
修改方式:
當月結算如果是賺錢,隔天開盤馬上照原本的方向進單

2.指數是由股票組成,股票因買賣特性,會造成走勢緩漲急跌.
所以觀察指數類期貨會發現漲跌速度是不同的(如500點走勢,漲花了10天,跌只要5天)
之前有做過類似的統計,有興趣可以統計一下囉.
即然這樣,那做空的反應是否要快一點,做多反應就慢一些呢?
以VEMA為例,影響反應的速度就是RSI週期,所以可以把多空的RSI週期分開
可能會覺得,那這樣是否會過度最佳化,我是覺得這是商品特性多空的速度不同
是可以用不同參數去代表,這裡分開的是代表反應速度的 RSI週期.
做策略開發,修改的目的都是為了增加未來可能獲利的機會,但當我們在加濾網或增加參數時
可能要想一下是否有其意義在.

3.加入適當停損值
這算是最簡單也是最有效的方法
以均線進場的方法,如果是順勢通常可以賺一大段,但缺點是如果猜錯方向
要等均線交乂才會平倉出場,承受的風險就高.
加入停損後雖然會讓勝率下降,但系統穩定性會提高不少.
如以下回測績效3D圖,加入停損後可以看到,系統穏定不少(青綠色部份為參數高原區)
(水平線拉到200萬)
圖片 12  
圖片 13  


以下是使用這三點做修改後的績效.
雖然淨值並增加有限,但整体風險值變小不少
最大拉回平倉虧損:12.9萬
最大拉回浮動虧損:17.6萬

時段:2001~2013/11 
成本:來回1000元
圖片 6  
圖片 7  

可以觀察到:
平均每筆 獲利/虧損 =2.98 ,代表是賺錢時通長是一大段(可以從平均獲利K棒數和平均虧損K棒數看出來)
所以可以在賺錢時再加碼
圖片 8  
以下是當賺了目前指數的1%點數後,再加碼一口績效   (openD(0)*0.01)

圖片 10  
圖片 11  

未加碼與加碼比較
一口單獲利加一口
最大拉回浮動虧損(MDD)17.6萬22.5萬 
netprofit 264萬431萬
NetProfit/MDD1519.1


可以看到加碼後風險並未增加太多,但獲利明顯上升.
對於平均每筆 獲利/虧損超過2以上的策略,可以試著用加碼方式增加績效
當然加碼方式有很多種,可以試試別的~

最後:
看績效報表時會發現一件事,就是多方賺的比作空還多
獲利比約是2:1.
接下來就是又開始觀察作多,作空之間的差異,和什麼特性造成這種差異.
再去做排除和改進...
有興趣可以再續繼往下發展~

資料來源:程式交易
arrow
arrow
    全站熱搜

    GoForTrading 發表在 痞客邦 留言(0) 人氣()