公式测试结果都很好,可是跑起来就不是那个样子了,模拟账号和仿真账号都会出现,已报单,但是半天才有反应的情况,已经走了好几根K线了,早就错过时机了。。。。
我选的是走完一根K线跑的;
后来我又选了固定时间一秒来跑,又会出现信号闪烁的问题。。。。那根K线一开始的时候达到条件开多的,(它也快速的开了多),可是跳着跳着又变了,原来那根K线不应该开多,但是手上却由于刚才的信号有持仓了。。。。。

我该如何解决这样的问题呢?
附上代码:
input:nMins(30,0,90,1); // N分钟的突破
input:OffDelatset(3,0,10,1);// 突破式的价格偏移
input:LOTS(1,0,9,1);
VARIABLE: ExitOnCloseMins:=150000;
MA5:REF(MA(CLOSE,5),1);
MA10:REF(MA(CLOSE,10),1);
M5M10:= CROSS(MA5,MA10);
M10M5:=CROSS(MA10,MA5);
if DATATYPE=1 THEN nMinsT:=nMins;
if DATATYPE=2 THEN nMinsT:=nMins/5;
i_offDelat:= OffDelatset*mindiff;
If date<>REF(date,1) THEN BEGIN
HighestOf30Min:= High;
lowestOf30Min:= Low;
DAYBARS:=1;
END
IF date=REF(date,1) THEN DAYBARS:=DAYBARS+1;
If (DAYBARS<=nMinsT AND DAYBARS>1 ) THEN BEGIN
HighestOf30Min:=max(high,HighestOf30Min);
lowestOf30Min:=min(Low,lowestOf30Min);
END
HighestOf30:HighestOf30Min;
lowestOf30:lowestOf30Min;
if (Time < ExitOnCloseMins and DAYBARS>nMinsT+1) THEN BEGIN
If (High >= HighestOf30Min+i_offDelat AND MA5>MA10 and close>MA5 ) THEN BEGIN
Sellshort(HOLDING<0,lots,LIMITR,max(HighestOf30Min+i_offDelat,Open));
Buy(HOLDING=0,lots,LIMITR,max(HighestOf30Min+i_offDelat,Open));
END
If (Low <=lowestOf30Min-i_offDelat AND MA10>MA5 AND close<MA10) THEN BEGIN
Sell(HOLDING>0,lots,limitr,Min(lowestOf30Min-i_offDelat,Open));
BuyShort(HOLDING=0,lots,limitr,Min(lowestOf30Min-i_offDelat,Open));
END
END
IF HOLDING>0 AND close<=MA5 THEN BEGIN
//SELL(1,lots,LIMITR,max(MA5,OPEN));
sell(1,lots,MARKETR);
END
IF HOLDING<0 AND CLOSE>=MA10 THEN BEGIN
// SELLSHORT(1,lots,LIMITR,min(MA10,OPEN));
sellshort(1,lots,MARKETR);
END
If (time>=ExitOnCloseMins and HOLDING<>0) THEN BEGIN
Sell(holding>0,LOTS,limitr,Open);
SellSHORT(holding<0,LOTS,limitr,Open);
END
持仓:holding,noaxis ,linethick0 ;
盈亏:asset-1000000,noaxis,coloryellow,linethick2;
我是根据论坛上财富游戏002改的,在这里谢谢那位大哥!
哪一个条件啊,MA5 和MA10 我都有改成REF(MA(CLOSE,5),1) 和REF(MA(CLOSE,10),1)的