Zig Zag Indicator with Valid Entry and Exit Points.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Zig Zag Indicator with Valid Entry and Exit Points
  4. //  Author/Uploader: Eric Tangen 
  5. //  E-mail:          
  6. //  Date/Time Added: 2004-04-21 21:37:30
  7. //  Origin:          self
  8. //  Keywords:        Zig Zag, Pivot Points, Pivot High, Pivot Low
  9. //  Level:           basic
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=353
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=353
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  The Zig Zag indicator identifies pivot points but looks into the future -
  17. //  (beyond the right edge of the chart) to do this. This indicator plots a dot
  18. //  at the pivot point and an arrow at the bar when the pivot becomes known.
  19. //  The price bars are colored red for a pivot downtrend, green for a pivot
  20. //  uptrend, and blue at the known pivot point. Three addional horizontal lines
  21. //  are plotted and tied to the selected bar - the current close and +/- x%
  22. //  from the current close. The x% is the same % used in the Zig Zag function.
  23. //
  24. //------------------------------------------------------------------------------
  25. //z_ZigZagValid
  26. // ******** CHARTING 
  27. PercentChange = 6;
  28. mystartbar = SelectedValue(BarIndex());  // FOR GRAPHING
  29. mystartbardate = LastValue(ValueWhen(mystartbar == BarIndex(), DateNum(),1));
  30. InitialValue = LastValue(ValueWhen(mystartbardate == DateNum(), C , 1 ) ) ;
  31. Temp1 = IIf(BarIndex() >= mystartbar, InitialValue, Null) ;
  32. Plot(Temp1, " ", colorBlack,styleLine);
  33. Plot((1+(LastValue(PercentChange)/100))*(Temp1), " ", colorGreen, styleLine) ;
  34. Plot((1-(LastValue(PercentChange)/100))*(Temp1), " ", colorRed, styleLine) ;
  35. ZZ = Zig(C,LastValue(PercentChange)) ; 
  36. PivotLow = Ref(IIf(Ref(ROC(ZZ,1),-1) < 0 AND ROC(ZZ,1) > 0, 1, Null),1);
  37. PivotHigh = Ref(IIf(Ref(ROC(ZZ,1),-1) > 0 AND ROC(ZZ,1) < 0, 1, Null),1);
  38. PlotShapes( shapeCircle*PivotLow, colorGreen,0, L, -20) ; 
  39. PlotShapes( shapeCircle*PivotHigh,colorRed,0,H, 20) ;
  40. Buy_Valid = IIf(C>(1+(LastValue(PercentChange)/100))*(ValueWhen(PivotLow, C, 1))
  41. AND ROC(ZZ,1) > 0,1,0); 
  42. Sell_Valid = IIf(C<(1-(LastValue(PercentChange)/100))*(ValueWhen(PivotHigh, C, 1))
  43. AND ROC(ZZ,1) < 0,1,0); 
  44. Buy_Valid = ExRem(Buy_Valid,Sell_Valid);
  45. Sell_Valid = ExRem(Sell_Valid,Buy_Valid);
  46. PlotShapes( shapeUpArrow*Buy_Valid, colorGreen,0, L, -20); 
  47. PlotShapes( shapeDownArrow*Sell_Valid, colorRed,0,H, -20) ;
  48. BarColors = 
  49. IIf(BarsSince(Buy_Valid) < BarsSince(Sell_Valid) 
  50. AND BarsSince(Buy_Valid)!=0, colorGreen,
  51. IIf(BarsSince(Sell_Valid) < BarsSince(Buy_Valid)
  52. AND BarsSince(Sell_Valid)!=0,  colorRed, colorBlue));
  53. Plot(C, " ", BarColors,  styleBar ) ; 
  54. Plot(ZZ," ", colorLightGrey,styleLine|styleThick);
  55. Plot(ZZ," ", BarColors,styleDots|styleNoLine);
  56. Title = Name() + " " + Date() + WriteIf(PivotLow, " Up Pivot ","")+WriteIf(PivotHigh," Down Pivot ","")+ WriteIf(Buy_Valid, " Buy Point ", "") + WriteIf(Sell_Valid, " Sell Point ", "") ;