Files
2021-07-18 12:38:44 +02:00

30 lines
780 B
Python

from typing import Union
import numpy as np
import talib
from jesse.helpers import get_candle_source, slice_candles
def ema(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[
float, np.ndarray]:
"""
EMA - Exponential Moving Average
:param candles: np.ndarray
:param period: int - default: 5
:param source_type: str - default: "close"
:param sequential: bool - default: False
:return: float | np.ndarray
"""
if len(candles.shape) == 1:
source = candles
else:
candles = slice_candles(candles, sequential)
source = get_candle_source(candles, source_type=source_type)
res = talib.EMA(source, timeperiod=period)
return res if sequential else res[-1]