以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为什么画不出线?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=57162)

--  作者:aben1188
--  发布时间:2013/9/30 10:45:06
--  为什么画不出线?

CC:=(H+L)/2;

DIRECTION:=CC-REF(CC,N1);
VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
ER:=ABS(DIRECTION/VOLATILITY);

FSC:=2/(2+1);
SSC:=2/(30+1); 
SC:=ER*(FSC-SSC)+SSC;
SCSQ:=SC*SC;

IF BARPOS=1 THEN AMA:=CC;
REFAMA:=REF(AMA,1);
IF BARPOS>1 THEN AMA:=REFAMA+SCSQ*(CC-REFAMA);
AMAVALUE:AMA,COLORWHITE;

 

请教,上面这段代码,为什么画不出AMAVALUE这条白线?问题在哪里?先谢过了!


--  作者:jinzhe
--  发布时间:2013/9/30 10:51:32
--  

CC:=(H+L)/2;
n1:=1;
VARIABLE:ama=0;
DIRECTION:=CC-REF(CC,N1);
VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
ER:=ABS(DIRECTION/VOLATILITY);

FSC:=2/(2+1);
SSC:=2/(30+1); 
SC:=ER*(FSC-SSC)+SSC;
SCSQ:=SC*SC;

IF BARPOS=1 THEN AMA:=CC;

IF BARPOS>1 THEN AMA:=AMA+SCSQ*(CC-AMA);
AMAVALUE:AMA,COLORWHITE;

 

 

做了这样的修改,就OK了,如果想要修改N1的话,按照下面思路做修改

N1是多少很关键,N1是1,那么就需要定义barpso=1时AMA是多少,N1是2,那么就要定义barpos=1和barpos=2时,AMA是多少,N1是3时,就要定义barpos=1,barpos=2和barpos=3时,AMA是多少,以此类推


--  作者:aben1188
--  发布时间:2013/9/30 10:58:38
--  
以下是引用jinzhe在2013/9/30 10:51:32的发言:

CC:=(H+L)/2;
n1:=1;
VARIABLE:ama=0;
DIRECTION:=CC-REF(CC,N1);
VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
ER:=ABS(DIRECTION/VOLATILITY);

FSC:=2/(2+1);
SSC:=2/(30+1); 
SC:=ER*(FSC-SSC)+SSC;
SCSQ:=SC*SC;

IF BARPOS=1 THEN AMA:=CC;

IF BARPOS>1 THEN AMA:=AMA+SCSQ*(CC-AMA);
AMAVALUE:AMA,COLORWHITE;

 

 

做了这样的修改,就OK了,如果想要修改N1的话,按照下面思路做修改

N1是多少很关键,N1是1,那么就需要定义barpso=1时AMA是多少,N1是2,那么就要定义barpos=1和barpos=2时,AMA是多少,N1是3时,就要定义barpos=1,barpos=2和barpos=3时,AMA是多少,以此类推

 

多谢您的及时回复!也就是说,如果修改为下面这样,应该就可以通用了:

 

VARIABLE:AMA=0;

CC:=(H+L)/2;
DIRECTION:=CC-REF(CC,N1);
VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
ER:=ABS(DIRECTION/VOLATILITY);

FSC:=2/(2+1);
SSC:=2/(30+1); 
SC:=ER*(FSC-SSC)+SSC;
SCSQ:=SC*SC;

IF BARPOS=N1 THEN AMA:=CC;

IF BARPOS>N1 THEN AMA:=AMA+SCSQ*(CC-AMA);
AMAVALUE:AMA,COLORWHITE;


--  作者:jinzhe
--  发布时间:2013/9/30 11:01:30
--  

是的,如果原来的思路上最开N1个周期的AMA是这样定义的话,那么这样写就是对的了


--  作者:aben1188
--  发布时间:2013/9/30 11:15:53
--  
以下是引用jinzhe在2013/9/30 11:01:30的发言:

是的,如果原来的思路上最开N1个周期的AMA是这样定义的话,那么这样写就是对的了

 

谢谢!另外再请教,下面的白线和红线,画出来不一样,原因在哪里?

 

VARIABLE:AMA=0;
VARIABLE:AMA2=0;


DIRECTION:=CC-REF(CC,N1);
VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
ER:=ABS(DIRECTION/VOLATILITY);

FSC:=2/(2+1);       

SSC:=2/(30+1);       
SC:=ER*(FSC-SSC)+SSC;
SCSQ:=SC*SC;    

 

IF BARPOS=N1 THEN AMA:=CC;
IF BARPOS=N1 THEN AMA2:=CC;
REFAMA2:=REF(AMA2,1);
IF BARPOS>N1 THEN AMA:=AMA+SCSQ*(CC-AMA);
IF BARPOS>N1 THEN AMA2:=REFAMA2+SCSQ*(CC-REFAMA2);

 

AMAVALUE:AMA,COLORWHITE;
AMAVALUE2:AMA2,COLORRED;


--  作者:jinzhe
--  发布时间:2013/9/30 12:52:05
--  

我给你删了那句怎么又加上了?因为定义不了所以才删掉的

 

前N1个都要定义的。没有定义不完全