以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  extgbdataset处理的超全局变量,如何做初始化声明阿  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=85131)

--  作者:qq代人发帖
--  发布时间:2015/9/14 10:02:18
--  extgbdataset处理的超全局变量,如何做初始化声明阿
extgbdataset处理的超全局变量,如何做初始化声明阿
--  作者:jinzhe
--  发布时间:2015/9/14 10:04:26
--  
不用做初始化,初始值为0
--  作者:cjh2015
--  发布时间:2015/9/14 10:20:20
--  
可是不初始化声明,系统会报错未定义变量
--  作者:jinzhe
--  发布时间:2015/9/14 10:23:12
--  
不会,你代码是怎么写的?
--  作者:cjh2015
--  发布时间:2015/9/14 10:31:40
--  

就是软件系统自带的唐齐安通道,想使用一个超全局变量,比如POSITION去替换holding

 

//DESIGNED BY ROGARZ
 
//中间变量
INPUT:X(20,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1);
X周期高点:=REF(HHV(H,X),1);//X是参数,自行调整
X周期低点:=REF(LLV(L,X),1);
手数:=SS;
开仓时间:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
平仓时间:=TIME>=CLOSETIME(0)-NMIN*100;
{NMIN为参数,CLOSETIME(0)-NMIN*100表示 收盘时间-提前N分钟 N由NMIN控制}
 
//交易条件:
开多平空条件:=High>=X周期高点 and 开仓时间 and holding<=0;
开空平多条件:=Low<=X周期低点 and 开仓时间 and holding>=0;

//交易系统
收盘平多:sell(平仓时间 and holding>0, 0, thisclose);
收盘平空:sellshort(平仓时间 and holding<0,0,thisclose);

平空:sellshort(开多平空条件 and holding<0, 手数,limitr,X周期高点);
平多:sell(开空平多条件 and holding>0,手数,limitr,X周期低点);
开空:buyshort(开空平多条件 and holding=0,手数,limitr,X周期低点);
开多:buy(开多平空条件 and holding=0, 手数,limitr,X周期高点);

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


--  作者:jinzhe
--  发布时间:2015/9/14 10:36:45
--  
这里没有显示你有任何进行全局变量的代码,请把你的问题贴出来好吗?
--  作者:cjh2015
--  发布时间:2015/9/14 10:55:18
--  

使用POSITION替换holding去控制开平仓,如果对POSITION声明呢? 

 

 

//中间变量
INPUT:X(20,1,100,1),SS(1,0,10000,1);
X周期高点:=REF(HHV(H,X),1);
X周期低点:=REF(LLV(L,X),1);
手数:=SS;


//交易条件:
开仓时间:=DYNAINFO(207)>=010100 and DYNAINFO(207)<=185000 ;
平仓时间:=DYNAINFO(207)>=185400;
开多平空条件:=C>=X周期高点 and POSITON<=0;
开空平多条件:=C<=X周期低点 and POSITON>=0;

//交易系统
IF 平仓时间 and POSITON=1 THEN BEGIN
Tsell(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,0);
END

IF 平仓时间 and POSITON=-1 THEN BEGIN
Tsellshort(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,0);
END

IF 开空平多条件 and POSITON=1 THEN BEGIN
Tsell(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,0);
END

IF 开多平空条件 and POSITON=-1 THEN BEGIN
Tsellshort(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,0);
END


IF 开多平空条件 and 开仓时间 and POSITON<=0 THEN BEGIN
Tbuy(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,1); 
END

IF 开空平多条件 and 开仓时间 and POSITON>=0 THEN BEGIN
Tbuyshort(1,手数,MKT),ORDERQUEUE;
EXTGBDATASET(POSITON,-1);
END


--  作者:jinzhe
--  发布时间:2015/9/14 11:02:32
--  

这个是你用错了啊,

定义全局变量是extgbdataset(\'position\',123);

获取全局变量是extgbdata(\'position\')

变量名注意要加单引号