R: MACD Oscillator

MACD {TTR} | R Documentation

## MACD Oscillator

### Description

The MACD was developed by Gerald Appel and is probably the most popular price oscillator. The MACD function documented in this page compares a fast moving average (MA) of a series with a slow MA of the same series. It can be used as a generic oscillator for any univariate series, not only price.

### Usage

    MACD(x, nFast = 12, nSlow = 26, nSig = 9, maType, percent = TRUE, ...)

### Arguments

`x` | Object that is coercible to xts or matrix; usually price, but can be volume, etc.
`nFast` | Number of periods for fast moving average.
`nSlow` | Number of periods for slow moving average.
`nSig` | Number of periods for signal moving average.
`maType` | Either: A function or a string naming the function to be called. A list with the first component like (1) above, and additional parameters specified as named components. See Examples.
`percent` | logical; if `TRUE`, the percentage difference between the fast and slow moving averages is returned, otherwise the difference between the respective averages is returned.
`...` | Other arguments to be passed to the `maType` function in case (1) above.

### Details

The MACD function either subtracts the fast MA from the slow MA, or finds the rate of change between the fast MA and the slow MA.

### Value

A object of the same class as `x` or a matrix (if `try.xts` fails) containing the columns:

macd

  The price (volume, etc.) oscillator.

signal

  The oscillator signal line (a moving average of the oscillator).

### Note

The MACD is a special case of the general oscillator applied to price. The MACD can be used as a general oscillator applied to any series. Time periods for the MACD are often given as 26 and 12, but the function originally used exponential constants of 0.075 and 0.15, which are closer to 25.6667 and 12.3333 periods.

### Author(s)

Joshua Ulrich

### References

The following site(s) were used to code/document this indicator:
Moving Average Convergence/Divergence (MACD):
http://www.fmlabs.com/reference/MACD.htm
http://www.equis.com/Customer/Resources/TAAZ/?c=3&p=66
http://linnsoft.com/tour/techind/macd.htm
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_convergence_divergence_macd
Price Oscillator:
http://www.fmlabs.com/reference/PriceOscillator.htm
http://www.fmlabs.com/reference/PriceOscillatorPct.htm
http://www.equis.com/Customer/Resources/TAAZ/?c=3&p=94
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:price_oscillators_ppo
Volume Oscillator:
http://www.fmlabs.com/reference/PVO.htm
http://www.equis.com/Customer/Resources/TAAZ/Default.aspx?c=3&p=122

### See Also

See `EMA`, `SMA`, etc. for moving average options; and note Warning section.

### Examples

    data(ttrc)

    macd  <- MACD( ttrc[,"Close"], 12, 26, 9, maType="EMA" )
    macd2 <- MACD( ttrc[,"Close"], 12, 26, 9,
             maType=list(list(SMA), list(EMA, wilder=TRUE), list(SMA)) )

[Package TTR version 0.23-1 Index]