b:=H>ref(HHV(H,n3),1)and vol>ref(HHV(vol,n4),1)and c>o;
a:=cross(diff,dea);
e:=L<ref(llv(L,n3),1)and vol>ref(vol,1)and vol>ref(HHV(vol,n4),1)and c<o;
d:=cross(dea,diff);
variable:dd:=0;
variable:ee:=0;
if d THEN BEGIN
IF dd:=0 AND e THEN BEGIN
buyshort(market);
dd:=1;
ee:=h;
end
end
if CROSS(wMA(CLOSE,n),wMA(CLOSE,n2)) or h>ee then begin
sellshort(market);
dd:=0;
end
variable:aa:=0;
variable:bb:=0;
if a THEN BEGIN
IF aa=0 AND b THEN BEGIN
buy(market) ;
AA:=1;
bb:=l;
END
end
if CROSS(wMA(CLOSE,n2),wMA(CLOSE,n)) or l<bb then begin
sell(market);
aa:=0;
end
写公式前 ,建议看看金字塔函数的解释和基本用法。
input:n(1,1,100,1),n2(2,1,100,2),n3(5,1,100,10),n4(3,1,100,5),p(26,20,100,8);
input:s(12,5,40,4),m(9,2,60,6);
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA :=EMA(DIFF,M);
MACD1 := 2*(DIFF-DEA), COLORstick;
b:=H>ref(HHV(H,n3),1)and vol>ref(HHV(vol,n4),1)and c>o;
a:=cross(diff,dea);
e:=L<ref(llv(L,n3),1)and vol>ref(vol,1)and vol>ref(HHV(vol,n4),1)and c<o;
d:=cross(dea,diff);
variable:dd:=0;
variable:ee:=0;
variable:aa:=0;
variable:bb:=0;
if d THEN BEGIN
IF dd=0 AND e THEN BEGIN
buyshort(1,1,market);
dd:=1;
ee:=h;
end
end
if CROSS(wMA(CLOSE,n),wMA(CLOSE,n2)) or h>ee then begin
sellshort(1,0,market);
dd:=0;
end
if a THEN BEGIN
IF aa=0 AND b THEN BEGIN
buy(1,1,market) ;
AA:=1;
bb:=l;
END
end
if CROSS(wMA(CLOSE,n2),wMA(CLOSE,n)) or l<bb then begin
sell(1,0,market);
aa:=0;
end
应该是调用的问题,你引用了macd中间的变量,引用的不对吧
STKINDI(STKLABEL,INDINAME,CO,PERIOD[,N])以后可以用这个函数来引用,或者像just一样 把macd整个指标赋值到当前公式
你看看你写的交易函数如BUY等函数里的参数写法。