南客 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
高手云集,顶贴学习。
天天妙算者胜 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
谢谢股市骑兵!!!发现了.