Lala's tower

카카오 챗봇으로 FinanceDataReader 조회하기

카카오 챗봇으로 FinanceDataReader 조회하기

2024-05-26 18:37:10

FinanceDataReader 를 이용하면 주가를 조회하기 쉽습니다만 개발자가 아니면 이것도 어렵습니다. 카카오톡으로 조회를 할 수 있다면 더욱 쉽게 이용가능하겠습니다. 카카오 챗봇으로 FinanceDataReader 데이터를 조회하는 예제를 정리하였습니다.

카카오 챗봇으로 FinanceDataReader 실행 결과

FinanceDataReader 조회하는 파이썬 코드

flask를 이용하여 특정 종목의 최근 종가 조회하는 파이썬 코드입니다.
finance-datareader 패키지를 미리 설치해야합니다.
터미널에서 아래를 실행하시면 됩니다.

pip install Finance-DataReader

# 카카오 챗봇으로 FinanceDataReader 조회하기
#pip install Finance-DataReader
import FinanceDataReader as fdr
from datetime import datetime, timedelta

def get_stock_code_by_name(stock_name):
    # 한국 상장 기업 목록 가져오기
    stock_list = fdr.StockListing('KRX')
    # 종목명을 기준으로 종목 코드 찾기
    stock_code = stock_list.loc[stock_list['Name'] == stock_name, 'Code'].values
    if len(stock_code) == 0:
        raise ValueError(f"종목명을 찾을 수 없습니다: {stock_name}")
    return stock_code[0]

def get_recent_closes(stock_name):
    # 종목명을 종목코드로 변환
    stock_code = get_stock_code_by_name(stock_name)
    
    # 오늘 날짜 구하기
    today = datetime.today().strftime('%Y-%m-%d')
    # 10일 전 날짜 구하기
    ten_days_ago = (datetime.today() - timedelta(days=10)).strftime('%Y-%m-%d')

    # 주어진 종목의 최근 10일간 주식 가격 데이터 로드
    df = fdr.DataReader(stock_code, ten_days_ago, today)

    # 최근 10일간 종가 구하기
    recent_closes = df['Close'][-1]
    recent_date = df.index[-1]
    recent_date = recent_date.strftime('%Y-%m-%d')

    return recent_closes, recent_date

# 예시: 삼성전자의 최근 10일간 종가 데이터 가져오기
stock_name = '삼성전자'
recent_closes, recent_date = get_recent_closes(stock_name)
print(recent_closes)
print(recent_date)



실행하면 아래 결과가 보여집니다. (물론, 실행하시는 일자에 따라 바뀝니다.)

75900
2024-05-24

카카오 챗봇으로 FinanceDataReader를 연동하도록 스킬과 시나리오 설정

스킬 설정

스킬을 추가하고 제목에 '주가를 알려줘'를 입력합니다.
URL에는 goorm preview에서 확인된 내용에 /close를 붙입니다.
저장합니다.

시나리오를 설정

시나리오를 추가합니다.
블록 이름에 "주가를 알려줘"라고 입력합니다.
"주가는?"
"주가를 알려줘"
를 추가해 줍니다.
각각의 파라미터 설정은 스킬 설정에서 추가한 '주가를 알려줘'를 선택합니다.
필수파라미터에 파라미터명을 'codename'라고 입력합니다.
값에는 '$codename'라고 입력합니다.
'되묻기 질문' 버튼을 눌러
'어떤 종목의 주가가 궁금하신지요?'
라고 입력합니다.

이제 저장하고 테스트봇에서 "주가는?" 을 입력하면
'어떤 종목의 주가가 궁금하신지요?'
라고 챗봇이 답합니다.
'삼성전자'라고 입력하면 위 결과화면이 확인됩니다.

FinanceDataReader 안내서

파이썬으로 팩터투자 (퀀트 투자)
퀀트를 위한 파이썬FinanceDataReader
오늘자 골든크로스/데드크로스 종목 추출 파이썬 코드
퀀트를 위한 파이썬 이동 평균선
파이썬으로 팩터투자 (퀀트 투자)
차트 기반 퀀트 투자
퀀트의 전설들과 실패한 유명인