早盤突破系統,1分鐘上測試2年,
剛開始寫完交易次數是1700多;后來添加了一個每天只能交易一手的條件,結果交易次數只有3次了!
添加了交易次數限制的代碼如下,是我寫的邏輯出錯了嗎?
input:T(30,5,60,5),
SS(1,1,10,1),
U(1,1,10,1),
D(1,1,10,1),
CS(1,1,5,1);//交易次數限制
VARIABLE:NUM=0;//統計開倉動作
n:=barslast(date<>ref(date,1))+1;//開盤以來的K線數量
hh:=hhv(high,n);//開盤以來的高價
H30:=valuewhen(time>=opentime(1) and time<=opentime(1)+T*100,hh);//30分鐘內的高價
ll:=llv(low,n);//開盤以來的低價
L30:=valuewhen(time>=opentime(1) and time<=opentime(1)+T*100,ll);//30分鐘內的低價
上軌:H30+U*MINDIFF,linethick2;
下軌:L30-D*MINDIFF,linethick2;
buycond:=cross(high,上軌);//做多條件
buyshortcond:=cross(下軌,low);//做空條件
buyprice:=max(open,上軌)+1*mindiff;//開多價格
buyshortprice:=min(open,下軌)-1*mindiff;//開空價格
stopbuy:max(valuewhen(n=1,open),ref(high,1)*(1-0.5/100)),linedot;//多頭止損價位
stopshort:min(valuewhen(n=1,open),ref(low,1)*(1-0.5/100)),linedot;//空頭止損價位
sellcond:=cross(stopbuy,low);//平多條件
sellshortcond:=cross(high,stopshort);//平空條件
sellprice:=min(open,stopbuy)-1*mindiff;//平多價格
sellshortprice:=max(open,stopshort)+1*mindiff;//平空價格
entertime:=time>opentime(1)+T*100 and time<closetime(0)-10*100;//入場交易時間
exittime:=time>=closetime(0)-10*100;//平倉離場時間
if entertime and holding=0 and num<CS then {開倉入場}
begin
if buycond then
BEGIN
buy(1,ss,limitr,buyprice);
NUM:=NUM+1;
END
else if buyshortcond then
BEGIN
buyshort(1,ss,limitr,buyshortprice);
NUM:=NUM+1;
END
end
if enterbars>1 and holding<>0 then {止損離場}
begin
if holding>0 and sellcond then
sell(1,ss,limitr,sellprice);
else if holding<0 and sellshortcond then
sellshort(1,ss,limitr,sellshortprice);
end
if exittime and holding<>0 then {收盤平倉}
begin
sell(holding>0,ss,limitr,open-1*mindiff);
sellshort(holding<0,ss,limitr,open+1*mindiff);
NUM:=0;
end
持倉:holding,linethick0;
凈利潤:netprofit,linethick0;
資產:asset,linethick0;
資金:cash(0),linethick0;
if exittime and holding<>0 then {收盤平倉}
begin
sell(holding>0,ss,limitr,open-1*mindiff);
sellshort(holding<0,ss,limitr,open+1*mindiff);
NUM:=0;
end
改成
if exittime and holding<>0 then {收盤平倉}
begin
sell(holding>0,ss,limitr,open-1*mindiff);
sellshort(holding<0,ss,limitr,open+1*mindiff);
end
if exittime then NUM:=0;
試了一下,的確糾正過來了謝謝、、