查看完整版本: 老师请教,4.0版本编写的公式在4.9网络版显示错误问题,请问我的公式哪里出错?

jeffalex12 2007-12-18 11:54

老师请教,4.0版本编写的公式在4.9网络版显示错误问题,请问我的公式哪里出错?

老师请教,4.0版本编写的公式在4.9网络版显示错误问题,请问我的公式哪里出错?


ytj2:=datediff(ref(date,1),date)<>day-ref(day,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DATACOUNT]];
E2:=E1;
for i=start2[DATACOUNT]+1 to DATACOUNT do begin
IF ytj3[i] then begin
E1:=(2*sp[i]+11*E1)/13;
E2:=(2*sp[i]+25*E2)/27;
Mdiff:=E1-E2;
Mdea:=(2*Mdiff+8*Mdea)/10;
Ydiff[i]:=Mdiff ;
Ydea[i]:=Mdea ;
end else begin
Ydiff[i]:=(2*sp[i]+11*E1)/13-(2*sp[i]+25*E2)/27;
Ydea[i]:=(2*Ydiff[i]+8*Mdea)/10;
end;
end;//月MACD

[[i] 本帖最后由 jeffalex12 于 2007-12-18 14:06 编辑 [/i]]

tom76 2007-12-18 12:08

[code]IF ytj3 then begin
改为
IF ytj3[i] then begin[/code]

jeffalex12 2007-12-18 13:07

[quote]原帖由 [i]tom76[/i] 于 2007-12-18 12:08 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=374970&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
IF ytj3 then begin
改为
IF ytj3 then begin [/quote]
改了以后还是不对
DIFF值正确,但DEA值错误,不知道是哪里出错

tom76 2007-12-18 13:31

[code]ytj2:=datediff(ref(date,1),date)<>day-ref(day,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DATACOUNT]];
E2:=E1;
for i=start2[DATACOUNT]+1 to DATACOUNT do begin
IF ytj3[i] then begin
E1:=(2*sp[i]+11*E1)/13;
E2:=(2*sp[i]+25*E2)/27;
Mdiff:=E1-E2;
Mdea:=(2*Mdiff+8*Mdea)/10;
Ydiff[i]:=Mdiff ;
Ydea[i]:=Mdea ;
end else begin
Ydiff[i]:=(2*sp[i]+11*E1)/13-(2*sp[i]+25*E2)/27;
Ydea[i]:=(2*Ydiff[i]+8*Mdea)/10;
end;
end;//月MACD[/code]

jeffalex12 2007-12-18 14:08

[quote]原帖由 [i]tom76[/i] 于 2007-12-18 13:31 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=374975&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
ytj2:=datediff(ref(date,1),date)day-ref(day,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DA ... [/quote]
晕了,我本来的公式跟你的这个是一样的,可是发帖里以后[ i ]就自动不见了,我原公式就是你这个

jeffalex12 2007-12-18 14:16

在4.0内核的专业版上显示正常准确,在4.9内核的网络版就显示错误,不知道是什么原因

g080101 2007-12-18 17:30

请教老师月MACD改成周MACD要改那里?
谢谢!

jeffalex12 2007-12-18 21:22

:d: :d: :d: :d: 请老师指教^

mssz103 2007-12-19 09:17

这个问题不能解决

tom76 2007-12-19 10:04

[quote]原帖由 [i]jeffalex12[/i] 于 2007-12-18 21:22 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=375035&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
:d: :d: :d: :d: 请老师指教^ [/quote]


偶的可以显视阿,不过偶从来没用过月macd
请问是那方面的错误?

周MACD~
你可以翻南客老师的旧贴
搜索

jeffalex12 2007-12-19 10:24

[quote]原帖由 [i]tom76[/i] 于 2007-12-19 10:04 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=375043&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]



偶的可以显视阿,不过偶从来没用过月macd
请问是那方面的错误?

周MACD~
你可以翻南客老师的旧贴
搜索 [/quote]
我的月MACD就是参考了南客老师的周MACD,那个周MACD也一样,在4.9版本网络版也显示错误.不知道是什么地方错误了,我在别人电脑上的网络版此公式也出现错误,看了南客老师的帖子是明确指出与4.9匹配的,可是总是不行,所以特别困惑

jeffalex12 2007-12-19 10:26

