PureBytes Links
Trading Reference Links
|
Hans,
The code works.
//Historical best-fit parabolics
Plot(C,"C",1,64);
perc=3;//sensitivity calibration
x=BarIndex();xx=SelectedValue(x);
t1=SelectedValue(ValueWhen(PeakBars(H,perc)==0,x));
H1=SelectedValue(ValueWhen(PeakBars(H,perc)==0,H));
t11=SelectedValue(ValueWhen(TroughBars(L,perc)==0,x));
H11=SelectedValue(ValueWhen(TroughBars(L,perc)==0,L));
g=t1>t11;
shape=IIf(g,shapeDownArrow*(x==t1),shapeUpArrow*(x==t11));
Color=IIf(g,colorRed,colorBrightGreen);
PlotShapes(shape,color);
t=IIf(g,x-t1,x-t11);
diff1=IIf(g,H1*(xx-t1),H11*(xx-t11));
Lma=SelectedValue(MA(C,50));
f1=0;f2=IIf(Lma<100,1,0)+3*int(log10(Lma));
fa=0;fb=0;step=f2/100;
for(f=f1;f<f2;f=f+step)
{
parabolic=IIf(g,H1-f*t^2,H11+f*t^2);
S1=SelectedValue(Sum(abs(parabolic-H),xx-t1));
S11=SelectedValue(Sum(abs(parabolic-L),xx-t11));
diff=IIf(g,S1,S11);
if(diff<diff1)
{
diff1=diff;fa=f;
}
}
for(f=Max(fa-step,0);f<fa+step;f=f+0.01*step)
{
parabolic=IIf(g,H1-f*t^2,H11+f*t^2);
S1=SelectedValue(Sum(abs(parabolic-H),xx-t1));
S11=SelectedValue(Sum(abs(parabolic-L),xx-t11));
diff=IIf(g,S1,S11);
if(diff<diff1)
{
diff1=diff;fb=f;
}
}
p=IIf(g,H1-fb*t^2,H11+fb*t^2);
Plot(IIf(x>=Max(t1,t11),p,-1e10),"",color,1);
Title=Name()+", "+WriteIf(t1>t11,"f_desc","f_asc")+"="+WriteVal
(fb,1.4);//+"[f2="+WriteVal(f2)+",step="+WriteVal(step);
GraphXSpace=3;
If you select the last bar, you will see a graph identical to the
main code. Now, move your cursor to some previous bars to see the
parabolic changing.
Dimitris
--- In amibroker@xxxxxxxxxxxxxxx, "Hans" <hansib@xxxx> wrote:
> Dear Dimitris,
> I always appreciate your great work, and have already used most of
> your great stuff.
> I have replaced all the LastValue... statements with
SelectedValue...
> and - unfortunately could not see any of the historical parabolics:
> the chart doesn't change at all.
> I'm very sorry to bother you with all this, as I'm sure it is my
> error, but you might have an idea about the cause.
>
> Thanks a lot again, and see here
> http://www.finanzaonline.com/forum/showthread.php?
> p=6052890#post6052890 (you are famous also in Italy)
>
> Hans
>
> --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"
<TSOKAKIS@xxxx>
> wrote:
> > You may replace now all the LastValue... statements with
> > SelectedValue... and see the historical parabolics.
> > Dimitris
> > --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"
> <TSOKAKIS@xxxx>
> > wrote:
> > > The following code will decide if the last extreme is a peak or
a
> > > trough, will find the best-fit parabola and will plot it on the
> > price
> > > chart.
> > > The color will be red/green for descending/ascending parabola.
> > > A red/green arrow marks the last peak/trough.
> > > The parabolic coefficient f has a crude 100-step and then
> another,
> > > more detailed approximation.
> > > The parabola function p is outside any loop and may be used for
> > cross
> > > conditions.
> > > Since it is a best-fit curve, it changes every day, as new data
> are
> > > imported.
> > > The logic is to engulf the Highs [for the descending curve] and
> the
> > > Lows [for the ascending curve] with a curvilinear trendline.
> > >
> > > // The last best-fit parabolic trendline, by D. Tsokakis,
Sept2004
> > > Plot(C,"C",1,64);
> > > perc=3;//sensitivity calibration
> > > x=BarIndex();xx=LastValue(x);
> > > t1=LastValue(ValueWhen(PeakBars(H,perc)==0,x));
> > > H1=LastValue(ValueWhen(PeakBars(H,perc)==0,H));
> > > t11=LastValue(ValueWhen(TroughBars(L,perc)==0,x));
> > > H11=LastValue(ValueWhen(TroughBars(L,perc)==0,L));
> > > g=t1>t11;
> > > shape=IIf(g,shapeDownArrow*(x==t1),shapeUpArrow*(x==t11));
> > > Color=IIf(g,colorRed,colorBrightGreen);
> > > PlotShapes(shape,color);
> > > t=IIf(g,x-t1,x-t11);
> > > diff1=IIf(g,H1*(xx-t1),H11*(xx-t11));
> > > Lma=LastValue(MA(C,50));
> > > f1=0;f2=IIf(Lma<100,1,0)+3*int(log10(Lma));
> > > fa=0;fb=0;step=f2/100;
> > > for(f=f1;f<f2;f=f+step)
> > > {
> > > parabolic=IIf(g,H1-f*t^2,H11+f*t^2);
> > > S1=LastValue(Sum(abs(parabolic-H),xx-t1));
> > > S11=LastValue(Sum(abs(parabolic-L),xx-t11));
> > > diff=IIf(g,S1,S11);
> > > if(diff<diff1)
> > > {
> > > diff1=diff;fa=f;
> > > }
> > > }
> > > for(f=Max(fa-step,0);f<fa+step;f=f+0.01*step)
> > > {
> > > parabolic=IIf(g,H1-f*t^2,H11+f*t^2);
> > > S1=LastValue(Sum(abs(parabolic-H),xx-t1));
> > > S11=LastValue(Sum(abs(parabolic-L),xx-t11));
> > > diff=IIf(g,S1,S11);
> > > if(diff<diff1)
> > > {
> > > diff1=diff;fb=f;
> > > }
> > > }
> > > p=IIf(g,H1-fb*t^2,H11+fb*t^2);
> > > Plot(IIf(x>Max(t1,t11),p,-1e10),"",color,1);
> > > Title=Name()+", "+WriteIf(t1>t11,"f_desc","f_asc")+"="+WriteVal
> > > (fb,1.4);
------------------------ Yahoo! Groups Sponsor --------------------~-->
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~->
Check AmiBroker web page at:
http://www.amibroker.com/
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|