Rank: Advanced Member
Groups: Registered, Registered Users, Subscribers Joined: 11/10/2004(UTC) Posts: 31
|
Hello,
I am having a problem with a function.
As an example, if you pull up a chart for TXN and drop the standard MACD() indicator into a separate inner window.
Create a new indicator using the code below and drop it onto the MACD() using the default 5 period look back (merge with scale on left).
a:=MACD();
peri:=Input("Period",2,100,5);
hic:= a>Ref(HHV(a,peri),-1) AND a>=Ref(HHV(a,peri),peri);
y1t:=LastValue(ValueWhen( 2, hic=1, a ));
y2t:=LastValue(ValueWhen( 1, hic=1, a ));
x1t:=LastValue(ValueWhen( 2, hic=1 , Cum(1) ));
x2t:=LastValue(ValueWhen( 1, hic=1 , Cum(1) ));
{at:=(y1t-y2t)/(x1t-x2t);bt:=y1t-at*x1t;}
yt:=(y1t-y2t)/(x1t-x2t)*Cum(1)+y1t-(y1t-y2t)/(x1t-x2t)*x1t;
{yt:=at*cum(1)+bt;}
e1:=a-yt;
ret1:=LastValue(Cum(1)-(x1t+Int((x2t-x1t)/2)-1));
seg1:=LastValue(Int((x2t-x1t)/2+Int(2*peri/5)){+peri-1});
x1:=LastValue(Cum(1)-HHVBars(Ref(e1,-ret1),seg1)-ret1);
y1:=LastValue(ValueWhen(1,x1=Cum(1),a));
ret2:=LastValue(Cum(1)-(x2t+Int(4*peri/5)));
seg2:=LastValue(Int((x2t-x1t)/2)+Int(4*peri/5));
x2:=LastValue(Cum(1)-HHVBars(Ref(e1,-ret2),seg2)-ret2);
y2:=LastValue(ValueWhen(1,x2=Cum(1),a));
{a:=(y1-y2)/(x1-x2);b:=y1-a*x1;}
a:=(y1-y2)/(x1-x2);
HiTL:=If(Cum(1)>x1t-5,(y1-y2)/(x1-x2)*Cum(1)+y1-(y1-y2)/(x1-x2)
*x1,BarsSince(Cum(1)>x1t-5));
Diff:=Ref(HiTL-a,-LastValue(Cum(1)-x2));
decal:=LastValue(HHV(Diff,x2-x1));
HiTL
If I create another indicator using the above code, but change the last line from 'HiTL' to 'Cross(A,HiTL)', drop it into a new inner window for TXN... I get a '1' for a cross of the MACD() up through HiTL on 2/10/06.
Viewing the MACD() indicator, the cross appears to have actially taken place on 3/1/06.
Thank you for any help you can provide.
|