查看完整版本: 犇犇请进:无未来数据的周MACD指标

南客 2005-2-24 09:51

犇犇请进:无未来数据的周MACD指标

不引用未来数据,数据逐日变化的周MACD指标:[code]input:long(26,20,100),short(12,5,40),m(9,2,60);
wtj1:=datediff(ref(date,1),date)<>weekday-ref(weekday,1);
wtj:=refx(wtj1,1);  //周末标记
fc:=close;
diff[1]:0;
dea[1]:0;
d1:=0;d2:=0;
for i=2 to datacount do begin
  if wtj[i] then begin
    d1:=(2*fc[i]+(short-1)*d1)/(short+1);
    d2:=(2*fc[i]+(long-1)*d2)/(long+1);
    wdiff:=d1-d2;
    wdea:=(2*wdiff+(m-1)*wdea)/(m+1);
    diff[i]:=wdiff;
    dea[i]:=wdea;
  end else begin
    diff[i]:=(2*fc[i]+(short-1)*d1)/(short+1)-
             (2*fc[i]+(long-1)*d2)/(long+1);
    dea[i]:=(2*wdiff+(m-1)*wdea)/(m+1);
  end;
end;
macd:2*(diff-dea),colorstick;[/code][code]//飞狐4.9测试版,代码应修正如下(2006.11.21)
input:long(26,20,100),short(12,5,40),m(9,2,60);
wtj1:=datediff(ref(date,1),date)<>weekday-ref(weekday,1) or barpos=1;
wtj:=refx(wtj1,1) or weekday=5;  //周末标记
fc:=close;
start:=barpos-barssince(wtj);
diff:0*close;
dea:0*close;
tmp:=setlbound(diff,start[datacount]);
tmp:=setlbound(dea,start[datacount]);
d1:=fc[start[datacount]];d2:=d1;wdea:=0;
for i=start[datacount]+1 to datacount do begin
  if wtj[i] then begin
    d1:=(2*fc[i]+(short-1)*d1)/(short+1);
    d2:=(2*fc[i]+(long-1)*d2)/(long+1);
    wdiff:=d1-d2;
    wdea:=(2*wdiff+(m-1)*wdea)/(m+1);
    diff[i]:=wdiff;
    dea[i]:=wdea;
  end else begin
    diff[i]:=(2*fc[i]+(short-1)*d1)/(short+1)-
             (2*fc[i]+(long-1)*d2)/(long+1);
    dea[i]:=(2*diff[i]+(m-1)*wdea)/(m+1);
  end;
end;
macd:2*(diff-dea),colorstick;[/code]相关链接
周KDJ:[url]http://bbs.fjfox.com/thread-15306-1-1.html[/url]

周RSI:[url]http://bbs.fjfox.com/thread-15411-1-1.html[/url]

[[i] 本帖最后由 南客 于 2008-2-25 22:55 编辑 [/i]]

股市骑兵00 2005-2-24 10:20

南客老师真热心,谢谢!

maxyan 2005-2-24 11:39

谢谢!!

犇犇 2005-2-24 11:42

谢谢南客老师了,谢谢,祝每天开心。

犇犇 2005-2-24 12:33

南客老师你好,我刚刚试过了你新做的指标,非常好。diff的值和真实值是一样的,但dea的值和macd的值与真实值有差异,能不能请你再帮看看,谢谢你了。

南客 2005-2-24 13:36

修改如下,牺牲了日线第1周前几天的若干数据。

[code]
input:long(26,20,100),short(12,5,40),m(9,2,60);
wtj1:=datediff(ref(date,1),date)<>weekday-ref(weekday,1) or barpos=1;
wtj:=refx(wtj1,1) or weekday=5;  //周末标记
fc:=close;
start:=barpos-barssince(wtj);
diff[start[datacount]]:0;
dea[start[datacount]]:0;
d1:=fc[start[datacount]];d2:=d1;
for i=start[datacount]+1 to datacount do begin
  if wtj[i] then begin
    d1:=(2*fc[i]+(short-1)*d1)/(short+1);
    d2:=(2*fc[i]+(long-1)*d2)/(long+1);
    wdiff:=d1-d2;
    wdea:=(2*wdiff+(m-1)*wdea)/(m+1);
    diff[i]:=wdiff;
    dea[i]:=wdea;
  end else begin
    diff[i]:=(2*fc[i]+(short-1)*d1)/(short+1)-
             (2*fc[i]+(long-1)*d2)/(long+1);
    dea[i]:=(2*diff[i]+(m-1)*wdea)/(m+1);
  end;
