IF 条件1 THEN
VAR1:=VAR1+1;
IF 条件2 THEN
VAR2:=VAR2+1;
VARIABLE 表示声明后面的变量名为全局变量
VAR1 VAR2全局变量的名字
X Y 为全局变量的初始值
VAR1:=VAR1+1;表示给VARI赋值
如果当前K线条件满足条件1,则给VARI赋值为VAR1+1,否则仍旧取值为之前的VAR1的值
全局变量:是在历史第一根K线上定义变量初始值,后续K线上关于该变量的计算始终调用上一根K线上该变量的返回值。
普通变量:在每一根K线上普通变量的初始值都是NULL,通过模型的计算,得到一个最后返回值。
全局变量的使用目的在于实现一些过去不容易实现,或者不能实现的思路,编写时配合IF THEN BEGIN语句可以使整个编写逻辑更加清晰明了
请参考2楼,在文华编写复杂思路时,如果配合IF THEN BEGIN语句可以简化编写逻辑
不仅可以循环定义变量,同时也能兼容其他程序化软件的编写语言
比如我们经常用到根据前一笔交易情况来控制当前开仓手数,这种思路使用全局变量来写就更简便了
举个例子吧:
初始下单手数为1,上一次交易如果盈利,下单手数在之前的下单手数上加2
上一次没有盈利,继续使用上一次的下单手数。
——————
未加入全局变量:
SSS:=1;//定义初始手数
HH:=HV(H,10);//10个周期最高价
LL:=LV(L,10);//10个周期最低价
CROSS(C,HH)&&COUNT(BARSBK=1,BARPOS)<1,BK(SSS);
//历史第一次出现满足条件发出BK信号时,以手数SSS进行委托
SS:=IF(TRADE_REF(1)=1,REF(SS,BARSSP+1)+2,REF(BKVOL,BARSSP+1));
//定义手数SS 判断上一次交易是否盈利,如果盈利则在原有手数基础上+2,如果没有盈利 则取上一次开仓手数
CROSS(C,HH),BK(SS);
CROSS(LL,C),SP(BKVOL);
加入全局变量:
VARIABLE:SS:1;//定义全局变量SS
IF TRADE_REF(1)=1 THEN//如果上一笔交易盈利
BEGIN
SS:=REF(SS,BARSSP+1)+2;//SS取上一笔委托手数+2 否则沿用之前的委托手数
END
HH:=HV(H,10);
LL:=LV(L,10);
CROSS(C,HH),BK(SS);
CROSS(LL,C),SP(BKVOL);
类似的思路,您可以在论坛搜:全局,来查看研究一下