기본 콘텐츠로 건너뛰기

pandas_ta를 적용한 통계적 인덱스 지표

[stock]BOP(Balance of Power)

Balance of Power (BOP)

$$\text{BOP} = \frac{\text{Close} - \frac{\text{High} + \text{Low}}{2}}{\text{High} - \text{Low}}$$

Close, High, Low: 해당기간의 종가, 고가, 저가

BOP는 전체 범위 중에서 종가의 위치를 나타내는 지표로 [-1, +1]사이의 값입니다. -1에 근접할수록 종가는 저가에 근접하는 것으로 하락장으로 매도세가 우세, 반대는 상승장으로 매수세가 우세함을 의미합니다. 즉 BOP는 매수세력과 매도세력의 강약을 측정하여 시장의 추세를 파악하는데 도움을 주는 모멘텀 지표입니다.

pandas_ta.bop(open_, high, low, close, scalar=None, talib=None, offset=None, **kwargs)함수를 사용합니다. 이 함수에서는 위 식의 $\frac{\text{High} + \text{Low}}{2}$ 대신 시가를 사용합니다.

import numpy as np
import pandas as pd
import FinanceDataReader as fdr
import yfinance as yf
import pandas_ta as ta
import matplotlib.pyplot as plt
import mplfinance as mpf

st=pd.Timestamp(2024,9, 1)
et=pd.Timestamp(2025, 4,30)
trgnme="000660.KS"
trg=yf.download(trgnme,  st, et)
trg.columns=[i[0] for i in trg.columns]
bop=ta.bop(trg.Open, trg.High, trg.Low, trg.Close)
bop.tail(3)
Date
2025-04-25    0.370370
2025-04-28    0.327273
2025-04-29   -0.545455
Name: BOP, dtype: float64
adp=[mpf.make_addplot(bop, panel=2, color="brown",  label="bop"), 
     mpf.make_addplot(ta.ema(trg.Close, 5), panel=0, color="orange", label="EMA5"),
   mpf.make_addplot(ta.ema(trg.Close, 20), panel=0, color="navy", label="EMA20")]
fig, axs=mpf.plot(trg, type="candle", style="yahoo", addplot=adp, volume=True, returnfig=True, xlim=(pd.to_datetime("2025, 03, 01"), pd.to_datetime("2025, 04, 30")), figsize=(12,6))
axs[4].axhline(0, color="navy", linestyle="dotted")
axs[0].legend(loc="upper left")
axs[4].legend(loc="upper left")
plt.show()

거래량에서 녹색은 종가>시가, 분홍색은 종가<시가를 의미합니다.

위 그래프의 마지막일의 거래량은 종가<시가로 매도세가 우세하고 bop 역시 0선 아래로 이격을 계속 증가시키고 있습니다. 이전 음영역 피크에 근접하고 있지만 거래량은 감소하는 추세이므로 매도세의 우세 정도가 감소할 것이고 해석할 수 있습니다. 즉, 반전의 모멘텀이 나타날 수 있음을 고려할 수 있습니다.

  • +1에 근접할수록 종가가 고가 근처에 형성된 것을 의미하는 것으로 매수세가 강함을 의미, 0선과 이격이 클수록 그 강도가 큼을 나타냄, 그러나 +1에 최근접은 추세의 지속이 일어날 수 있지만 반전을 고려할 수 있으므로 다른 지표들과의 합동분석이 필요
  • -1에 근접할수록 종가가 저가 근처에 형성된 것을 의미하는 것으로 매도세가 강함을 의미, 0선과 이격이 클수록 그 강도가 큼을 나타냄, 그러나 -1에 최근접은 추세의 지속이 일어날 수 있지만 반전을 고려할 수 있으므로 다른 지표들과의 합동분석이 필요
  • 0에 근접은 매수세와 매도세의 균형이 유지됨을 의미하는 것으로 횡보를 나타냄
  • 0선을 상향돌파시 매수세가 매도세를 우위로 변경됨을 의미
  • 0선을 하향돌파시 매도세가 매수세를 우위로 변경됨을 의미
  • BOP 상승, 가격 하락: 매수세가 상승하는데 가격이 하락됨은 주가 저점형성에 근접함으로 해석할 수 있으므로 매수전략을 고려할 수 있음
  • BOP 하락, 가격 상승: 매도세가 상승하는데 가격이 상승됨은 주가 고점형성에 근접함으로 해석할 수 있으므로 매도전략을 고려할 수 있음

BOP는 단기적인 매수/매도 압력 측정에 유용하지만 장기적인 추세를 나타내지는 않는다는 점을 유의하고 장기 추세 분석을 위해서는 다른 지표와 함께 사용되어야 합니다. 또한 횡보장에서는 BOP의 잦은 신호로 신뢰도가 저하될 수 있습니다.

거래량과의 같이 분석해야 합니다.

댓글