我們要限制日內的交易次數,尤其當沖策略會派上用場,最簡單的方式是用「EntriesToday()」這個函式,其中於括弧內指定日期,可傳回該日進場的次數,例如要限制每日當沖次數不超過3次,語法舉例如下:
If EntriesToday(Date) < 3 then begin
…(進場)
End;
記得出場腳本要擺在上述控制外寫,以免出不了場。
函式:TotalTrades
EntriesToday定義的”今日”是以凌晨0:00起始計算,遇到交易時間跨日,例如台指夜盤(15:00~隔天05:00)就會遇到困擾,這個時候可以改用TotalTrades這個函式來因應。TotalTrades會回傳目前該策略總進出次數,注意是進出,而非進場,也就是進場後完成出場在TotalTrades才會算一次。接下來我們直接用一個簡單範例來示範控制台指當沖,日盤跟夜盤交易次數各不能超過3次。
===============================
inputs:Len1(5),Len2(20);
Vars:ma1(0),ma2(0),tradequantity(0);
ma1=average(close,Len1);
ma2=average(close,Len2);
if time=1345 then tradequantity=totaltrades;
if time=500 then tradequantity=totaltrades;
If totaltrades < tradequantity + 3 and ma1 cross over ma2 then buy next bar at market;
If totaltrades < tradequantity + 3 and ma1 cross below ma2 then sellshort next bar at market;
setprofittarget(4000);
setstoploss(2000);
===============================
其中,我們在上午盤最後一根K棒(time=1345)及下午盤最後一根K棒(time=500)將到當下的totaltrades儲存(更新)到自設變數tradequantity,在接下來的進場條件限制多加一條totaltrades < tradequantity + 3,如此,可以控制當totaltrades超過上一盤totaltrades逾3次就不再進場。
歡迎加入LINE@
(點擊上方圖示)
沒有留言:
張貼留言
歡迎留言討論!