想請教一下,日線回測無法取消逐筆回測,所以回測出來如下,這要如何處理,和式如下
目標:有訊號則在當日收盤下單,而不是有訊號1天來來回回交易,謝謝
input: Length(9), RSVt(2), Kt(2),_Length(20, "MA的天數"),UpperBand(2, "上通道標準差倍數"),LowerBand(2, "下通道標準差倍數"),gap(150);
variable: _rsv(0),_k(0),_d(0),_midband(0), _upband(0),_downband(0),_60MA(0),flag1(0),flag2(0),_stop(0),_D_V(0);
variable:rsv5(0),k5(0),d5(0),rsv60(0),k60(0),d60(0),_rsv60(0),_k60(0),_d60(0),rsvD(0),K_D(0),d_D(0);
variable: intrabarpersist flag(0);
Stochastic(Length, 2, 2, rsvD,K_D,d_D);//60分鐘9,2,2
_upband = bollingerband(Close,_Length, UpperBand);
_midband = average(close,_Length);
_downband = bollingerband(Close, _Length, -1 * LowerBand);
_60MA=average(close,60);
if (K_D cross above d_D) and (_upband-close>gap) and (K_D<90) then begin//(K_D>20),日KD向上交叉且離上軌道有150點空間則買進,高鈍95怎處理
flag2=1;
end;
if ((K_D cross under d_D) and (close-_downband>gap) and K_D<80) or ((K_D<d_D) and (K_D<80)) then begin//(K_D>20),日KD向上交叉且離下軌道有150點空間則買進
flag2=-1;
end;
if position=0 and filled=0 then begin
if flag2=1 then begin
setposition(1,market);//範圍市場委託,非市價單喔。證券帳號的話,會傳送市價委託,如果是期貨帳號的話,則會傳送範圍市價委託
flag=1;
end;
end;
//買單出場(9,3,3)
if position=1 then begin
if flag2=-1 then begin //日KD向下交叉且離下軌道超過150點
setposition(0,market);
flag=0;
end;
end;

2 評論