Awesome Oscillator(AO)
Awesome Oscillator는 추세의 강도를 측정하고 잠재적인 반전 지점을 식별하는 데 사용되는 기술적 분석 지표입니다. AO는 일반적으로 추세를 확인하거나 반전 가능성을 예측하는 데 사용됩니다.
- 추세확인: 추세강도 측정하여 추세의 지속 또는 반전을 판단에 도움
- 가격과 오썸오실레이터 간의 다이버전스(벌어짐)은 잠재적인 추세 반전을 나타냄
- 오썸오실레이터가 제로라인을 교차하는 것은 추세 변화의 신호로 해석할 수 있음
- 상승추세에서 두개의 봉우리가 발생했을 때 두 번째 봉우리가 첫번째 봉우리보다 낮을 경우 매도신호로 해석할 수 있음
과거 데이터를 기반으로 하므로 미래 가격의 정확한 예측은 어렵고 모든 시장 상황에 적합하다고 할 수 없으므로 다른 지표와 함께 사용하여야 합니다.
계산
지정한 기간의 중간값에 대한 단기(5)와 장기(34) 평균값의 차입니다.
다음은 AO를 계산하기 위한 UDF입니다.
#awesome oscillator 계산 def calculate_ao(data, short=5, long=34): high=data["High"] low=data["Low"] median_price=(high+low)/2 sma_short=median_price.rolling(window=short).mean() sma_long=median_price.rolling(window=long).mean() ao=sma_short - sma_long return ao def ao_color(data): awesome_color=[] #awesome_color.clear() for i in range(len(data)): if data.iloc[i]>=0 and data.iloc[i]>=data.iloc[i-1]:#양수, 직전보다 증가 awesome_color.append('orange') elif data.iloc[i]>=0 and data.iloc[i]<data.iloc[i-1]: #양수, 직전보다 감소 awesome_color.append('skyblue') elif data.iloc[i]<0 and data.iloc[i]<data.iloc[i-1]:#음수, 직전보다 감수 awesome_color.append('skyblue') elif data.iloc[i]<0 and data.iloc[i]>=data.iloc[i-1]: #음수, 직전보다 증가 awesome_color.append('orange') else: awesome_color.append('k') return awesome_color
import numpy as np import pandas as pd import yfinance as yf import matplotlib.pyplot as plt import mplfinance as mpf
st=pd.Timestamp(2025,1, 1) et=pd.Timestamp(2025, 4,13) trgnme="000660.KS"#sk하이닉스 trg=yf.download(trgnme, st, et) trg.columns=[i[0] for i in trg.columns]
ao_data=calculate_ao(trg, 5, 20) aoColor=ao_color(ao_data)
ao=[ mpf.make_addplot(ao_data, type="bar", width=0.7, color=aoColor, panel=1, alpha=0.8, secondary_y=True) ] mpf.plot(trg, volume=True, volume_panel=2, type="candle", style="yahoo", mav=(5, 20), addplot=ao, figsize=(10, 8))
댓글
댓글 쓰기