end;
macd:2*(diff-dea),colorstick;
[/code]

pengyou 2005-2-24 14:38

hao
xiexie

犇犇 2005-2-24 15:07

老师,刚刚的新的公式试过了,和第一次的结果是一样的,还是存在同样的问题,这是怎么回事呢?

南客 2005-2-24 15:34

我这里查了若干股票的数据,未发现异常。检查代码如下(附在上述代码之后):

//以下检查dea数据是否正确
weekdea:"macd.dea#week";
drawicon(wtj,0,10);
tt:count(round(weekdea*100000-dea*100000)*wtj,0);//每个周末的数据是否相同进行统计,精确小数点后5位。

股市骑兵00 2005-2-24 16:06

[quote]Originally posted by [i]犇犇[/i] at 2005-2-24 03:07 PM:
老师,刚刚的新的公式试过了,和第一次的结果是一样的,还是存在同样的问题,这是怎么回事呢? [/quote]

犇犇我这里也试了,看看南客老师公式数据都对的呀!
要么你用我的笨办法试试,我看看思路是对的,没仔细检查。你看看。

[code]
{引用公式代码,公式名:MACD1}{名字千万不要写错}
input:long(26,20,100),short(12,5,40),m(9,2,60);
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA  : EMA(DIFF,M);
MACD : 2*(DIFF-DEA), COLORSTICK;
ES:EMA(CLOSE,SHORT);
EL:EMA(CLOSE,LONG);
[/code]


[code]
{使用公式代码}
input:long(26,20,100),short(12,5,40),m(9,2,60);
XQ:=BARSLAST(weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date));
ZDIFF:="MACD1.DIFF#WEEK";ZDEA:="MACD1.DEA#WEEK";ZES:="MACD1.ES#WEEK";ZEL:="MACD1.EL#WEEK";
DIFF2:(2*C+(short-1)*REF(ZES,XQ+1))/(short+1)-(2*C+(long-1)*REF(ZEL,XQ+1))/(long+1);
DEA2:(2*DIFF2+(M-1)*REF(ZDEA,XQ+1))/(M+1);
MACD2 : 2*(DIFF2-DEA2), COLORSTICK;
[/code]

pengyou 2005-2-24 16:46

抱歉 我想要的是 KDJ
看看 MACD  怎么回事???

pengyou 2005-2-24 16:49

:thinking:

犇犇 2005-2-24 16:56

谢谢南客老师和骑兵兄,先发两个公式的对比图:

犇犇 2005-2-24 16:57

抱歉我没有资格发图,骑兵兄的指标数字正确,南客老师的还是有点问题,只是我很菜,看不出来。谢谢了。

股市骑兵00 2005-2-24 17:02

[quote]Originally posted by [i]pengyou[/i] at 2005-2-24 04:46 PM:
抱歉 我想要的是 KDJ
看看 MACD  怎么回事??? [/quote]

MACD不是对呀?你自己不会弄还怪我。 :-#
KDJ道理一样的呀,改改过啦。

kjyhao 2005-2-24 17:44

骑兵你好:
老师讲课你也不通知大家!!!
我想了一天怎么样给diff:ema(c,12)-ema(c,26);语句的两个EMA赋初值!!!老师这样的解决我又学了一招,谢谢老师了!!!

股市骑兵00 2005-2-24 17:58

[quote]Originally posted by [i]kjyhao[/i] at 2005-2-24 05:44 PM:
骑兵你好:
老师讲课你也不通知大家!!!
我想了一天怎么样给diff:ema(c,12)-ema(c,26);语句的两个EMA赋初值!!!老师这样的解决我又学了一招,谢谢老师了!!! [/quote]

