반응형
볼린저 밴드(Bollinger Bands)
- 볼린저 밴드는 1980년대 초반에 존 볼린저가 개발한 주가 기술적 분석 도구이다.
- 볼린저 밴드는 주가가 이동평균선 중심으로 표준편차 범위 안에서 움직인다고 가정한다.
- 현재 주가가 상대적으로 높은지 낮은지를 판단할 때 사용하는 보조지표이다.
볼린저 밴드 구성
볼린저 밴드는 다음과 같이 구성된다.
- 중심선(Moving Average): n기간 동안의 이동평균
- 상한선(Upper Band): 중심선 + (n기간 동안의 표준편차 * k)
- 하한선(Lower Band): 중심선 - (n기간 동안의 표준편차 * k)
일반적으로 n과 k의 값은 20과 2를 사용한다.
볼린저 밴드 변동성 돌파 전략
- 밴드폭이 축소되어 밀집구간을 거친 후, 상단 밴드를 돌파할 경우 매수한다.
- 하단 밴드를 하향 이탈할 경우 매도한다.
파이썬 볼린저 밴드 차트 그리기
matplotlib의 fill_between 함수를 사용하면 볼린저 밴드 차트를 쉽게 그릴 수 있다.
코드 작성 방법은 pandas 공식문서를 참고했다.
price = pd.Series(
np.random.randn(150).cumsum(),
index=pd.date_range("2000-1-1", periods=150, freq="B"),
)
ma = price.rolling(20).mean()
mstd = price.rolling(20).std()
plt.figure();
plt.plot(price.index, price, "k");
plt.plot(ma.index, ma, "b");
plt.fill_between(mstd.index, ma - 2 * mstd, ma + 2 * mstd, color="b", alpha=0.2);
업비트 비트코인 볼린저 밴드 차트 그리기
비트코인 차트 데이터 가져오기
import pyupbit
df = pyupbit.get_ohlcv("KRW-BTC")
df.tail()
비트코인 20일 이평선 계산하기
df["ma"] = df["close"].rolling(20).mean()
비트코인 표준편차로 상/하한선 계산하기
# 20일간의 표준편차
df["std"] = df["close"].rolling(20).std()
# 상한선
df["upperb"] = df["ma"] + (df["std"] * 2)
# 하한선
df["lowerb"] = df["ma"] - (df["std"] * 2)
비트코인 볼린저 밴드 차트 그리기
import matplotlib.pyplot as plt
plt.style.use('seaborn')
df[["upperb", "close", "ma", "lowerb"]].plot(figsize=(20, 10))
plt.fill_between(df.index, df.lowerb, df.upperb, color="b", alpha=0.1);
볼린저 밴드 함수 만들기
def plot_bollinger_bands(df, n=20, k=2):
df["ma"] = df["close"].rolling(n).mean()
df["std"] = df["close"].rolling(n).std()
df["upperb"] = df["ma"] + (df["std"] * k)
df["lowerb"] = df["ma"] - (df["std"] * k)
df = df[n-1:].copy()
plt.figure(figsize=(9, 5))
plt.plot(df.index, df['close'], label='Close')
plt.plot(df.index, df['upperb'], linestyle='dashed', label='Upper band')
plt.plot(df.index, df['ma'], linestyle='dashed', label=f'Moving Average {n}')
plt.plot(df.index, df['lowerb'], linestyle='dashed', label='Lower band')
plt.legend(loc='best');
이제 이 함수를 사용하여 다른 코인(ETH, STEEM, SBD)의 볼린저 밴드를 그려보자.
References
- AI 자동 투자 봇 만들기, 노트북 하나로 월급을 두 배 불리는 비법 wiki, TimePercent, 위키독스, 2023
Links
반응형
'개발 > 파이썬 자동매매' 카테고리의 다른 글
(파이썬 자동매매) MACD(Moving Average Convergence Divergence) (2) | 2023.02.15 |
---|---|
(파이썬 자동매매) 볼린저 밴드 상승 돌파 전략 테스트하기 (0) | 2023.02.14 |
(파이썬) 바이낸스 비트코인 이동평균선 돌파 전략 백테스팅 (2) | 2023.02.07 |
(파이썬) 바이낸스 비트코인 이동평균선 그리기 (0) | 2023.02.07 |
[비트코인 자동매매] 상승장 알리미 스케쥴러 적용하기 (1) | 2023.01.12 |