Investment Studio > Expressions > Functions > Indicator > ARO

float array[*][2] aro(float array[*][2] dc, integer days)

Returns a two-column array containing dates (first column) and corresponding Aroon Oscillator (ARO) values (second column). Given n input rows in dc, n - days + 1 rows are returned.

dc is a two-column array containing dates (first column) and corresponding daily closing prices (second column). The array is assumed to be time-sorted, with earlier dates preceding later dates.

Automatic type conversion allows the use of date strings as arguments instead of explicit date values.

days > 0 is the length of the time frame, i.e. the number of trading days contributing to the calculation of each day's ARO value.

Interpretation

ARO is a trend strength indicator. It's computed as the difference ARU - ARD. The range is [-100, 100].

Values above 0 indicate an uptrend; values above 40 a strong uptrend. Values below 0 indicate a downtrend; values below -40 a strong downtrend. Values moving toward 0 indicate that the current trend is losing steam.

For a real life example, consider Intel (NASD:INTC) from June 1 to December 31, 2001:

The top chart shows the price and a 20 day EMA (blue line). The bottom chart shows the 25 day ARO; the strong trend threshold levels -40 and 40 are marked in gray; crossings above the strong uptrend level are highlighted in green, crossings below the strong downtrend level in red.

The first crossing of the -40 level from above (sell signal) occurs on August 17, one day after the price crossed below the 20 day EMA. The 40 level is subsequently crossed from below (buy signal) on October 19, eight trading days after the price crossed above the 20 day EMA.

The larger lag on the way up reflects the adaptive behaviour of the Aroon indicators and the large fall that preceded the rebound (see ARU example).

The end of the autumn rally is signalled at the end of December by the ARO falling through both the 40 and the -40 levels within a few days.

Example

Assuming standard US date format settings,

=aro({{"1/1/1990", 12}, {"1/2/1990", 11}, {"1/3/1990", 12}}, 2)

returns {{32875, -50}, {32876, 50}}. 32875 is the date code for 1/2/1990; -50 is the 2 day ARO value for that date: the day's close (11) is the low of the (2 day) time frame under consideration, so ARO indicates a downtrend. 32876 is the date code for 1/3/1990; 50 is the 2 day ARO for that date: the day's close (12) is the high of the (2 day) time frame under consideration, so ARO indicates an uptrend.

The ARO chart above uses the definitions

_NDAYS = 25

_ARO = aro(asset_quotes(SELF, "C", FROM_DATE - 2 * _NDAYS, TO_DATE), _NDAYS)

_HI_CROSSES = crosses(array(_ARO), 2, 40)

_LO_CROSSES = crosses(array(_ARO), 2, -40)

_BUY = vlookup(X, array(_HI_CROSSES), 2, FALSE) > 0

_SELL = vlookup(X, array(_LO_CROSSES), 2, FALSE) < 0

the line source

vlookup(X, array(_ARO), 2, FALSE)

and the image sources

if(_BUY, {12, 40}, "")

if(_SELL, {13, -40}, "")

See also adx, ard, aru, di, macd, mfi, mo, rsi, tsi, vhf.