投资者咨询:全局变量,多次赋值,前后值不一致,如何处理? (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-7-30 15:06
//全局变量,多次赋值,前后值不一致,如何处理?
VARIABLE:T中BL白:0,T中ZGJ:0,T中ZDJ:0 ,T中浪:0 ; //T中-大级别平台,数浪 T中ZAF:0, T中ZBF:0 , T中ZCF:0
SHORT:=12;
LONG:=26;
M:=9;
//*** T中 MACD指标*****************************
T中:=1;// N倍MACD
T中DIFF:EMA(CLOSE,SHORT*T中) - EMA(CLOSE,LONG*T中),DOT,NOTEXT,COLORWHITE;//短周期与长周期的收盘价的指数平滑移动平均值做差。
T中DEA :EMA(T中DIFF,M*T中),DOT,NOTEXT,COLORYELLOW;//DIFF的M个周期指数平滑移动平均
T中MD :2*(T中DIFF-T中DEA),COLORSTICK,NOTEXT;// DIFF减DEA的2倍画线
T中D:=COUNT(1,0)/COUNT(CROSSUP(T中DIFF,T中DEA),0),COLORRED,NODRAW;//求出金叉的,平均周期
T中F:IF(BARPOS>T中D*10,T中D*10,BARPOS),NODRAW;//基础分析周期数
T中上标:=MAX(HHV(T中DIFF,T中F),HHV(T中MD,T中F));
T中下标:=MIN(LLV(T中DIFF,T中F),LLV(T中MD,T中F));
T中K标:=MA(ABS(H-L),T中F*1);//求1倍TO周期内的,高低点这间的平均波动幅度,也用于标注的参考点
T中BL白:IF(T中DEA>T中上标*0.3 AND T中DIFF>T中DEA,T中DIFF,
IF(CROSSDOWN(T中DIFF,0),NULL,
T中BL白)),COLORWHITE;
T中BL起:IF(T中BL白<>0 AND (ISNULL(REF(T中BL白,1)) OR 0),10,0),COLORWHITE,NOTEXT;//中枢的起点,应对全局变量在后面赋值,必须取值2个的处理方法
//IF REF(T中BL起,1)=1 THEN T中BL起:0,NOTEXT;
T中BL终:IF((REF(T中BL白,1)<>0 OR 0) AND ISNULL(T中BL白),-10,0),COLORYELLOW,NOTEXT;//中枢的起点
//IF REF(T中BL终,1)=-1 THEN T中BL终:=0,NOTEXT; /T中BL终:FILTER(T中BL终=-1 ,1 )*-30;//采用过滤方法,存在问题
T中BL白:IF(T中DEA>T中上标*0.5 AND T中DIFF>T中DEA,T中DIFF,T中BL白);//参数 大于 T中上标*0.3,起点有值
//T中BL白:IF(T中DEA>T中上标*0.2 AND T中DIFF>T中DEA,T中DIFF,T中BL白);////参数 小于 T中上标*0.3,起点无
技术人员回复
日期:2018-7-30 16:02
对全局变量多次循环赋值,可以配合IF THEN BEGIN语句,以定义T中BL白为例,参考:
VARIABLE:T中BL白:0,T中ZGJ:0,T中ZDJ:0 ,T中浪:0 ; //T中-大级别平台,数浪 T中ZAF:0, T中ZBF:0 , T中ZCF:0
SHORT:=12;
LONG:=26;
M:=9;
//*** T中 MACD指标*****************************
T中:=1;// N倍MACD
T中DIFF:EMA(CLOSE,SHORT*T中) - EMA(CLOSE,LONG*T中),DOT,NOTEXT,COLORWHITE;//短周期与长周期的收盘价的指数平滑移动平均值做差。
T中DEA :EMA(T中DIFF,M*T中),DOT,NOTEXT,COLORYELLOW;//DIFF的M个周期指数平滑移动平均
T中MD :2*(T中DIFF-T中DEA),COLORSTICK,NOTEXT;// DIFF减DEA的2倍画线
T中D:=COUNT(1,0)/COUNT(CROSSUP(T中DIFF,T中DEA),0),COLORRED,NODRAW;//求出金叉的,平均周期
T中F:=IF(BARPOS>T中D*10,T中D*10,BARPOS),NODRAW;//基础分析周期数
T中上标:=MAX(HHV(T中DIFF,T中F),HHV(T中MD,T中F));
T中下标:=MIN(LLV(T中DIFF,T中F),LLV(T中MD,T中F));
T中K标:=MA(ABS(H-L),T中F*1);//求1倍TO周期内的,高低点这间的平均波动幅度,也用于标注的参考点
IF (T中DEA>T中上标*0.3 AND T中DIFF>T中DEA)||(T中DEA>T中上标*0.2 AND T中DIFF>T中DEA) THEN
BEGIN
T中BL白:=T中DIFF;
END
IF CROSSDOWN(T中DIFF,0)&&NOT(T中DEA>T中上标*0.3 AND T中DIFF>T中DEA) THEN
BEGIN
T中BL白:=NULL;
END
IF NOT(CROSSDOWN(T中DIFF,0))&&NOT((T中DEA>T中上标*0.3 AND T中DIFF>T中DEA)||(T中DEA>T中上标*0.2 AND T中DIFF>T中DEA)) THEN
BEGIN
T中BL白:=T中BL白;
END
SS:T中BL白;
投资者咨询:全局变量,多次赋值,前后值不一致,如何处理? (文华财经WH8赢智V8.2)
来源:文华财经 日期:2018-7-30 15:06
//我关键的问题是,不能把 T中BL白 放在一起,邻近来赋值,因为,我实际的程序代码,
T中BL白:IF(T中DEA>T中上标*0.3 AND T中DIFF>T中DEA,T中DIFF,
IF(CROSSDOWN(T中DIFF,0),NULL,
T中BL白)),COLORWHITE;
T中BL起:IF(T中BL白<>0 AND (ISNULL(REF(T中BL白,1)) OR 0),10,0),COLORWHITE,NOTEXT;//中枢的起点,应对全局变量在后面赋值,必须取值2个的处理方法
//IF REF(T中BL起,1)=1 THEN T中BL起:0,NOTEXT;
T中BL终:IF((REF(T中BL白,1)<>0 OR 0) AND ISNULL(T中BL白),-10,0),COLORYELLOW,NOTEXT;//中枢的起点
//IF REF(T中BL终,1)=-1 THEN T中BL终:=0,NOTEXT; /T中BL终:FILTER(T中BL终=-1 ,1 )*-30;//采用过滤方法,存在问题
//T中BL白:IF(T中DEA>T中上标*0.2 AND T中DIFF>T中DEA,T中DIFF,T中BL白);////参数 小于 T中上标*0.3,起点无
技术人员回复
日期:2018-7-31 8:56