direction:=abs(c-ref(c,ef));
volatility:=sum(abs(c-ref(c,1)),ef);
er:=if(volatility>0,direction /volatility,0);
ssc:=er*(2/(favg+1)-2/(savg+1))+2/(savg+1) ;
ama:=ref(ama,1)+ssc*ssc*(c-ref(ama,1));
xxx:ama;
结果图表上一个bar隔着一个bar有xxx,估计问题出在红色语句上,但如果是ama初始值没有的原因的话,应该所有bar都没有数值咯,求大侠帮忙
ama:=ref(ama,1)+ssc*ssc*(c-ref(ama,1));
将该句改为
ama1:=ref(ama,1);
ama:=ama1+ssc*ssc*(c-ama1);
如果还是不行,您本地就要跟踪一下SSC这个变量了.
和那个变量没有关系,我把问题化简了
variable:ama=0;
ama1:=ref(ama,1);
ama:=ama1+(c-ama1)*0.1;
xx:ama;
xx仍然是一个跳着一个出现
ama1:=ref(ama,1);
第一次执行的时候 为 ama1:=ref(0,1);
楼主想干嘛?ref(0,1);等于多少?
对全局变量的使用认识有误.
用全局变量实现--后一个等于前一个加一,写法如下:
variable:ama=0;
ama:=ama+1;
xx:ama,linethick0;
你的5楼写法类似应改为,请您自己揣摩个中意思,再行编写您的指标
variable:aa=0;
if barpos<=5 then aa:=c;
if barpos>5 then aa:=aa+0.01;
xx:aa;