想用循环来写ema,代码如下,可是图上永远加载不出来nma的值
VARIABLE:NUM:0;
NMA:=IF(BARPOS<N+1,C,0);
IF NUM < N THEN
NMA:REF(C,NUM)*(N-NUM)+REF(NMA,1);
NUM:=NUM+1;
NMA;
可以尝试这样修改一下:
VARIABLE:NUM:0;
N:=10;
NMA:IF(BARPOS<N+1,C,0);
IF NUM < N &&DAYBARPOS>1 THEN BEGIN
NMA:REF(C,NUM)*(N-NUM)+REF(NMA,1);
NUM:=NUM+1;
END
BB:NUM;
AA:NMA;
与您编写有关,IF条件是NUM小于N
或者您具体是需要实现什么样的思路呢?
我就是想用循环写一个ema,想文华自带的dkx指标一样,只不过我想让N能自己定义。在此基础上再做其他运算,所以不能直接调用EMA等函数
A:=(3*C+L+O+H)/6;//3倍收盘价与最高价、最低价、开盘价之和的均值。
B:(20*A+19*REF(A,1)+18*REF(A,2)+17*REF(A,3)+16*REF(A,4)+15*REF(A,5)+14*REF(A,6)+13*REF(A,7)+12*REF(A,8)+11*REF(A,9)+10*REF(A,10)+9*REF(A,11)+8*REF(A,12)+7*REF(A,13)+6*REF(A,14)+5*REF(A,15)+4*REF(A,16)+3*REF(A,17)+2*REF(A,18)+REF(A,20))/210;
//对A值做加权均值计算。
不明白您的思路,您可以提供一下具体的均线的算法公式
我们帮您分析编写
您能帮我把这个dkx指标写成用if循环的吗?这个周期是20固定的,我想能编辑周期。
能实现这个功能的话我后面都能自己写了。多谢多谢
dkx算法可以使用EMA2替代,支持直接修改周期参数的:
A:=(3*C+L+O+H)/6;//3倍收盘价与最高价、最低价、开盘价之和的均值。
EMA2(A,20);
因为模型编写需要具体的算法
核实一下,具体需要什么样的运算呢?
以5楼提供的DKX指标为例,本身不涉及引用自身的写法,不需要使用全局变量的,只能一个一个写
A:=(3*C+L+O+H)/6;
DK:(N*ABS+(N-1)*REF(A,1)+(N-2)*A ....)/(20+19+.....);
