Divergence indicator.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Divergence indicator
  4. //  Author/Uploader: M.Lauronen 
  5. //  E-mail:          pipseeker@yahoo.com
  6. //  Date/Time Added: 2004-07-30 11:50:32
  7. //  Origin:          
  8. //  Keywords:        
  9. //  Level:           medium
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=374
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=374
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Here is an indicator which calculates divergencies between the price and
  17. //  RSI.
  18. //
  19. //  You can use another strenght/momentum indicator simple by changing one line
  20. //  of code.
  21. //
  22. //  Remember to tune the 'period' and 'numChg'
  23. //
  24. //  Indicator gives you the buy/sell signal when you see green/red vertical
  25. //  line on the panel.
  26. //
  27. //------------------------------------------------------------------------------
  28. // ********************************************
  29. // INDICATOR :DIVERGENCE
  30. // DATE :07-30-04
  31. // PROGRAMMER :M.Lauronen
  32. // COPYRIGHTS :Public Domain
  33. // ********************************************
  34. // --------------------------------------------
  35. // Recommended AmiBroker indicator settings:
  36. // Level 0
  37. // Percent
  38. // Middle
  39. // Scaling: Custom 0 - 100
  40. // --------------------------------------------
  41. // Adjust the following parameters to suit your needs
  42. period = 5;
  43. numChg = 0.001;
  44. // --------------------------------------------
  45. // Divergence for LONG
  46. // --------------------------------------------
  47. trendMom = RSI(period);
  48. trendZig = Zig(L, numChg);
  49. f = trendZig > Ref(trendZig, -1) AND Ref(trendZig, -1) < Ref(trendZig, -2);
  50. p1 = ValueWhen(f, Ref(trendZig, -1), 1);
  51. p2 = ValueWhen(f, Ref(trendZig, -1), 2);
  52. r1 = ValueWhen(f, Ref(trendMom,-1), 1);
  53. r2  = ValueWhen(f, Ref(trendMom,-1), 2);
  54. f = r1 > r2 AND p1 < p2;
  55. sig = f AND NOT Ref(f, -1) AND trendMom > Ref(trendMom, -1); 
  56. _N(str = "(" + period + ")");
  57. Plot(trendMom, "RSI" + str, colorWhite);
  58. Plot(sig * 100, "Sig", colorGreen, styleHistogram + styleThick + styleNoLabel);
  59. // --------------------------------------------
  60. // Divergence for SHORT
  61. // --------------------------------------------
  62. trendZig2 = Zig(H, numChg);
  63. f = trendZig2 < Ref(trendZig2, -1) AND Ref(trendZig2, -1) > Ref(trendZig2, -2);
  64. p1 = ValueWhen(f, Ref(trendZig2, -1), 1);
  65. p2 = ValueWhen(f, Ref(trendZig2, -1), 2);
  66. r1 = ValueWhen(f, Ref(trendMom,-1), 1);
  67. r2  = ValueWhen(f, Ref(trendMom,-1), 2);
  68. f = r1 < r2 AND p1 > p2;
  69. sig = f AND NOT Ref(f, -1) AND trendMom < Ref(trendMom, -1); 
  70. _N(str = "(" + period + ")");
  71. Plot(sig * 100, "Sig", colorRed, styleHistogram + styleThick + styleNoLabel);