kjyhao你又来啦,好呀!
你的基础比我好,我惭愧刚才看了没看懂,只好作弊先赖一下了。
有空你教我啊。:p

kjyhao 2005-2-24 18:10

[quote]Originally posted by [i]股市骑兵00[/i] at 2005-2-24 05:58 PM:


kjyhao你又来啦,好呀!
你的基础比我好,我惭愧刚才看了没看懂,只好作弊先赖一下了。
有空你教我啊。:p [/quote]
骑兵:
昨天犇犇朋友让我帮忙想一下,所以才提前做了点前期工做!!!

股市骑兵00 2005-2-24 18:15

[quote]Originally posted by [i]kjyhao[/i] at 2005-2-24 06:10 PM:

骑兵:
昨天犇犇朋友让我帮忙想一下,所以才提前做了点前期工做!!! [/quote]
看来犇犇朋友找对人了,找你刚好。
我想不出办法就想赖办法了。

pengyou 2005-2-24 18:57

通过了
谢谢

牙牙 2005-2-24 19:11

学习了,虽然我现在还不懂做指标,但很有兴趣!

股市骑兵00 2005-2-24 21:45

[quote]Originally posted by [i]pengyou[/i] at 2005-2-24 04:46 PM:
抱歉 我想要的是 KDJ
看看 MACD  怎么回事??? [/quote]

我暂时只会笨办法,先顶着。
你这回开心了吧。骗到2个公式了。:D
[code]
{引用公式代码,公式名:KDJ1}
INPUT:N(9,1,100),M1(3,2,100),M2(3,2,100);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;
HN1:HHV(HIGH,N);
LN1:LLV(LOW,N);
[/code]

[size=6]这里不算数错了啊![/size]

[code]
{使用公式代码}
INPUT:N(9,1,100),M1(3,2,100),M2(3,2,100);
XQ:=BARSLAST(weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date))+1;
ZHN1:="KDJ1.HN1#WEEK";ZLN1:="KDJ1.LN1#WEEK";ZK:="KDJ1.K#WEEK";ZD:="KDJ1.D#WEEK";
RSV:=(CLOSE-MIN(ZLN1,LLV(LOW,XQ)))/(MAX(ZHN1,HHV(HIGH,XQ))-MIN(ZLN1,LLV(LOW,XQ)))*100;
K2:(RSV+(M1-1)*REF(ZK,XQ))/M1;
D2:(K2+(M2-1)*REF(ZD,XQ))/M2;
J2:3*K2-2*D2;
[/code]

[color=Teal][align=right] 本贴由 股市骑兵00 于 2005-2-25 02:04 最后编辑 [/align][/color]

欣儿 2005-2-24 21:46

高手云集,顶贴学习。

顶贴啊,想偷师啊。:D:clap::clap::clap:

股市骑兵00 2005-2-24 21:49

[quote]Originally posted by [i]欣儿[/i] at 2005-2-24 09:46 PM:
高手云集,顶贴学习。

顶贴啊,想偷师啊。:D:clap::clap::clap: [/quote]

一个没看到欣儿也来啦。请你吃可乐!:D

欣儿 2005-2-24 22:02

[quote]Originally posted by [i]股市骑兵00[/i] at 2005-2-24 09:49 PM:


一个没看到欣儿也来啦。请你吃可乐!:D [/quote]
谢谢!怎么好意思空吃,还你靓车一部。:D

[color=Teal][align=right] 本贴由 欣儿 于 2005-2-24 22:04 最后编辑 [/align][/color]

股市骑兵00 2005-2-24 22:17

[quote]Originally posted by [i]欣儿[/i] at 2005-2-24 10:02 PM:

谢谢!怎么好意思空吃,还你靓车一部。:D

[color=Teal][align=right] 本贴由 欣儿 于 2005-2-24 22:04 最后编辑 [/align][/color] [/quote]
谢谢欣儿,这回我划算了,可乐换靓车。
你要经常来和我换呀!

股市骑兵00 2005-2-25 01:28

前面的公式少写了句话,有未来数据了,再改一下。:thinking:

