각 단계를 하나씩 살펴보겠습니다.
➊ 초기화 함수에서 얻어 온 주문 정보로 유니버스 중 이미 매매 주문이 접수된 종목이 있는지 확인합니다.
➋ 주문 접수한 종목이라면 체결될 때까지 대기합니다(여기서 접수 시간이 얼마나 지났는지 주문가와 현재 거래가 차이에 따라 주문을 취소하고 재접수하도록 로직을 수정해도 좋지만, 우리 프로그램에서는 대기하는 방법을 사용하겠습니다).
➌ 주문을 접수한 종목이 아니라면 초기화 함수 중 잔고 확인으로 보유한 종목인지 확인합니다.
➍ 보유하지 않은 종목이라면 매수 대상인지 조건을 확인합니다. 매수 대상이 아니라면 이 단계를 계속 반복하여 매수 신호를 확인합니다.
➎ 매수 조건에 해당하는 종목이라면 매수 주문을 접수합니다.
➏ 이미 보유한 종목이라면 매도 대상인지 확인합니다. 매도 대상이 아니라면 계속 반복하며 매도 신호를 확인합니다.
➐ 매도 조건에 해당한다면 매도 주문을 접수합니다.
지금까지 프로젝트 구조와 프로그램 동작 흐름을 알아보았습니다. 프로그램이 어떻게 동작할지 구상한 대로 코드를 만들어 시스템을 구축해야 하는 만큼 아주 중요한 부분입니다. 이 부분이 잘 이해되지 않으면 프로젝트 진행도 어려울 수 있으니 꼭 이해하고 다음 장으로 넘어가길 추천합니다.