[quote]原帖由 [i]mssz103[/i] 于 2007-12-19 09:17 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=375041&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
这个问题不能解决 [/quote]
但是不引用未来数据的周,月KD公式在4.9版本上是显示正确的,而且周MACD和月MACD的DIFF值是对的,只有DEA值错误,好头大 啊^^

tom76 2007-12-19 10:29

这是上证的
出来是这样的吗?

错误信息是?

jeffalex12 2007-12-19 10:32

对啊,就是这个错误啊,DEA值一蹦一蹦的,肯定不对的^:(: :(: ,DIFF值我对过是对的

tom76 2007-12-19 11:21

[code]ytj2:=month<>ref(month,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DATACOUNT]];
E2:=E1;
Mdiff:=E1-E2;
mdea:=0;
for i=start2[DATACOUNT]+1 to DATACOUNT do begin
IF ytj3[i] then begin
E1:=(2*sp[i]+11*E1)/13;
E2:=(2*sp[i]+25*E2)/27;
Mdiff:=E1-E2;
Mdea:=(2*Mdiff+8*Mdea)/10;
Ydiff[i]:=Mdiff ;
Ydea[i]:=Mdea ;
end else begin
Ydiff[i]:=(2*sp[i]+11*E1)/13-(2*sp[i]+25*E2)/27;
Ydea[i]:=(2*Ydiff[i]+8*Mdea)/10;
end;
end;//月MACD[/code]嗯~原来的原码中mdea没有初始化
现在可以了
你试试看

jeffalex12 2007-12-19 13:25

[quote]原帖由 [i]tom76[/i] 于 2007-12-19 11:21 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=375048&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
ytj2:=monthref(month,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DATACOUNT]];
E2:=E1;
Md ... [/quote]
哦,想了半天我想的是跟这个原因有点擦边,现在问题终于解决了,多谢了,高手啊^^:d: :d: :d:

jeffalex12 2007-12-19 13:49

[quote]原帖由 [i]tom76[/i] 于 2007-12-19 11:21 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=375048&ptid=42599][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
ytj2:=monthref(month,1) or barpos=1;
ytj3:=refx(ytj2,1);
sp:=CLOSE;
start2:=BARPOS-BARSSINCE(ytj3);
Ydiff[start2[DATACOUNT]]:0;
Ydea[start2[DATACOUNT]]:0;
E1:=sp[start2[DATACOUNT]];
E2:=E1;
Md ... [/quote]
晕^^^^搭配上周KD以后,周KD又出问题了,但是单独的周KD对的,只是和周MACD搭配以后就出问题,郁闷了
高手帮忙再看看
wtj1:=datediff(ref(date,1),date)<>weekday-ref(weekday,1) or barpos=1;
wtj:=refx(wtj1,1);  
hn:=sumbars(wtj,10);
n0:=lbound(hn);
a:=setlbound(hn,1);
nn:=if(barpos<n0,barpos,hn-1);
RSV:=(CLOSE-LLV(LOW,nN))/(HHV(HIGH,nN)-LLV(LOW,nN))*100;
start:=barpos-barssince(wtj);
wk:=rsv[start[datacount]];
k[start[datacount]]:wk,linethick0;
wd:=k[start[datacount]];
d[start[datacount]]:wd,linethick0;

for i=start[datacount]+1 to datacount do begin
if wtj[i ] then begin
wk:=(rsv[i ]+2*wk)/3;
wd:=(wk+2*wd)/3;
k[i ]:=wk,linethick0;
d[i ]:=wd,linethick0;
end else begin
k[i]:=(rsv[i ]+2*wk)/3,linethick0;
d[i]:=(k[i ]+2*wd)/3,linethick0;
end;
end;
DRAWICON(CROSS(K,D),LOW*0.999,4);
DRAWICON(CROSS(D,K),HIGH*1.01,5);//周KDJ

jeffalex12 2007-12-19 14:16

这个周和月KDJ单独放在副图的时候个股显示准确,但是上证指数就无法显示,提示"指标数组下标越界或超出有效数据区间"

tom76 2007-12-20 05:26

估计是这个错误:
你找下有没有重复的变量
像周MACD内变量在周KD也出现,反之亦然
然后改个名字
或重新初始化
页: [1]
查看完整版本: 老师请教,4.0版本编写的公式在4.9网络版显示错误问题,请问我的公式哪里出错?