费率设置设ASSET为10万
IF ASSET>=100000 THEN BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号
END
ELSE
if ASSET< 100000 then BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE;
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE;
END
显示编译错误,说平空不能重复,可是如果我想实现ASSET 小于八万平掉所有仓位,等下次虚拟运算,如果大于再次开平仓.怎么样实现
不可能不让多次平空的,你把完整代码贴过来我们帮你看看
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
手数:=ss;
//交易条件
开多平空条件:=CROSS(J,0);//开多平空条件
开空平多条件:=CROSS(100,J);//开空平多条件
KD:=cross(j,0);
PD:=cross(100,j);
KK:=pd;
pk:=kd;
IF ASSET>=100000 THEN BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号
END
ELSE
if ASSET< 100000 then BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE;
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE;
END
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*D;
手数:=ss;
//交易条件
开多平空条件:=CROSS(J,0);//开多平空条件
开空平多条件:=CROSS(100,J);//开空平多条件
KD:=cross(j,0);
PD:=cross(100,j);
KK:=pd;
pk:=kd;
IF ASSET>=100000 THEN BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE; //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开多信号
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE; //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE),ORDERQUEUE; //开空信号
END
ELSE
if ASSET< 100000 then BEGIN
平空:SELLSHORT(PK and HOLDING<0,1,THISCLOSE),ORDERQUEUE;
平多:SELL(PD and HOLDING>0,1,THISCLOSE),ORDERQUEUE;
END
一个系统 相同的变量名只能是1个
怎么样解决这个问题呢