飞狐版的XMA

来源:百度文库 编辑:神马文学网 时间:2024/05/11 22:31:04
XMA-----偏移移动平均函数的飞狐表达式(附通达信验证码)[源于网络]

一是飞狐版的XMA,二是通达信上使用的XMA验证源码,供同好者研究参考。
{公式显示:XMA(C,N);N值最大做到50}

飞狐版XMA:

INPUT:N(7,1,50);
P:=(DATACOUNT-BARPOS+1);
XMA:IF(P=1,REFX(MA(CLOSE,N/2+1),N/2),IF(P=2 AND N>1,
REFX(MA(CLOSE,N/2+2),N/2),IF(P=3 AND N>4,REFX(MA(CLOSE,N/2+3),N/2),
IF(P=4 AND N>6,REFX(MA(CLOSE,N/2+4),N/2),IF(P=5 AND N>8,
REFX(MA(CLOSE,N/2+5),N/2),IF(P=6 AND N>10,REFX(MA(CLOSE,N/2+6),N/2),
IF(P=7 AND N>12,REFX(MA(CLOSE,N/2+7),N/2),IF(P=8 AND
N>14,REFX(MA(CLOSE,N/2+8),N/2),IF(P=9 AND N>16,REFX(MA(CLOSE,N/2+9),N/2),
IF(P=10 AND N>18,REFX(MA(CLOSE,N/2+10),N/2),IF(P=11 AND
N>20,REFX(MA(CLOSE,N/2+11),N/2),IF(P=12 AND N>22,REFX(MA(CLOSE,N/2+12),
N/2),IF(P=13 AND N>24,REFX(MA(CLOSE,N/2+13),N/2),IF(P=14
AND N>26,REFX(MA(CLOSE,N/2+14),N/2),IF(P=15 AND N>28,REFX(MA(CLOSE,N/2+15),
N/2),IF(P=16 AND N>30,REFX(MA(CLOSE,N/2+16),N/2),IF(P=17
AND N>32,REFX(MA(CLOSE,N/2+17),N/2),IF(P=18 AND N>34,REFX(MA(CLOSE,N/2+18),
N/2),IF(P=19 AND N>36,REFX(MA(CLOSE,N/2+19),N/2),IF(P=20
AND N>38,REFX(MA(CLOSE,N/2+20),N/2),IF(P=21 AND N>40,REFX(MA(CLOSE,N/2+21),
N/2),IF(P=22 AND N>42,REFX(MA(CLOSE,N/2+22),N/2),IF(P=23
AND N>44,REFX(MA(CLOSE,N/2+23),N/2),IF(P=24 AND N>46,REFX(MA(CLOSE,N/2+24),
N/2),REFX(MA(CLOSE,N),(N+1)/2-1)))))))))))))))))))))))));

2010-11-23 14:20 上传下载 (110.75 KB)
2010-11-23 14:20 上传下载 (118.16 KB)

==============================================================================

通达信XMA验证版:

2010-11-23 14:21 上传下载 (21.13 KB)

系统XMA:XMA(C,N);
X:IF(CURRBARSCOUNT=1,REFX(MA(C,N/2+1),N/2),IF(CURRBARSCOUNT=2 AND N>1,
REFX(MA(C,N/2+2),N/2),IF(CURRBARSCOUNT=3 AND N>4,REFX(MA(C,N/2+3),N/2),
IF(CURRBARSCOUNT=4 AND N>6,REFX(MA(C,N/2+4),N/2),IF(CURRBARSCOUNT=5 AND N>8,
REFX(MA(C,N/2+5),N/2),IF(CURRBARSCOUNT=6 AND N>10,REFX(MA(C,N/2+6),N/2),
IF(CURRBARSCOUNT=7 AND N>12,REFX(MA(C,N/2+7),N/2),IF(CURRBARSCOUNT=8 AND
N>14,REFX(MA(C,N/2+8),N/2),IF(CURRBARSCOUNT=9 AND N>16,REFX(MA(C,N/2+9),N/2),
IF(CURRBARSCOUNT=10 AND N>18,REFX(MA(C,N/2+10),N/2),IF(CURRBARSCOUNT=11 AND
N>20,REFX(MA(C,N/2+11),N/2),IF(CURRBARSCOUNT=12 AND N>22,REFX(MA(C,N/2+12),
N/2),IF(CURRBARSCOUNT=13 AND N>24,REFX(MA(C,N/2+13),N/2),IF(CURRBARSCOUNT=14
AND N>26,REFX(MA(C,N/2+14),N/2),IF(CURRBARSCOUNT=15 AND N>28,REFX(MA(C,N/2+15),
N/2),IF(CURRBARSCOUNT=16 AND N>30,REFX(MA(C,N/2+16),N/2),IF(CURRBARSCOUNT=17
AND N>32,REFX(MA(C,N/2+17),N/2),IF(CURRBARSCOUNT=18 AND N>34,REFX(MA(C,N/2+18),
N/2),IF(CURRBARSCOUNT=19 AND N>36,REFX(MA(C,N/2+19),N/2),IF(CURRBARSCOUNT=20
AND N>38,REFX(MA(C,N/2+20),N/2),IF(CURRBARSCOUNT=21 AND N>40,REFX(MA(C,N/2+21),
N/2),IF(CURRBARSCOUNT=22 AND N>42,REFX(MA(C,N/2+22),N/2),IF(CURRBARSCOUNT=23
AND N>44,REFX(MA(C,N/2+23),N/2),IF(CURRBARSCOUNT=24 AND N>46,REFX(MA(C,N/2+24),
N/2),REFX(MA(C,N),(N+1)/2-1)))))))))))))))))))))))));