Skip to main content
Version: v4

stoch

Calculate the Stochastic Oscillator.

The Stochastic Oscillator measures where the close is in relation to the recent trading range. The values range from zero to 100. %D values over 75 indicate an overbought condition; values under 25 indicate an oversold condition. When the Fast %D crosses above the Slow %D, it is a buy signal; when it crosses below, it is a sell signal. The Raw %K is generally considered too erratic to use for crossover signals.

Examples​

from openbb import obb
# Get the Stochastic Oscillator.
stock_data = obb.equity.price.historical(symbol='TSLA', start_date='2023-01-01', provider='fmp')
stoch_data = obb.technical.stoch(data=stock_data.results, fast_k_period=14, slow_d_period=3, slow_k_period=3)

Parameters​

data: ForwardRef('Data') | ForwardRef('DataFrame') | ForwardRef('Series') | ForwardRef('ndarray') | dict | list
The data to use for the Stochastic Oscillator calculation.

index: str
Default: date
Index column name to use with data, by default "date".

fast_k_period: int
Default: 14
The fast %K period, by default 14.

slow_d_period: int
Default: 3
The slow %D period, by default 3.

slow_k_period: int
Default: 3
The slow %K period, by default 3.


Returns​

results: list[Data]

Serializable results.

provider: str

Provider name.

warnings: Optional[list[Warning_]]

list of warnings.

chart: Optional[Chart]

Chart object.

extra: dict[str, Any]

Extra info.