Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]所有的条件都成立了,请问为何调试的时候所有的参数都是0 。。连全局变量在声明的时候 都赋值成1了,调试的时候还是0. 请帮忙看看,谢谢。

1楼
clant 发表于:2013/6/20 11:01:10

所有的条件都成立了,请问为何调试的时候 所有的参数 gao ,di, ,nn1 都是0. 

不应该啊,连全局变量在声明的时候 都赋值成1了,调试的时候还是0.

郁闷啊。

 

请帮忙看看,谢谢。

 

//-----变量声明----
GLOBALVARIABLE:gao=1,di=1;


variable:nn1[1]=0,nn2[1]=0;

 

//--------存储高低点值------

IF MACD>0.5 AND VA2 AND VA2!=UU and gao=1 then nn1[gao]=MACD;
IF MACD>0.5 AND VA2 AND VA2!=UU and gao!=1 then gao=gao+1;
IF MACD>0.5 AND VA2 AND VA2!=UU then SETUBOUND(nn1,gao),nn1[gao]=MACD;
nn3:nn1;

 

 

 

 

源码如下:

 

//----MACD-----
DIF:EMA((CLOSE+h+l)/3,12)-EMA((CLOSE+h+l)/3,26);
DEA:EMA(DIF,9);
MACD:DIF;
STICKLINE(MACD>=0,MACD,0 ,5,0) ,COLORred;
STICKLINE(MACD<0,MACD,0 ,5,0 ),COLORGREEN;
STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,5,0),COLORYELLOW;
STICKLINE(MACD<0 AND MACD<REF(MACD,1),MACD,0,5,0),COLORBLUE;

//------高低点计算------
VA1:=HHVBARS(MACD,BARSLAST(MACD<0)+1);
VA2:=CROSS(BACKSET(CROSS(0,MACD),REF(VA1,1)+2),0.5);
VA3:=LLVBARS(MACD,BARSLAST(MACD>0)+1);
VA4:=CROSS(BACKSET(CROSS(MACD,0),REF(VA3,1)+2),0.5);
QG:=CROSS(BACKSET(CROSS(0,MACD) OR (ISLASTBAR AND MACD>0),REF(VA1,1)+2),0.5);
前高:DRAWLINE(VA2,MACD,REF(VA2,1),REF(MACD,1),1),COLORMAGENTA;
终点:=IF(ISLASTBAR AND MACD>0 AND MACD=HHV(MACD,BARSLAST(MACD<0)),1,IF(FILTERX(QG,BARSCOUNT(C)),2,DRAWNULL));
UU:=(终点=1 OR 终点=2) AND MACD>0;

//--------获取MACD前高---------
DRAWTEXT(MACD>0.5 AND VA2 AND VA2!=UU,(MACD/10)*9,'前'),COLORWHITE;
DRAWTEXT(MACD>0.5 AND VA2 AND VA2!=UU,MACD/10,'高'),COLORWHITE;

//--------获取MACD前低---------
DRAWTEXT(MACD<-0.5 AND VA4 AND VA4!=UU,(MACD/10)*9,'前'),COLORWHITE;
DRAWTEXT(MACD<-0.5 AND VA4 AND VA4!=UU,MACD/10,'低'),COLORWHITE;

 

 

 

//-----变量声明----
GLOBALVARIABLE:gao=1,di=1;
variable:nn1[1]=0,nn2[1]=0;

//--------存储高低点值------

IF MACD>0.5 AND VA2 AND VA2!=UU and gao=1 then nn1[gao]=MACD;
IF MACD>0.5 AND VA2 AND VA2!=UU and gao!=1 then gao=gao+1;
IF MACD>0.5 AND VA2 AND VA2!=UU then SETUBOUND(nn1,gao),nn1[gao]=MACD;
nn3:nn1;

2楼
jinzhe 发表于:2013/6/20 11:06:44

IF MACD>0.5 AND VA2 AND VA2!=UU and gao!=1 then gao=gao+1;
最后的是判断,不是赋值,

要改成gao:=gao+1;

3楼
clant 发表于:2013/6/20 11:10:38
谢谢
4楼
clant 发表于:2013/6/20 11:14:19

该成gao:=gao+1;了,运行后还是0。

 

连GLOBALVARIABLE:gao:=1,di:=1;这个全局变量也是0.。

 

郁闷啊

5楼
jinzhe 发表于:2013/6/20 11:17:50

用超全局变量是为了什么目的?

6楼
clant 发表于:2013/6/20 11:25:12
记录  MACD>0.5 AND VA2 AND VA2!=UU  条件满足时的次数, 并扩充 数组变量 variable:nn1容量,    并将macd值 存入数组变量variable:nn1。
 
 
超全局变量GLOBALVARIABLE:gao:=1,  是用于记录 MACD>0.5 AND VA2 AND VA2!=UU  条件满足时 的次数。
IF MACD>0.5 AND VA2 AND VA2!=UU and gao!=1 then gao=gao+1;
 
 
 
并用于扩充 数组变量 variable:nn1的容量。 SETUBOUND(nn1,gao),
IF MACD>0.5 AND VA2 AND VA2!=UU then    SETUBOUND(nn1,gao),    nn1[gao]:=MACD;
 
 并将macd值 存入扩充后的 数组变量variable:nn1。
nn1[gao]:=MACD;

[此贴子已经被作者于2013/6/20 11:26:41编辑过]
7楼
clant 发表于:2013/6/20 11:36:51
超全局变量GLOBALVARIABLE:gao:=1。明明在声明的时候已经初始化成1,单步调试运行到这里,居然是0.
共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.02344 s, 3 queries.