바뀜

3,573 바이트 추가됨 ,  2022년 8월 9일 (화) 18:09
새 문서: == 거래량 지표 == === MFI === {| class="wikitable" !공식 !활용 !예시코드 |- |평균가격 = (고가+저가+종가)/3 PM = 현재가격이 전일가격보다 상승하였...
== 거래량 지표 ==

=== MFI ===
{| class="wikitable"
!공식
!활용
!예시코드
|-
|평균가격 = (고가+저가+종가)/3
PM = 현재가격이 전일가격보다 상승하였을 경우의 합(대략 10일)

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

MR = PM / NM

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

즉, 전체 평균가에서 상승평균가가 차지하는 비율이 어떠한가.
|
{| class="wikitable"
!활용
!설명
|-
|20% 이하
|매수 타이밍(과매도구간)
|-
|80% 이상
|매도 타이밍(과매수구간)
|-
|50% 하향돌파
|매도 타이밍
|-
|50% 상향돌파
|매수 타이밍
|}
다이버전스.

주가 추세와 MFI 추세가 반대일 경우, 주가의 반대추세를 기대할 수 있다.

ex) 주가는 상승세인데, MFI가 하락세인 경우, 커다란 하락세가 만들어질 수 있다.
|<syntaxhighlight lang="python">
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'])
</syntaxhighlight>
|}

== 추세지표 ==

=== MACD ===
{| class="wikitable"
!공식
!활용
!예시코드
|-
|MACD = 단기이동평균(12일) - 장기이동평균(26일)
Signal = 이동평균(9일)

Oscillator = MACD - Signal
|
{| class="wikitable"
!활용
!설명
|-
|MACD이 Signal 상향 돌파
|매수 타이밍
|-
|MACD이 Signal 하향 돌파
|매도 타이밍
|-
|Oscillator 최고점
|매도 타이밍
|-
|Oscillator 최저점
|매수 타이밍
|}
다이버전스.

주가추세 상향인데, MACD는 하향일 경우 고점도달 신호.
|<syntaxhighlight lang="python">
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'])
</syntaxhighlight>
|}

== 변동성 지표 ==

=== Sonar ===
{| class="wikitable"
!공식
!활용
!예시코드
|-
|sonar = 오늘의 이동평균 - n일 전의 이동평균
보통 이동평균은 10일, n일 은 9일을 사용한다.

sonar_signal = sonar의 이동평균.

이동평균의 정도는 개인차...
|횡보장에선 적절하지 않음.
{| class="wikitable"
!활용
!설명
|-
|sonar 상향 돌파
|매수 타이밍
|-
|sonar가 signal 상향돌파
|매수 타이밍
|}
|<syntaxhighlight lang="python">
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()
</syntaxhighlight>
|}
[[분류:주식 이론]]