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