-- 作者:天涯doa
-- 发布时间:2015/3/28 23:00:23
-- 关于variable全局变量使用问题
一直对全局变量的使用有些糊涂,金字塔的例子看了,还是不太明白,就想通过这个例子,请教一下大家。根据金字塔对于全局变量的例子,如图
此主题相关图片如下:1.png

全局变量在后续的周期内都不在变化了。那看下面的例子我有点糊涂了。 经常在交易系统中看到红色的代码,用来控制隔夜高开或低开的。假如今天高开,vmin就被赋值为091500,而尾盘没有对vmin重新赋值为090000,那么后续vmin高开或低开判断功能就失效了。 不知道是我的理解有问题还是这个代码缺少重新赋值语句。 用于3分钟图。 input:P(26,20,100,8);
input:S(12,5,40,4);
input:B1(26,5,300,30);
input:B2(2,0.1,10,1);
input:N2(10,1,120,12);
input:N3(20,1,200,20);
input:N4(60,1,200,20);
ma2:ma(c,n2);
ma3:ma(c,n3);
ma4:ma(c,n4);
MID :=
MA(CLOSE,B1);
UPPER:= MID + B2*STD(CLOSE,B1);
LOWER:= MID - B2*STD(CLOSE,B1),colorred;
diff :=
EMA(CLOSE,S) - EMA(CLOSE,P);
variable:vmin =
090000;//用于隔夜高开或低开时间差
if
(abs(o-ref(c,1))>=20*MINDIFF AND time>090000 and time<090400) then
vmin := 091500;
//开多仓条件:
BOPEON1:=c>upper and diff>0 and c>o and c>ma4 AND HOLDING=0 AND
time>vmin AND time<150000;
//平多仓条件:
BLIQCON:=holding>0 and cross(ma3,ma2);
//开空仓条件:
SOPCON1:=c<lower and diff<0 and c<o and c<ma4 AND HOLDING=0 AND
time>vmin AND time<150000;
//平空仓条件:
SLIQCON:=holding<0 and cross(ma2,ma3);
buy(BOPEON1,1,market);
sell(BLIQCON,holding,market);
buyshort(SOPCON1,1,market);
sellshort(SLIQCON,holding,market);
//收盘前平仓
sell(time>151000 and holding>0,holding,market);
sellshort(time>151000 and holding<0,holding,market);
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
资产:ASSET,LINETHICK0;
|