Skip to content

Latest commit

 

History

History
88 lines (62 loc) · 4 KB

File metadata and controls

88 lines (62 loc) · 4 KB
title Moving Average Convergence / Divergence (MACD)
permalink /indicators/Macd/
type price-trend
layout indicator

{{ page.title }}

get_macd(quotes, fast_periods=12, slow_periods=26, signal_periods=9)

Parameters

name type notes
quotes Iterable[Quote] Iterable of the Quote class or its sub-class.
See here for usage with pandas.DataFrame
fast_periods int, default 12 Number of periods (F) for the faster moving average. Must be greater than 0.
slow_periods int, default 26 Number of periods (S) for the slower moving average. Must be greater than fast_periods.
signal_periods int, default 9 Number of periods (P) for the moving average of MACD. Must be greater than or equal to 0.
candle_part CandlePart, default CandlePart.CLOSE Specify candle part to evaluate. See CandlePart options below.

Historical quotes requirements

You must have at least 2×(S+P) or S+P+100 worth of quotes, whichever is more, to cover the convergence periods. Since this uses a smoothing technique, we recommend you use at least S+P+250 data points prior to the intended usage date for better precision.

quotes is an Iterable[Quote] collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.

{% include candlepart-options.md %}

Returns

MACDResults[MACDResult]
  • This method returns a time series of all available indicator values for the quotes provided.
  • MACDResults is just a list of MACDResult.
  • It always returns the same number of elements as there are in the historical quotes.
  • It does not return a single incremental indicator value.
  • The first S-1 slow periods will have None values since there's not enough data to calculate.

Convergence warning: The first S+P+250 periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.

MACDResult

name type notes
date datetime Date
macd float, Optional The MACD line is the difference between slow and fast moving averages (macd = fast_ema - slow_ema)
signal float, Optional Moving average of the macd line
histogram float, Optional Gap between of the macd and signal line
fast_ema float, Optional Fast Exponential Moving Average
slow_ema float, Optional Slow Exponential Moving Average

Utilities

See Utilities and Helpers for more information.

Example

from stock_indicators import indicators

# This method is NOT a part of the library.
quotes = get_historical_quotes("SPY")

# calculate MACD(12,26,9)
results = indicators.get_macd(quotes, 12, 26, 9)

About {{ page.title }}

Created by Gerald Appel, MACD is a simple oscillator view of two converging/diverging exponential moving averages. [Discuss] 💬

image

Sources