Hello,

Look here for example of how zig-zag is coded:
http://www.amibroker.com/library/detail.php?id=472

The meaning that it looks into the future is that
zig-zag requires certain number of bars (depending on threshold specified)
to find out the direction, once the threshold is reached it changes
PAST values. So in real-time trading you would not get those
signals that zig-zag generates until the price movement since last peak/trough 
is bigger than threshold.
This is "after the fact" diagnosis, similar to what humans do when they
speak "if I bought one year ago I would be rich because I now see the trend".

Actually Zig-zag can be used for trading if only trading signals generated by it
are DELAYED as much as it is necessary to confirm the movement in given 
direction.
Exact code how to do this is given in Traders' Tips:
http://www.amibroker.com/members/traders/11-2003.html

Best regards,
Tomasz Janeczko
amibroker.com
  ----- Original Message ----- 
  From: Ken Close 
  To: [email protected] 
  Sent: Thursday, October 30, 2008 10:25 PM
  Subject: [amibroker] The Theory of Zig and How to make it Work


  A friend asked me why he can not trade with the Zig indicator.
  I answered: "Because it looks into the future."
  He said, "What does that really mean?"
  I said: "It looks into the future."
  He said, "Huh".

  Can someone explain, without using the words "It looks into the future", why 
the Zig indicator can not work.
  How is it coded internally?  What makes it work--plot that is?"

  I found some code on my hard drive from 2004 called "Zig Zag Safe to Use".  I 
will copy the code below.
  Why does this code say that it is "Safe to Use"?
  What do you look at, what does the several adjustment values do, that makes 
it safe?

  Any explanations in english, that are easy to understand?
  Will this code be safe to trade?

  Thanks,
  Ken
  ============================================================

  array = Close;
  amount = Param("Amount", 5, 1, 50, 0.5 );
  adjust = Param("adjust",0.001,0.001,0.10,0.001);
  zz0 = Zig( array, amount );
  zz1 = Ref( zz0, -1 );
  zz2 = Ref( zz0, -2 );
  tr = ValueWhen(zz0 > zz1 AND zz1 < zz2, zz1);
  pk = ValueWhen(zz0 < zz1 AND zz1 > zz2, zz1);
  PU = tr + 0.01 * abs(tr)*amount;
  PD = pk - 0.01 * abs(pk)*amount;
  ZZT = IIf( array >= PU AND zz0 > zz1, 1,
  IIf( array <= PD AND zz0 < zz1, -1, 0 ) );
  ZZT = ValueWhen( ZZT != 0, ZZT );
  // plot price bar chart
  Plot( Close, "Price", 1, styleLine );
  // plot Zigzag and zigzag trend 
  Plot( ZZT, "ZigZagTrend", colorRed, styleOwnScale ); 
  Plot( zz0, "ZigZag line", colorBlue, styleThick );
  // Plot the ribbon
  ribboncol= IIf( ZZT > 0, colorGreen, colorRed ); 
  Plot( 2, "ZZT Ribbon", ribboncol, styleArea | styleOwnScale | styleNoLabel, 
0, 100 );
  GraphXSpace = 10;
  Buy = Cover = Cross( ZZT, 0 );
  Sell = Short = Cross( 0, ZZT );
  // plot arrows
  PlotShapes( Buy + 2 * Sell, ribboncol, 0, IIf( Buy, L, H ), -30 ); 

   

Reply via email to