[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: question on zig zag - ANSWER



PureBytes Links

Trading Reference Links

---"Eugene" wrote:
> I want to identify the bar at which the previous pivot was
> identified...How can I do that?

here is the definitive zig zag code:
(please read the comments)
\jeff

-------------------------------------------------------------------
// 'thold' is the threshold for the zig-zag turning points
//  it is set to a minimum of 2.5% or a volatility measure
//  based on 2 day range over the past 100 days

min_thold=0.025;
thold=Max(min_thold,Median(ln(HHV(H,2)/LLV(L,2)),100));
thold=IIf(IsEmpty(thold),min_thold,thold);

// 't' is a multiplier of 'thold'
//  the larger the value of 't', the more significant the
//  turning point.  Adjust it by opening the Parameter window
//  (press ctrl-R)

t=Param("significance",2,2,6,1);

//  initialization of variables

d=init=trig=HH=LL=z=0;

// main body
//  this program is different than the canned zigzag in that
//  it is symmetrical, it does not use percentages, but rather
//  log differences.  close price is not used either. high and
//  low trades are used. an additional item is the trigger
//  indicator.  it shows the point where the zig or zag was
//  identified.

for(i=1;i<BarCount;i++){
if (log(H[i]/L[init])>HH) HH=log(H[i]/L[init]);
if (log(L[i]/H[init])<LL) LL=log(L[i]/H[init]);
if (HH>(t*thold[init]) && d<=0)
    {
    z[init]--;
    trig[i]=-0.5;
    d=1;init=i;HH=0;LL=0;
    }
if (H[i]>H[init] && d==1){init=i;LL=0;}

if (LL<(-t*thold[init]) && d>=0)
    {
    z[init]++;
    trig[i]=0.5;
    d=-1;init=i;HH=0;LL=0;
    }

if (L[i]<L[init] && d==-1){init=i;HH=0;}
}

z_up=z>0; z_dn=z<0;

Plot(z_up,"zig",colorGreen,1);
Plot(-z_dn,"zag",colorRed,1);
Plot(trig,"trigger",colorBlue,1);




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Has someone you know been affected by illness or disease?
Network for Good is THE place to support health awareness efforts!
http://us.click.yahoo.com/Rcy2bD/UOnJAA/cosFAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.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/