본문 바로가기
🤑 어디까지나 개인생각/금융공부

python으로 주식시장 휴장일, 거래일 정보를 수집하기 ( krx, us - finter 패키지)

by 소리331 2024. 3. 8.
반응형
list(iter_days(20231223, 20231231, exchange="krx", date_type=3))

파이썬으로 거래일 정보를 가져올 수 있는 패키지를 발견했다. 

! pip install finter

퀀팃이라는 스타트업에서 만든 퀀트 연구 코딩 인터페이스 인데, 거래일 휴장일 기능을 무료로 제공한다고 해서 가져왔다. 

보통 pandas bdate는 미국 영업일에 대해서만 있었는데, 한국거래소랑 미국 가능한 캘린더 기능은 나쁘지 않은 것 같다.

( 그마저도 주식시장 휴일이 갑자기 나온 경우 없을 때도 있다 )

코드를 호출해 보니 현재 연도 +1년에 대한 데이터를 제공하는 것 같다

import

from finter.framework_model.calendar import (
    iter_trading_days, iter_holidays, iter_days, TradingDay, Code
)

 

code usage

>>> list(iter_trading_days("20240101", "20240110"))

[datetime.datetime(2024, 1, 2, 0, 0), datetime.datetime(2024, 1, 3, 0, 0), datetime.datetime(2024, 1, 4, 0, 0), datetime.datetime(2024, 1, 5, 0, 0), datetime.datetime(2024, 1, 8, 0, 0), datetime.datetime(2024, 1, 9, 0, 0), datetime.datetime(2024, 1, 10, 0, 0)]
  • 이는 거래일에 대해 datetime 객체를 출력한다.

 

>>> list(iter_holidays(20231223, 20231231, exchange="krx"))

[datetime.datetime(2023, 12, 25, 0, 0), datetime.datetime(2023, 12, 29, 0, 0)]
  • 휴장일에 대해 datetime 객체를 출력한다. 공식 문서를 참고해보니까 해당 함수에는 주말은 포함하지 않는다.

 

list(iter_days(20231223, 20231231, exchange="krx", date_type=3))
  • 주말은 이렇게 가져오면 된다. 

 

# 아래 코드는 모두 영업일 기준이다! 그냥 날짜가 아니라 영업일!!!

>>> TradingDay.prev(20240101, exchange="us") # 1영업일 전 거래일을 가져옴
datetime.datetime(2023, 12, 29, 0, 0)

>>> TradingDay.next(20240101, exchange="us")
datetime.datetime(2024, 1, 2, 0, 0)

>>> TradingDay.last_close(datetime.now(), exchange="krx") # this document is wrote at 20240307 17:42
datetime.datetime(2024, 3, 7, 0, 0)

>>> TradingDay.upcoming_close(datetime.now(), exchange="krx") # this document is wrote at 20240307 17:42
datetime.datetime(2024, 3, 8, 0, 0)

>>> TradingDay.day_delta("20240101", n=-5, exchange="krx")
datetime.datetime(2023, 12, 21, 0, 0)

>>> TradingDay.day_delta("20240101", n=-5, exchange="us")
datetime.datetime(2023, 12, 22, 0, 0)
  • 나는 개인적으로 TradingDay 패키지가 맘에 들었다 ㅋ.
  • 여기서 특히 day_delta 함수가 맘에 드는데, 이게 있으면 이런 것들을 할 수 있다. 
    • 주식 시장 데이터가 정확히 100개가 쌓이는 지점을 날짜 index 로 찝기
      (사실 이건 그냥 iloc으로 -100 찍어도 되는데, dropna를 하면 데이터의 의도가 왜곡되는 경우가 있어서 이럴 때 유용할 것 같다 )
    • 그리고 last_close나 upcoming_close 같은 것도 장종료 알리미 같은 걸로 활용할 수 있을듯? ㅋ

 

데이터 더 주쇼!  연구기관이 아니면 데이터에 접근하기 힘든 세상...

 

인터넷에 휴장일 블로그 글 많던데,,, 이거 써서 뭔가 문서를 양산(?) 해보아야겠다 홍홍 

(아숩게도 티스토리 api는 2월 종료...쥬륵...)

 

참고자료

 

Calendar - Quantit - Finter

[datetime.datetime(2024, 1, 2, 0, 0), datetime.datetime(2024, 1, 3, 0, 0), datetime.datetime(2024, 1, 4, 0, 0), datetime.datetime(2024, 1, 5, 0, 0), datetime.datetime(2024, 1, 8, 0, 0), datetime.datetime(2024, 1, 9, 0, 0), datetime.datetime(2024, 1, 10, 0,

quantit.gitbook.io

 

 

반응형

댓글