Schaff Trend Cycle

get_stc(quotes, cycle_periods=10, fast_periods=23, slow_periods=50)

Parameters

name type notes
quotes Iterable[Quote] Iterable of the Quote class or its sub-class.
See here for usage with pandas.DataFrame
cycle_periods int, default 10 Number of periods (C) for the Trend Cycle. Must be greater than or equal to 0.
fast_periods int, default 23 Number of periods (F) for the faster moving average. Must be greater than 0.
slow_periods int, default 50 Number of periods (S) for the slower moving average. Must be greater than fast_periods.

Historical quotes requirements

You must have at least 2×(S+C) or S+C+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+C+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.

Return

STCResults[STCResult]

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

STCResult

name type notes
date datetime Date
stc float, Optional Schaff Trend Cycle

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 STC(12,26,9)
results = indicators.get_stc(quotes, 10, 23, 50)

About Schaff Trend Cycle

Created by Doug Schaff, Schaff Trend Cycle is a stochastic oscillator view of two converging/diverging exponential moving averages (a.k.a MACD). [Discuss] 💬

image

Sources