设置一个全局变量A,在本K有执行反手或开仓指令后,令A值为0,直到走完K线前,调出的A值应该为0,以此判断本周期已经新开仓。
次周期,令A=1或其他(非0),直到下次开仓前,都保持A<>0,而再有开仓(或反手)指令执行后(K线未走完),把A变为0.
目的是把新开仓后至K线K线走完这段时间,在全局变量的值中体现出来。
开仓历时=0时,使X值等于-X0。不知何故,请高手指导。
VARIABLE:开仓历时=1;
K:=MA(C,5);
D:=MA(C,10);
S:=ABS(K-D);
KCLS:EXTGBDATA('开仓历时'),COLORYELLOW,LINETHICK0;
X:IF(KCLS<>0,X0,-X0),COLORYELLOW,LINETHICK0;
BB:=K>D;
SS:=D>K;
IF BB THEN BEGIN
SELLSHORT(Holding<0, 0,THISCLOSE);
BUY(Holding=0, 1, THISCLOSE);
END
IF SS THEN BEGIN
SELL(Holding>0,0,THISCLOSE);
BUYSHORT(Holding=0, 1,THISCLOSE);
END
EXTGBDATASET('开仓历时',ENTERBARS );
//以下两句用于调试
开仓历时值:EXTGBDATA('开仓历时'),COLORYELLOW,LINETHICK0;
开仓历时函数:ENTERBARS,COLORYELLOW,LINETHICK0;
X0是什么??
按照你的写法,EXTGBDATA('开仓历时')的值一直等于最后一根K线图时候的enterbars
X0是什么??
按照你的写法,EXTGBDATA('开仓历时')的值一直等于最后一根K线图时候的enterbars
1. X0 是中间变量,程序的目的,是要在 新开仓后至K线走完这段时间 使 X=-X0;其他时段X=X0。
2.'开仓历时'最后肯定 等于‘最后一根K线图时候的enterbars’,而不是‘一直’,最好加载看看。这里面涉及全局变量应用的问题,明明全局变量库里的值是正确的,但 KCLS:EXTGBDATA('开仓历时'), 读出的值是另一个,你加载到图表自然会看到,这也是不能达到1楼目的的关键。
3. 这这是我的做法,我是想高手们用其他途径达到1楼的目的。