求一鸣师帮助谢谢
我把周改成月,但不准,不知错在那请求帮助谢谢
这是南客老师的周macd
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); //周末标记
fc:=close;
start:=barpos-barssince(wtj);
zdiff[start[datacount]]:=0;
zdea[start[datacount]]:=0;
d1:=fc[start[datacount]];d2:=d1;
for i=start[datacount]+1 to datacount do begin
if wtj then begin
d1:=(2*fc+(short-1)*d1)/(short+1);
d2:=(2*fc+(long-1)*d2)/(long+1);
wdiff:=d1-d2;
wdea:=(2*wdiff+(m-1)*wdea)/(m+1);
zdiff:=wdiff;
zdea:=wdea;
end else begin
zdiff:=(2*fc+(short-1)*d1)/(short+1)-
(2*fc+(long-1)*d2)/(long+1);
zdea:=(2*zdiff+(m-1)*wdea)/(m+1);
end;
end;
macd:=2*(zdiff-zdea),colorstick;
我把周改成月,但不准,不知错在那请求帮助谢谢
input:long(26,20,100),short(12,5,40),m(9,2,60);
wtj2:=datediff(ref(date,1),date)<>MONTH-ref(MONTH,1) or barpos=1;
wtj3:=refx(wtj2,1); //周末标记
fc:=close;
start:=barpos-barssince(wtj3);
ydiff[start[datacount]]:=0;
ydea[start[datacount]]:=0;
d1:=fc[start[datacount]];d2:=d1;
for i=start[datacount]+1 to datacount do begin
if wtj3 then begin
d1:=(2*fc+(short-1)*d1)/(short+1);
d2:=(2*fc+(long-1)*d2)/(long+1);
wdiff:=d1-d2;
wdea:=(2*wdiff+(m-1)*wdea)/(m+1);
ydiff:=wdiff;
ydea:=wdea;
end else begin
ydiff:=(2*fc+(short-1)*d1)/(short+1)-
(2*fc+(long-1)*d2)/(long+1),colorred;
ydea:=(2*ydiff+(m-1)*wdea)/(m+1);
end;
end;
macd:=2*(ydiff-ydea),colorstick;