3.6.2.1. 이동평균선 SMA EMA

이 섹션에서는 이동평균선의 종류와 계산 방법을 설명합니다. 이동평균선은 대표적인 기술적 분석 도구입니다. 가격 데이터를 평활화하여 추세를 파악하는 데 유용합니다. 단순 이동평균선 (SMA)과 지수 이동평균선 (EMA)을 비교합니다. 각 이동평균선의 특징과 활용법을 자세히 알아봅니다.

이동평균선은 특정 기간 동안의 가격 평균을 계산합니다. 계산된 평균값을 선으로 연결하여 추세를 시각적으로 보여줍니다. 가격 변동의 노이즈를 줄여 추세를 쉽게 파악할 수 있습니다. 이동평균선은 지지선과 저항선으로도 활용될 수 있습니다.

단순 이동평균선 (SMA)

SMA는 가장 기본적인 형태의 이동평균선입니다. 특정 기간 동안의 종가를 모두 더합니다. 그리고 기간으로 나누어 평균값을 계산합니다. 예를 들어, 20일 SMA는 최근 20일 동안의 종가 평균입니다. 모든 종가에 동일한 가중치를 부여합니다.

SMA 계산 방법:

SMA = (P1 + P2 + ... + Pn) / n
  • P1, P2, …, Pn: n 기간 동안의 가격 (일반적으로 종가)
  • n: 기간

Python 코드 예시 (Pandas 활용):

import pandas as pd

# 데이터프레임 df에 'Close' 컬럼이 있다고 가정
def calculate_sma(df, period):
  """단순 이동평균(SMA)을 계산하는 함수입니다.

  Args:
      df (pd.DataFrame): 가격 데이터프레임. 'Close' 컬럼이 필요합니다.
      period (int): 이동평균 기간.

  Returns:
      pd.Series: 계산된 SMA 값.
  """
  return df['Close'].rolling(window=period).mean()

# 20일 SMA 계산
df['SMA_20'] = calculate_sma(df, 20)
print(df[['Close', 'SMA_20']].head(30))

위 코드는 Pandas의 rolling() 함수를 사용합니다. 이 함수는 지정된 기간 동안 이동하면서 평균을 계산합니다.

지수 이동평균선 (EMA)

EMA는 최근 가격에 더 큰 가중치를 부여합니다. SMA보다 가격 변화에 더 민감하게 반응합니다. 추세 변화를 빠르게 감지하는 데 유용합니다. EMA는 평활 계수(smoothing factor)를 사용하여 계산됩니다.

EMA 계산 방법:

EMA(오늘) = (가격(오늘) * K) + (EMA(어제) * (1 - K))
  • K = 2 / (기간 + 1) : 평활 계수

Python 코드 예시 (Pandas 활용):

import pandas as pd

# 데이터프레임 df에 'Close' 컬럼이 있다고 가정
def calculate_ema(df, period):
  """지수 이동평균(EMA)을 계산하는 함수입니다.

  Args:
      df (pd.DataFrame): 가격 데이터프레임. 'Close' 컬럼이 필요합니다.
      period (int): 이동평균 기간.

  Returns:
      pd.Series: 계산된 EMA 값.
  """
  return df['Close'].ewm(span=period, adjust=False).mean()

# 20일 EMA 계산
df['EMA_20'] = calculate_ema(df, 20)
print(df[['Close', 'EMA_20']].head(30))

위 코드는 Pandas의 ewm() 함수를 사용합니다. ewm() 함수는 지수 가중 이동 평균을 계산합니다. adjust=False는 초기 EMA 값을 조정하지 않도록 설정합니다.

SMA와 EMA 비교

다음 표는 SMA와 EMA의 주요 차이점을 보여줍니다.

특징 SMA EMA
계산 방법 모든 가격에 동일한 가중치 부여 최근 가격에 더 큰 가중치 부여
반응 속도 가격 변화에 둔감함 가격 변화에 민감함
활용 장기 추세 파악에 유용 단기 추세 파악에 유용
노이즈 감소 효과적 SMA보다 덜 효과적일 수 있음
계산 복잡도 단순 SMA보다 약간 복잡함

이동평균선은 단독으로 사용하기보다는 다른 지표와 함께 사용하는 것이 좋습니다. 다양한 기간의 이동평균선을 함께 사용하여 추세를 분석할 수 있습니다. 다음 섹션에서는 다른 보조 지표를 계산하는 방법을 알아봅니다.

위로 스크롤