2017年2月5日

如何限定進場條件在N根K棒內有效,逾時失效

兵法云:「一鼓作氣,再而衰,三而竭」,投機交易也是一樣,預先設定的條件都符合了,但卻遲遲沒有進場訊號(行情沒有呈現應有動能),或是進場後沒有出現如預期的行情走勢,這個時候我們需要一個限時機制,果斷捨棄該筆交易。本文介紹怎麼在PowerLanguage寫出”限時生效”的語法。

一樣以這篇「變數(Variables)與參數(Inputs)宣告」中均線交叉策略為例去改,進場訊號為,當均線交叉我們並不立即進場,而是以黃金交叉那根K棒高點當作多單進場價,以死亡交叉那根K棒低點當作空單進場價,我們希望交叉後5根K棒內要觸到進場價,否則就放棄此次進場,程式碼為:
=========================================
inputs:len1(5),len2(20),ChLen(5);
vars:ma1(0),ma2(0),th(0),HH(0),LL(0),Count(0);
ma1=average(close,len1);
ma2=average(close,len2);
if ma1 cross over ma2 then begin
 th=1;
 HH=high;
 Count=BarNumber;
end;
if marketposition<>1 and th=1 and BarNumber<Count+ChLen then buy next bar at HH stop;
if ma1 cross under ma2 then begin
 th=-1;
 LL=Low;
 Count=BarNumber;
end;
if marketposition<>-1 and th=-1 and BarNumber<Count+ChLen then sellshort next bar at LL stop;


=========================================
語法腳本中我們新增了參數ChLen(5)及變數Count(0),整個”限時有效”的技巧就在於,當均線交叉時令Count=BarNumber,BarNumber就是線圖上每根K棒有一個編號,從第一根(圖最左)為1號開始遞增編碼,此時Count值就會取得交叉當根K的BarNumber;接著在進場條件多加一條BarNumber,就可限定買賣訊號僅在交叉後5根K棒內有效(ChLen預設值為5),因為第6根之後BarNumber就會大於Count+ChLen。

限時生效技巧在很多地方都用得到,尤其是在修正交易策略過度交易毛病可派上用場。最後要提醒,以上例來講,也可能發生交易訊號未在時限內觸發,於是放棄該訊號,但行情卻意外朝該方向發展,考慮避免錯失大波段,交易策略可補一個再進場機制,當然,這樣做就見仁見智,也有可能最終患得患失兩頭空。交易策略開發到這個階段,最難就是”取捨”了,讀者須自己體悟調整了!



歡迎加入LINE@
加入好友
(點擊上方圖示)