以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于variable全局变量使用问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=77037)

--  作者:天涯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;



--  作者:天涯doa
--  发布时间:2015/3/29 14:19:14
--  
人工顶一下,求解答图片点击可在新窗口打开查看
--  作者:jinzhe
--  发布时间:2015/3/30 9:18:29
--  
这样写是对的,看看是不是高开判断没有满足