본문 바로가기
Quant Stock

엔벨로프 차트 만들기 - 파이썬 코드 (LG전자 데이터 가져오기, FinanceDataReader)

by quantWhale 2023. 3. 17.
반응형

안녕하세요. 투자의 확률을 분석하는 투자자 인천고래입니다.

오늘은 파이썬을 이용한 엔벨로프를 차트로 만들어보는 시간을 가져보도록 하겠습니다.

주가는 이전과 같이 엑셀파일을 로드하는 방식이 아닌 FinanceDataReader를 사용하도록 하겠습니다.

 

엔벨로프 차트 만들기

오늘 만들고자 하는 프로그램의 기본적인 틀은 아래와 같습니다.

  1. LG전자 주식 정보 가져오기 - FinaceDataReader
  2. 차트 그리기 - matplotlib
  3. 엔벨로프 계산하기 - pandas

핀치 줌아웃을 하면 그림 및 텍스트를 크게 볼 수 있습니다.

import FinanceDataReader as fdr
import matplotlib.pyplot as plt
import pandas as pd

# 한글 폰트 설정
plt.rcParams['font.family'] = 'Malgun Gothic'

# LG전자 주식 정보 가져오기
lg_stock = fdr.DataReader('066570', '2021-01-01') # 기간 설정에 따라 날짜를 변경하십시오.

# 엔벨로프 계산
lg_stock['MA'] = lg_stock['Close'].rolling(window=135).mean()
lg_stock['Upper_3'] = lg_stock['MA'] * (1 + 0.03)
lg_stock['Lower_3'] = lg_stock['MA'] * (1 - 0.03)
lg_stock['Upper_7'] = lg_stock['MA'] * (1 + 0.07)
lg_stock['Lower_7'] = lg_stock['MA'] * (1 - 0.07)

# 차트 그리기
fig, ax = plt.subplots(figsize=(12, 8))

ax.plot(lg_stock.index, lg_stock['Close'], label='LG전자')
ax.plot(lg_stock.index, lg_stock['MA'], label='MA (135)')
ax.plot(lg_stock.index, lg_stock['Upper_3'], linestyle='--', label='Upper 3%')
ax.plot(lg_stock.index, lg_stock['Lower_3'], linestyle='--', label='Lower 3%')
ax.plot(lg_stock.index, lg_stock['Upper_7'], linestyle='--', label='Upper 7%')
ax.plot(lg_stock.index, lg_stock['Lower_7'], linestyle='--', label='Lower 7%')

ax.set_title('LG전자 주식 차트 및 엔벨로프')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.legend()

plt.show()

코드 내용을 살펴보면 60일선이나 120일선이 아닌 135일선을 사용하였고 (주봉에 특화된 일봉에서의 수치)

상한선과 하한선 2개의 선을 만드는 것이 아닌 3%, 7%에 해당하는 각각의 상한선 하한선을 만들었습니다.

 

30% 상한가룰에서도 이전의 15% 상한가 룰이 있을 때와 마찬가지로

3%에서 저항을 맞는 경우와 7%에서 저항을 맞는 경우가 많기 때문에 

2가지 모두 다 상한선과 하한선을 표시하여 주가의 흐름을 파악하기 위함입니다.

 

엔벨로프 차트 결과물

위의 코드를 실행하면 아래와 같은 결과물을 얻을 수 있습니다.

엔벨로프가 적용된 LG전자 차트

 

오늘은 간단한 파이썬 코드를 이용해서 데이터를 불러오고 엔벨로프가 적용된 차트를 만들어보았습니다.

 

오늘도 제 글을 읽어주신 모든 분들께 감사의 말씀을 드립니다. 감사합니다.

반응형
-

댓글