Files
jesse-trading/jesse/indicators/bop.py
2021-02-15 11:18:52 +01:00

28 lines
699 B
Python

from typing import Union
import numpy as np
import talib
from jesse.helpers import get_config
def bop(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:
"""
BOP - Balance Of Power
:param candles: np.ndarray
:param sequential: bool - default=False
:return: float | np.ndarray
"""
warmup_candles_num = get_config('env.data.warmup_candles_num', 240)
if not sequential and len(candles) > warmup_candles_num:
candles = candles[-warmup_candles_num:]
res = talib.BOP(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2])
if sequential:
return res
else:
return None if np.isnan(res[-1]) else res[-1]