隨便寫了個(gè)日內(nèi)策略,想限制一天內(nèi)的交易次數(shù)為1次(多倉或者空倉,二選一,1次);但是測試了幾次發(fā)現(xiàn),整個(gè)測試期間2年才1筆交易!
代碼如下,求解!!
VARIABLE:NUM=0;//統(tǒng)計(jì)交易次數(shù)用
MA1:MA(C,5);
MA2:MA(C,10);
BUYCOND:=CROSS(MA1,MA2);
BUYSHORTCOND:=CROSS(MA2,MA1);
IF TIME=OPENTIME(0) THEN NUM=0;//每天開盤時(shí)置0
IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN //NUM<=1限制每天只能開倉1次
BEGIN
BUY(BUYCOND,1,MARKET);
NUM=NUM+1;//標(biāo)記開倉一次
END
IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN
BEGIN
BUYSHORT(BUYSHORTCOND,1,MARKET);
NUM=NUM+1;//標(biāo)記開倉一次
END
IF TIME>=145500 THEN EXIT;//最后5分鐘平倉
察覺了2個(gè)問題:
1、不能用NUM<=1來表達(dá),而要用NUM<CS,INPUT:CS(1,1,2,1);
但是為啥???NUM不能直接和常數(shù)進(jìn)行比較?參數(shù)CS不是視為常數(shù)?
2、語法錯(cuò)誤;NUM賦值語句掉了冒號(hào);
IF TIME>=145500 THEN EXIT;//最后5分鐘平倉
這個(gè)不叫最后5分鐘平倉
把這句刪了,添加:
if time<=145500 then begin
sell(1,0,market);
sellshort(1,0,market);
end
if time=closetime(0) then num:=0;