Zig Zag

get_zig_zag(quotes, end_type=EndType.CLOSE, percent_change=5)

Parameters

name type notes
quotes Iterable[Quote] Iterable of the Quote class or its sub-class.
See here for usage with pandas.DataFrame
end_type EndType, default EndType.CLOSE Determines whether close or high/low are used to measure percent change. See EndType options below.
percent_change float, default 5 Percent change required to establish a line endpoint. Example: 3.5% would be entered as 3.5 (not 0.035). Must be greater than 0. Typical values range from 3 to 10.

Historical quotes requirements

You must have at least two periods of quotes to cover the warmup periods, but notably more is needed to be useful.

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.

EndType options

from stock_indicators.indicators.common.enums import EndType
type description
EndType.CLOSE Percent change measured from close price (default)
EndType.HIGH_LOW Percent change measured from high and low price

Returns

ZigZagResults[ZigZagResult]

🚩 Warning: depending on the specified endType, the indicator cannot be initialized if the first Quote in quotes has a High,Low, or Close value of 0 (zero).

👉 Repaint warning: the last line segment will always be redrawn back to the last known pivot. Do not attempt to calculate incremental values since previous values may change based on newer quotes.

ZigZagResult

name type notes
date datetime Date
zig_zag Decimal, Optional Zig Zag line for percent_change
point_type str, Optional Zig Zag endpoint type (H for high point, L for low point)
retrace_high Decimal, Optional Retrace line for high points
retrace_low Decimal, Optional Retrace line for low points

Utilities

See Utilities and Helpers for more information.

Example

from stock_indicators import indicators
from stock_indicators import EndType     # Short path, version >= 0.8.1

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

# Calculate 3% change ZIGZAG
results = indicators.get_zig_zag(quotes, EndType.CLOSE, 3);

About Zig Zag

Zig Zag is a price chart overlay that simplifies the up and down movements and transitions based on a percent change smoothing threshold. [Discuss] 💬

image

Sources