[code]
{使用公式代码}
INPUT:N(9,1,100),M1(3,2,100),M2(3,2,100);
XQ:=BARSLAST(weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date))+1;
ZHN1:="KDJ1.HN1#WEEK";ZLN1:="KDJ1.LN1#WEEK";ZK:="KDJ1.K#WEEK";ZD:="KDJ1.D#WEEK";ZJ:="KDJ1.J#WEEK";
RSV:=(CLOSE-MIN(ref(ZLN1,xq),LLV(LOW,XQ)))/(MAX(ref(ZHN1,xq),HHV(HIGH,XQ))-MIN(ref(ZLN1,xq),LLV(LOW,XQ)))*100;
K2:(RSV+(M1-1)*REF(ZK,XQ))/M1;
D2:(K2+(M2-1)*REF(ZD,XQ))/M2;
J2:3*K2-2*D2;
[/code]

股市骑兵00 2005-2-25 02:03

晕,犯了两个错误,搞昏头了。这次对了吧!:po:

[code]
{引用公式代码,公式名:KDJ1}
INPUT:N(9,1,100),M1(3,2,100),M2(3,2,100);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D;
HN1:HHV(HIGH,N-1);
LN1:LLV(LOW,N-1);
[/code]

pengyou 2005-2-25 11:20

好辛苦
谢谢 骑兵兄弟

sjl18 2005-2-25 11:44

通过了
谢谢

phpyx 2005-2-25 15:08

谢谢南客老师和骑兵兄,先发两个公式的对比图:

犇犇 2005-2-25 21:37

真的太开心了,谢谢各位的帮助。

无路 2005-2-25 22:26

[quote]{使用公式代码}
INPUT:N(9,1,100),M1(3,2,100),M2(3,2,100);
XQ:=BARSLAST(weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date))+1;
ZHN1:="KDJ1.HN1#WEEK";ZLN1:="KDJ1.LN1#WEEK";ZK:="KDJ1.K#WEEK";ZD:="KDJ1.D#WEEK";
RSV:=(CLOSE-MIN(ZLN1,LLV(LOW,XQ)))/(MAX(ZHN1,HHV(HIGH,XQ))-MIN(ZLN1,LLV(LOW,XQ)))*100;
K2:(RSV+(M1-1)*REF(ZK,XQ))/M1;
D2:(K2+(M2-1)*REF(ZD,XQ))/M2;
J2:3*K2-2*D2;
[/quote]这种引用,早就有了,但是否有未来数据???

shixx 2005-2-26 19:36

谢谢南客老师和骑兵

南客 2005-3-1 11:28

抽空看了,6楼的代码有点问题,已经修正了。

谢谢各位贴图、短消息反馈。

犇犇 2005-3-1 14:12

谢谢南客老师不厌其烦的教育。,真心感谢你!

kjyhao 2005-3-1 15:07

[quote]Originally posted by [i]南客[/i] at 2005-3-1 11:28 AM:
抽空看了,6楼的代码有点问题,已经修正了。

谢谢各位贴图、短消息反馈。 [/quote]
谢谢老师!!!

俞凯释 2005-3-9 09:58

xiexie

LeiBin 2005-3-12 23:44

谢谢

天高任鸟飞 2005-3-30 19:51

高手云集,顶贴学习。

ycpyj 2005-4-6 23:49

谢谢!

天天妙算者胜 2005-4-7 16:11

漂亮!

天天妙算者胜 2005-4-7 16:13

好,真好!

wuji-006 2005-4-17 00:55

谢谢!

liuxiang 2005-4-17 10:46

南客版(修改的)NKB和骑兵版QPB一样

如图

liuxiang 2005-4-17 10:49

请几位老师把它做成KD指标,可以吗?谢谢!!!

股市骑兵00 2005-4-17 14:18

[quote]Originally posted by [i]liuxiang[/i] at 2005-4-17 10:49 AM:
请几位老师把它做成KD指标,可以吗?谢谢!!! [/quote]

楼上不是有引用KD的代码呀?
不引用的南客老师也写过的,找一下吧。

liuxiang 2005-4-17 16:19

谢谢股市骑兵!!!发现了.
页: [1] 2
查看完整版本: 犇犇请进:无未来数据的周MACD指标