"주가 보조지표"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 거래량 지표 == === MFI === {| class="wikitable" !공식 !활용 !예시코드 |- |평균가격 = (고가+저가+종가)/3 PM = 현재가격이 전일가격보다 상승하였...)
(차이 없음)

2022년 8월 9일 (화) 18:09 판

1 거래량 지표

1.1 MFI

공식 활용 예시코드
평균가격 = (고가+저가+종가)/3

PM = 현재가격이 전일가격보다 상승하였을 경우의 합(대략 10일)

NM = 현재가격이 전일가격보다 하락하였을 경우의 합(대략 10일)

MR = PM / NM

MFI = MR / (1+MR) = PM / (NM + PM)

즉, 전체 평균가에서 상승평균가가 차지하는 비율이 어떠한가.

활용 설명
20% 이하 매수 타이밍(과매도구간)
80% 이상 매도 타이밍(과매수구간)
50% 하향돌파 매도 타이밍
50% 상향돌파 매수 타이밍

다이버전스.

주가 추세와 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이 Signal 상향 돌파 매수 타이밍
MACD이 Signal 하향 돌파 매도 타이밍
Oscillator 최고점 매도 타이밍
Oscillator 최저점 매수 타이밍

다이버전스.

주가추세 상향인데, 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의 이동평균.

이동평균의 정도는 개인차...

횡보장에선 적절하지 않음.
활용 설명
sonar 상향 돌파 매수 타이밍
sonar가 signal 상향돌파 매수 타이밍
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()