더북(TheBook)

함수 코드를 하나씩 살펴보겠습니다. 첫 줄은 유니버스에 속한 모든 종목을 대상으로 일봉 데이터를 얻어 오고자 for 문을 이용한 반복문을 수행합니다. 그다음 print 문은 진행 상태를 나타내는 것으로, 종목 200개 중 현재 몇 번째 종목의 일봉 데이터를 조회 및 저장하고 있는지 나타냅니다.

그다음 if 문부터가 사례 에 대한 코드입니다. if의 조건절은 두 가지가 있는데 하나는 check_transaction_closed() 함수 결과고, 또 하나는 not check_table_exist(self.strategy_name, code) 결과입니다. check_transaction_closed() 함수는 이름 그대로 현재 시간이 장 종료 이후인지 확인하는 역할(장 종료하면 True 반환)을 하며, 사례 이 장 종료 이후에만 수행되어야 하기에 필요합니다.

장 종료 및 장 중인지 확인하는 함수들은 나머지 사례에서도 사용하므로 미리 만들어 놓겠습니다. util 패키지에 미리 만들어 둔 time_helper.py 파일에 다음 코드를 추가해 보겠습니다.

time_helper.py

from datetime import datetime

def check_transaction_open(): ------ 현재 시간이 장 중인지 확인하는 함수
    now = datetime.now()
    start_time = now.replace(hour=9, minute=0, second=0, microsecond=0)
    end_time = now.replace(hour=15, minute=20, second=0, microsecond=0)
    return start_time <= now <= end_time

def check_transaction_closed(): ------ 현재 시간이 장이 끝난 시간인지 확인하는 함수
    now = datetime.now()
    end_time = now.replace(hour=15, minute=20, second=0, microsecond=0)
    return end_time < now
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.