첫 번째 방법은 Kiwoom 클래스 내 _on_chejan_slot에서 매도 주문 체결이 완료될 경우 self.kiwoom.balance에 해당 종목의 키를 삭제하거나 매수 주문 전에 Kiwoom 클래스의 get_balance를 다시 호출해서 최신 상태를 확인합니다. 두 번째 방법은 self.kiwoom.balance의 전체 종목 수를 계산한 후 self.kiwoom.order에서 매도 주문 접수 종목 수를 뺍니다. 두 번째 방법이 비교적 간단하다는 장점이 있어 이 방법을 이용하여 실제 보유 종목 수를 계산하겠습니다.
여기서 좀 더 생각해 보면 매수에 투입할 금액을 계산하려면 잔고 종목 수를 세는 것뿐만 아니라 현재 매수 주문을 접수한 종목 수도 계산해서 잔고 종목 수에 합해야 합니다. 보유 종목 수를 세는 목적은 전체 예수금에서 이미 투입된 금액이 얼마 정도인지 계산하기 위해서입니다. 마찬가지로 아직 체결이 완료되지 않았더라도 매수 주문을 접수한 경우도 이미 금액을 투입했다는 점에서 보유 종목 수로 계산해야 합니다.
이 설명대로 프로그램을 만들 수 있게 매도 주문을 접수한 종목을 제외한 실제 보유 종목 수를 구하는 get_balance_count 함수와 매수 주문 종목 수를 계산하는 get_buy_order_count 함수를 만들어 보겠습니다(RSIStrategy.py 파일의 check_buy_signal_and_order 함수 다음에 다음 코드를 입력합니다).