Innovate With Data

데이터로 더 큰 가치를 제공합니다.

맨땅에 프로그래밍/Python 복기장

datetime, date, timedelta 로 날짜 자동화 하기

데이터위자드 2023. 6. 7. 22:41
반응형

datetime date timedelta 활용하기

문제 인식 : datetime, date, timedelta를 이용하여 반복 작업 피하기

 

  주식 자동 거래 RPA를 만들어 활용하고자, yfinance 모듈을 이용하여 특정 종목 혹은 지수의 기간동안의 데이터를 수집하고 싶었다.

 

 먼저 pypi에서 yfinance 모듈의 가이드를 찾아보았다.

 

https://pypi.org/project/yfinance/

 

yfinance

Download market data from Yahoo! Finance API

pypi.org

 

다양한 설명중에 특정 종목의 기간별 데이터를 받아오는 예제를 확인하였다.

yfinance 특정 Ticker 의 History 받아오기

 

예제상에 나와있는 내용중, 'start'와 'end' 매개변수를 특정 날짜의 string 값으로 입력한다는 것을 확인하였다.

 

하지만, RPA상 매번 일일히 날짜를 새로히 입력할 수는 없는 법.

 

그래서 날짜에 대한 매개변수를 자동으로 입력하도록 하기 위해 datetime, date, timedelta 모듈을 사용하기로 하였다.

 

datetime, date, timedelta 예제로 주식 정보 가져오기 자동화

 

먼저, datetime 모듈에서 datetime, date, timedelta를 import하여 준다.

 

from datetime import datetime, date, timedelta
import pandas as pd
import yfinance as yf

 

pandas와 yfinance 모듈은 dataframe의 설정과 주식 데이터를 불러오기 위해 import 하였다.

 

 

위에 설명된 예시를 수정하여, 'SPY' 종목의 현재부터 과거 5년치 data를 모두 가져오도록 프로그래밍을 작성하였다.

 

    start = str(date.today() - timedelta(days=1825))   # years 매개변수는 없다?? 3년 = 1095, 5년 = 1825
    end = str(date.today())
    data = yf.download(['SPY'],start=start, end=end)

 

 특이한 점은, timedelta에서는 기본적으로 days(일수)를 기준으로 설정하도록 되어있다. (Years는 없다. 아마도 datetime이기 때문이지 않을까 한다...)

반응형