주가 보조지표
둘러보기로 가기
검색하러 가기
1 거래량 지표
1.1 MFI
공식 | 활용 | 예시코드 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
평균가격 = (고가+저가+종가)/3
PM = 현재가격이 전일가격보다 상승하였을 경우의 합(대략 10일) NM = 현재가격이 전일가격보다 하락하였을 경우의 합(대략 10일) MR = PM / NM MFI = MR / (1+MR) = PM / (NM + PM) 즉, 전체 평균가에서 상승평균가가 차지하는 비율이 어떠한가. |
다이버전스. 주가 추세와 MFI 추세가 반대일 경우, 주가의 반대추세를 기대할 수 있다. ex) 주가는 상승세인데, MFI가 하락세인 경우, 커다란 하락세가 만들어질 수 있다. |
df['PB'] = (df['close'] - df['low']) / (df['high'] - df['low'])
df['TP'] = (df['high'] + df['low'] + df['close']) / 3
df['PMF'] = 0
df['NMF'] = 0
for i in range(len(df.Close) - 1):
if df.TP.values[i] < df.TP.values[i + 1]:
df.PMF.values[i + 1] = df.TP.values[i + 1] * df.Volume.values[i + 1]
df.NMF.values[i + 1] = 0
else:
df.NMF.values[i + 1] = df.TP.values[i + 1] * df.Volume.values[i + 1]
df.PMF.values[i + 1] = 0
df['MFR'] = (df.PMF.rolling(window=10).sum() /
df.NMF.rolling(window=10).sum())
df['MFI10'] = 100 - 100 / (1 + df['MFR'])
|
2 추세지표
2.1 MACD
공식 | 활용 | 예시코드 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
MACD = 단기이동평균(12일) - 장기이동평균(26일)
Signal = 이동평균(9일) Oscillator = MACD - Signal |
다이버전스. 주가추세 상향인데, MACD는 하향일 경우 고점도달 신호. |
df['PB'] = (df['close'] - df['low']) / (df['high'] - df['low'])
df['TP'] = (df['high'] + df['low'] + df['close']) / 3
df['PMF'] = 0
df['NMF'] = 0
for i in range(len(df.close) - 1):
if df.TP.values[i] < df.TP.values[i + 1]:
df.PMF.values[i + 1] = df.TP.values[i + 1] * df.volume.values[i + 1]
df.NMF.values[i + 1] = 0
else:
df.NMF.values[i + 1] = df.TP.values[i + 1] * df.volume.values[i + 1]
df.PMF.values[i + 1] = 0
df['MFR'] = (df.PMF.rolling(window=10).sum() /
df.NMF.rolling(window=10).sum())
df['MFI10'] = 100 - 100 / (1 + df['MFR'])
|
3 변동성 지표
3.1 Sonar
공식 | 활용 | 예시코드 | ||||||
---|---|---|---|---|---|---|---|---|
sonar = 오늘의 이동평균 - n일 전의 이동평균
보통 이동평균은 10일, n일 은 9일을 사용한다. sonar_signal = sonar의 이동평균. 이동평균의 정도는 개인차... |
횡보장에선 적절하지 않음.
|
df['sonar_ma'] = df['close'].rolling(window=10).mean() # 이동평균
df['sonar_ma_ago'] = df['close'].shift(9).rolling(window=10).mean() # 9일 전의 이동평균
df['sonar'] = df['sonar_ma'] - df['sonar_ma_ago']
df['sonar_signal'] = df['sonar'].rolling(window=10).mean()
|