代码如下,为什么主图计算什么都没有
INPUT:ZS(30,1,100,1);
INPUT:ZY(80,1,100,1);
INPUT:HT(40,1,100,1);
VARIABLE:N=0;
SS:=1;
当前时间:=CurrentTime();
开仓时间:=(当前时间>=091500 and 当前时间<120000);
平仓时间:=(当前时间>=155000 and 当前时间<160000);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
REFH:=REF(HHV(HIGH,CYC),CYC);//昨日高点
REFL:=REF(LLV(LOW,CYC),CYC); //昨日低点
KD:=CROSS(C, REFH);//开多条件
KK:=CROSS(REFL, C);//开空条件
DTZY:=CLOSE-AVGENTERPRICE>=ZY*MINDIFF;//多头止盈
KTZY:=AVGENTERPRICE-CLOSE>=ZY*MINDIFF;//空头止盈
DTZS:=AVGENTERPRICE-CLOSE>=ZS*MINDIFF;//多头止损
KTZS:=CLOSE-AVGENTERPRICE>=ZS*MINDIFF;//空头止损
BKHIGH:=HHV(HIGH,ENTERBARS+1);//持仓最高
SKLOW:=LLV(LOW,ENTERBARS+1); //持仓最低
DTHT:=CLOSE<BKHIGH-HT*MINDIFF;//多头回头
KTHT:=CLOSE>SKLOW+HT*MINDIFF; //空头回头
//MSGOUT(HOLDING<>0, '持仓均价:'+NUMTOSTR(AVGENTERPRICE, 0));
//MSGOUT(HOLDING<>0, '开多最高:'+NUMTOSTR(BKHIGH, 0));
//MSGOUT(HOLDING<>0, '开空最低:'+NUMTOSTR(SKLOW, 0));
IF TODAYBAR=1 THEN N:=0;
//开多
IF KD AND N=0 AND 开仓时间 THEN BEGIN
BUY(HOLDING=0, SS, MARKET);
N:=1;
END
//开空
IF KK AND N=0 AND 开仓时间 THEN BEGIN
BUYSHORT(HOLDING=0, SS, MARKET);
N:=1;
END
//平多头
IF DTZY AND HOLDING>0 AND ENTERBARS>0 THEN 多止盈:SELL(1,SS,MARKET);
IF DTZS AND HOLDING>0 AND ENTERBARS>0 THEN 多止损:SELL(1,SS,MARKET);
IF DTHT AND HOLDING>0 AND ENTERBARS>0 THEN 多回头:SELL(1,SS,MARKET);
//平空头
IF KTZY AND HOLDING>0 AND ENTERBARS>0 THEN 空止盈:SELLSHORT(1,SS,MARKET);
IF KTZS AND HOLDING>0 AND ENTERBARS>0 THEN 空止损:SELLSHORT(1,SS,MARKET);
IF KTHT AND HOLDING>0 AND ENTERBARS>0 THEN 空回头:SELLSHORT(1,SS,MARKET);
//时间平仓
IF CurrentTime>=155000 AND CurrentTime<160000 THEN 时间平多:SELL(1,HOLDING,MARKETR);
IF CurrentTime>=155000 AND CurrentTime<160000 THEN 时间平空:SELLSHORT(1,HOLDING,MARKETR);
当前时间:=CurrentTime();
开仓时间:(当前时间>=091500 and 当前时间<120000);
平仓时间:(当前时间>=155000 and 当前时间<160000);
历史K上这个时间判断无效。CurrentTime 只有最新值。只要当前时间符合,历史K哪怕是在这个时间之外 也会显示满足“开仓时间”。
请用time函数做这个时间判断。注意用time必须是金字塔时间, 金字塔时间和北京时间差4小时。 金字塔时间18:00 对应北京时间14:00.