1-2. 웹 스크레이핑을 통한 일별 시세 분석하기

2021. 5. 29. 20:56Financial Analysis

이번 장에서는 1-1에서 만든 함수로 추출한 데이터를 matplotlib으로 분석하고, 캔들차트 그리는 법을 알아보겠다.

    sise_url = 'https://finance.naver.com/item/sise_day.nhn?code=293490'
    total_data = read_total_data(sise_url, last_page)

상장한지 얼마안된 카카오게임즈 주식을 분석해보자.

    total_data = total_data.dropna()
    total_data = total_data[::-1]

혹시 있을지 모르는 null 값을 지우고, 최근순으로 정렬되어있는 인덱스를 역순으로 정렬하여 오래된 순으로 정렬하였다.

    spl_data = total_data.iloc[0:30]

    plt.title("Kakao Games Stock")
    plt.plot(spl_data.index, spl_data['종가'])
    plt.xticks(rotation=45)
    plt.xlabel('Date')
    plt.ylabel('Stock')
    plt.grid(True)
    plt.show()

상장일로부터 30일가량의 데이터를 pyplot을 통해 나타내었다.

맥을 못추고있는 모습이다

캔들차트


(FinanceAnalysis) C:\Users\----\OneDrive\바탕 화면\FinanceAnalysisProject>pip install --upgrade mplfinance

캔들차트를 그리기 위해 mplfinance를 설치한다.

    import mplfinance as mpf
    
    total_data = total_data.rename(columns={'시가':'Open','고가':'High','저가':'Low','종가':'Close','거래량':'Volume'})
    total_data.index = pd.to_datetime(total_data.index)
    
    kwargs = dict(title = 'Kakao Games Candle Chart', type = 'candle',
                  mav=(2,4,6), volume=True, ylabel = 'ohlc candles')
    mc = mpf.make_marketcolors(up='r', down='b', inherit=True)
    s = mpf.make_mpf_style(marketcolors=mc)
    mpf.plot(spl_data, **kwargs, style=s)

total_data의 컬럼값을 Rename하고, Str 타입의 인덱스를 판다스의 to_datetime 함수로 Datetime 타입으로 변경하였다.

그리고 mplfinance의 plot 함수로 거래량을 포함한 캔들차트를 그려보았다.

카카오게임즈 캔들차트