FinanceDataReader Tutorial

차트 그리기와 활용하기

2021 FinanceData.KR | facebook.com/financedata

FinanceDataReader 설치 (구글 Colab 경우)

In [1]:
!pip install -q finance-datareader

FinanceDataReader는 Bokeh 기반의 캔들 차트를 지원합니다.

구글 Colab에는 이미 Bokeh가 있기 때문에 별도의 설치는 필요하지 않습니다.

로컬 PC의 경우, bokeh가 설치되어 있지 않아면 명령창에서 다음과 같이 bokeh를 설치하세요

pip install bokeh

FinanceDataReader.chart

FinanceDataReader의 chart 객체를 사용하여 차트를 그립니다.

다음은 2021-01-01 ~ 2021-02-15 (1.5개월)간의 삼성전자 캔틀차트 입니다.

fdr.DataReader()에서 가져온 가격 데이터(df)를 fdr.chart.plot(df)에 전달해주면 됩니다. 차트 내에서 확대/축소, 이미지 저장, 이동 등을 자체지원합니다.

In [2]:
import FinanceDataReader as fdr

df = fdr.DataReader('005930', '2021-01-01', '2021-02-15')
fdr.chart.plot(df)

fdr.chart.plot() 파라미터

fdr.chart.plot()는 다양한 파라미터가 있으며, 원하는 값들을 지정할 수 있습니다.

In [3]:
fdr.chart.plot(df, title='삼성전자(005930)')

fdr.chart.plot(df) 에 지정 가능한 인자와 기본값

  • width: 차트의 너비를 지정합니다 (pixel값) (기본값: 800)
  • height: 차트의 높이를 지정합니다 (pixel값) (기본값: 480)
  • volume_height: 0.3, # 30% size of figure height
  • recent_high: 이전 고점을 표시할지 여부(기본값: False)
  • volume: 거래량 막대를 표시할지 여부 (기본값: True)
  • title: 제목을 지정합니다. 차트 왼쪽 상단에 표시됩니다 (기본값: '')
  • ylabel: y축의 레이블을 지정합니다. 차트 왼쪽에 표시됩니다 (기본값: '')
  • moving_average_type: 이동평균을 표시합니다. 'SMA', 'WMA', 'EMA', 'None'중 하나를 지정할 수 있습니다. (기본값: 'SMA')
  • moving_average_lines: 이동평균선의 데이터 개수와 몇개캔들을 사용할지 지정합니다. (기본값: (5, 20, 60) - 즉, 5일, 20일, 60일을 표시합니다)
  • color_up: 상승캔들의 색상 (기본값:'red')
  • color_down: 하락캔들의 색상 (기본값:'blue')
  • color_volume_up: 전일거래량 대비 상승 막대의 색상 (기본값:'red')
  • color_volume_down: 전일거래량 대비 하락 막대의 색상 (기본값:'blue')

moving_average_type은 이동평균선의 종류를 지정합니다. 종류는 다음과 같습니다.

  • 'SMA'(Simple Moving Average, 단순 이동평균) - 기본값
  • 'WMA'(Weighted Moving Average, 가중 이동평균)
  • 'EMA'(Exponential Moving Average, 지수 이동평균)
  • 'None'(표시하지 않음)

moving_average_lines는 이동평균선의 데이터 개수와 몇개캔들을 사용할지 튜플값으로 지정합니다. 예를 들어, (5, 20)으로 지정하면 5일 이동평균선과 20일 이동평균선 2개 선이 표시됩니다.

이동평균선의 색상 순서는 다음과 같습니다. (참고로 색상의 tab의 의미는 tablue 표준색상을 의미합니다)

['tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan']

거래량 막대의 색상은 가격의 상승 혹은 하락(시가대비 종가)을 표시하는 것이 아니라, 전일 거래량 대비 상승과 하락을 표현합니다.

차트 설정 다루기

차트 그리기에 사용되는 기본 값을 바꿀 수 있습니다.

예를 들어, 차트의 기본 크기를 지정하고 싶은 경우 다음과 같이 fdr.chart.config() 를 사용하여 지정할 수 있습니다.

fdr.chart.config(width=400, height=200)

title, width, height, volume 등 plot()에 가능한 설정을 지정할 수 있습니다.

In [4]:
fdr.chart.config(title='삼성전자(005930) 2021년')
fdr.chart.config(width=400, height=200)
fdr.chart.config(volume=False)

fdr.chart.plot(df)

다음과 같이 dict를 사용하여 다양할 설정을 한번에 지정할 수 있습니다

In [5]:
config = {'title':'fdr.chart.config()를 사용하여 설정을 한번에 지정할 수 있습니다', 
          'width': 600, 
          'height': 300,
          'volume': True,
}

fdr.chart.config(config=config)
In [6]:
fdr.chart.plot(df)

모든 설정을 초기 기본 설정으로 되돌리려면 config(reset=True)를 지정합니다.

fdr.chart.config(reset=True)
In [7]:
fdr.chart.config(reset=True)
df = fdr.DataReader('000660', '2021')

fdr.chart.plot(df)