Ehlers Center of Gravity Oscillator.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Ehlers Center of Gravity Oscillator
  4. //  Author/Uploader: Not Too Swift 
  5. //  E-mail:          
  6. //  Date/Time Added: 2005-06-25 01:14:08
  7. //  Origin:          
  8. //  Keywords:        
  9. //  Level:           medium
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=484
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=484
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Ehlers Center of Gravity Oscillator is from Cybernetic Analysis for Stocks
  17. //  and Futures. Wiley. 2004.
  18. //
  19. //  This indicator represents the center of gravity of prices over the window
  20. //  of observation.
  21. //
  22. //------------------------------------------------------------------------------
  23. SetBarsRequired(200, 0);
  24. // Ehlers formulas
  25. // from Ehlers, John F. Cybernetic Analysis for Stocks and Futures. Wiley. 2004. 
  26. // Chapter 5, p. 47. Code on p. 49.
  27. function CGOscillator(array, length)
  28. // Figure 5.1 on p. 49.
  29. {
  30.   CGOValue = array;
  31.   for(i = length; i < BarCount; i++)
  32.   {
  33.     num = 0;
  34.     denom = 0;
  35.     for(j = 0; j < length; j++)
  36.     {
  37.       num = num + (1 + j) * array[i - j];
  38.       denom = denom + array[i - j];
  39.     }
  40.     if (denom != 0) CGOValue[i] = -num / denom + (length +1)/2;
  41.   }
  42.   return CGOValue;
  43. }
  44. med = (H + L) / 2;
  45. Period = Param("Period", 10, 1, 250, 1);
  46. Plot(CGOscillator(med, Period), "CG Oscillator", colorRed, styleLine);
  47. Plot(Ref(CGOscillator(med, Period), -1), "Trigger", colorBlue, styleLine);
  48. PlotGrid(.8);
  49. PlotGrid(.5);
  50. PlotGrid(.2);