미국 주식 RPA를 만들었다. 하지만, Summer time으로 시간이 주기적으로 변경되었다.
안녕하세요? 데이터위자드입니다.
해외 주식의 열기가 어느 때보다 뜨거운 요즘입니다. 저 역시 모 증권사의 API와 Python을 이용하여 미국 주식투자 RPA를 작성하여 운영 중인데요. 처음 미국 주식시장 RPA를 구상하면서 한 가지 문제에 직면하게 되었던 경험을 바탕으로 오늘 이야기를 하도록 하겠습니다.
미국 주식 투자 RPA든 국내 주식 투자 RPA든 기본적으로 큰틀에서,
- Azure 가상 머신으로 특정 시간대 RPA 프로그램 자동으로 실행
- 주식 투자 RPA는 장이 열리는 시간 ~ 장이 마감되는 시간까지 운영
로 운영되게 구상하였습니다.
국내 주식 시장 같은 경우는 일광시간 절약제(소위 Summer time)이라는 것이 없기에 시간이 항시 고정되어 있으나, 미국 같은 경우는 Summer time이 매해 주기적으로 적용과 미적용이 반복되다 보니, 미국 주식시장 시간 또한 주기적으로 변경되는 특성이 있었습니다.
美 뉴욕 증시 개장 1시간 앞당겨져요 (chosun.com)
따라서, 매 RPA 실행 시 해당일이 Summer time인지 아닌지를 알아봐야 할 필요가 있었습니다. (물론, Summer time이든 아니든 빠른 시간대를 기준으로 RPA를 구성하면 되지만 어쨌든 해결하고 싶었습니다. 😆)
그 문제를 해결하기 위해 사용한 Python 라이브러리는 'pytz'입니다.
pytz를 한마디로 소개하자면, 전 세계의 시간대(Timezone)에 대해서 특화된 기능을 제공하는 라이브러리입니다.
설치는 간단히,
pip install pytz
으로 해줍니다.
그런 후 즐거운 마음으로 코딩을 해주시면 되겠습니다.
먼저 pytz와 datetime을 import 해줍니다.
다음은, Newyork 현지시간을 가져와 UTC 시간대와 시차를 계산하는 로직을 구현해 봅니다. 순서는 다음과 같습니다.
- pytz 라이브러리를 이용해 뉴욕 현지 시간을 가져오기
- 뉴욕 현지 시간과 UTC 시간대의 시차를 계산
- 시간이 4시간이 차이 난다면, 현재 미국 내 Summer time이 적용되었다고 판단
- Summer time이 적용되었다면, Slack으로 푸시알람 및 RPA 운영 시간대 변경
밑그림도 작성하였으니, 순서도에 따라 Python을 코딩해 줍니다.
간단하게 미국 Summer time을 알아보는 로직을 작성하였습니다.
잠깐 TMI 드리자면,
UTC는 Coordinated Universal Time으로 통상적으로 그리니치 천문대 시간(GMT)과 동일한 의미로 사용되곤 합니다. (정확히는 GMT와 UTC는 다른 개념입니다.)
또한, 예제에서는 미국 현지 시간을 이용해 미국 내 일광시간절약제 적용 여부를 확인해 보았으나, 응용한다면 유럽이나 다른 국가의 서머타임 여부도 확인가능하실 것이라 생각됩니다.
pytz.timezone('America/New_York')
매개변수 'America/New_York'만 변경해 주시면 되겠네요.
해당 매개변수에 대한 내용은 pytz 페이지에서 확인하시기 바랍니다.
참고하시어, 즐거운 데이터 생활 되시길 바랍니다.
* 본 포스팅에서 언급된 라이브러리, 단체는 필자와 무관함을 알립니다.
도움이 되셨다면, 왼쪽 아래 '💗' 클릭 부탁드립니다. 감사합니다.
'맨땅에 프로그래밍 > Python 복기장' 카테고리의 다른 글
Python으로 PDF 파일 암호 설정하기(feat. PyPDF) (0) | 2024.06.04 |
---|---|
Python으로 반올림, 올림, 내림 처리하기(feat. round, ceil, floor) (0) | 2024.04.29 |
List 자료형으로 Dataframe 만들기, 열(Columns) 복사하기, 열에 반복데이터 넣기 (0) | 2024.04.13 |
Dataframe에서 특정 조건을 만족하는 행만 추출하기(Feat. Pandas) (0) | 2024.04.04 |
Python으로 적정 원달러 환율 구하기(feat. 달러 투자 무작정 따라하기) (0) | 2024.03.27 |