해당 종목이 매수 대상인지 확인하면서 매수 주문을 접수하는 데 사용할 함수명은 check_buy_signal_and_order입니다. 보유한 종목이 매도 대상인지 확인하고 주문을 접수하는 과정은 매도 신호 확인 함수(check_sell_signal)와 주문 함수(order_sell)로 구분했지만 매수는 이와 다르게 check_buy_signal_and_order라는 하나의 함수로 구성하겠습니다.
이를 두 개로 나누어 매수 신호 확인 함수 및 매수 주문 함수로 구분한다면 현재 보유한 예수금으로 매수할 수 있는 주문 가능 수량 계산 로직이 중복되는 문제가 있어 하나의 함수로 구성했습니다. 하지만 코드를 중복하는 것이 문제일 뿐 함수 두 개로 구분하여 구현해도 상관없습니다.
그럼 이제 check_buy_signal_and_order 함수를 구현해 보겠습니다. 매수 조건에서 설명했듯이 매수는 15시가 넘은 장 종료 시점부터 되므로 시간을 체크할 수 있는 함수를 time_helper.py 파일에 작성합니다.
time_helper.py
(...)
def check_adjacent_transaction_closed_for_buying(): ------ 현재 시간이 장 종료 부근인지 확인하는 함수(매수 시간 확인용)
now = datetime.now()
base_time = now.replace(hour=15, minute=0, second=0, microsecond=0)
end_time = now.replace(hour=15, minute=20, second=0, microsecond=0)
return base_time <= now < end_time