Relative Strength Index.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Relative Strength Index
  4. //  Author/Uploader: Tomasz Janeczko 
  5. //  E-mail:          tj@amibroker.com
  6. //  Date/Time Added: 2001-06-16 08:50:34
  7. //  Origin:          Relative Strength Index was originally developed by Welles Wilder
  8. //  Keywords:        relative strength
  9. //  Level:           medium
  10. //  Flags:           system,commentary
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=20
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=20
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Sample commentary using RSI showing how to use WriteIF() and WriteVal()
  17. //  functions.
  18. //
  19. //  May be also used as a simple trading system.
  20. //
  21. //------------------------------------------------------------------------------
  22. /* File:          RSI Guru Commentary
  23. ** Requirements:  AmiBroker 3.0 (AFL 1.1)
  24. ** Last Modified: TJ, Mar 22nd, 1999 
  25. */
  26. "Review of " + name() +" as of "+date();
  27. vrsi = rsi( 14 );
  28. buy = cross( vrsi, 30 );
  29. sell = cross( 70, vrsi );
  30. "nThe current value for the 14 day RSI is " + WriteVal( vrsi );
  31. "nThe RSI, written by J. Welles Wilder in 1978, can be used in several different ways to analyze a chart.n";
  32. "Tops and Bottoms";
  33. "================n";
  34. WriteIf( vrsi > 70, "The RSI is above 70.  This is where it usually tops.  The RSI usually forms tops and bottoms before the underlying security.",
  35. WriteIf( vrsi < 30, "The RSI is below 30.  This is where it usually bottoms.  The RSI usually forms tops and bottoms before the underlying security.",
  36. "The RSI is not currently in a topping (above 70) or bottoming (below 30) range. " 
  37. + WriteIf( cross( 70, vrsi ), "However, the RSI just crossed below 70 from a topping formation.  This is a bearish sign.",
  38. WriteIf( cross( vrsi, 30 ), "However, the RSI just crossed above 30 from a bottoming formation.  This is a bullish sign.", "" ) ) ) ); 
  39. bars30 = BarsSince( buy );
  40. bars70 = BarsSince( sell );
  41. "nBuy/Sell signals";
  42.   "================n";
  43. "A buy or sell signal is generated when the RSI moves out of an overbought/oversold area. nThe last signal was a "+
  44. WriteIf( bars30 < bars70, "buy", WriteIf( bars30 > bars70, "sell", "" ))+
  45. WriteVal( min( bars30, bars70 ), 3.0 ) + " period(s) ago.";
  46. "nChart Formations";
  47.   "================n";
  48. "The RSI often forms chart patterns (such as head and shoulders or rising wedges) that may or may not be visible on the price chart.  "+
  49. "Since the analysis of chart patterns is subjective, the Guru Advisor cannot find them.  You will have to visually inspect the RSI indicator to look for such patterns.";
  50. "nFailure Swings (also known as support or resistance penetrations or breakouts";
  51.   "=============================================================================n";
  52. WriteIf( vrsi >= hhv( vrsi, 14 ), "The RSI has just reached its highest value in the last 14 period(s).  This is bullish.",
  53. WriteIf( vrsi <= llv( vrsi, 14 ), "The RSI has just reached its lowest value in the last 14 period(s).  This is bearish.",
  54. "The RSI does not currently show any Failure Swings." ) );
  55. "nSupport and Resistance";
  56.   "======================n";
  57. "The RSI shows, sometimes more clearly than the price chart, levels of support and resistance."+
  58. "As with chart formations, this is subjective, so you must visually inspect the chart to determine this.";
  59. "nDivergence";
  60.   "==========n";
  61. WriteIf( close >= hhv( close, 14 ) and vrsi < hhv( vrsi, 14 ), 
  62. "The security price has set a new 14-day high while the RSI has not.  This is a bearish divergence.",
  63. WriteIf( vrsi >= hhv( vrsi, 14 ) and close < hhv( close, 14 ), 
  64. "The RSI has set a new 14-day high while the security price has not.  This is a bullish divergence.",
  65. WriteIf( close <= llv( close, 14 ) and vrsi > llv( vrsi, 14 ), 
  66. "The security price has set a new 14-day low while the RSI has not.  This is a bullish divergence.",
  67. WriteIf( vrsi <= llv( vrsi, 14) and close > llv(close,14), 
  68. "The RSI has set a new 14-day low while the security price has not.  This is a bearish divergence.",
  69. "The RSI and price are not diverging." ) ) ) ); 
  70. "nnThis commentary is not a recommendation to buy or sell, but rather a guideline to interpreting the specified indicators.  
  71. The author accepts no liability whatsoever for any loss arising from any use of this expert or its contents.";