3.13 주문 정보 얻어 오기
주문을 접수하거나 체결이 수행되면 _on_chejan_slot 함수로 응답을 받아 order 딕셔너리에 저장하여 주문 정보와 체결 상태를 확인할 수 있었습니다. 그러나 이는 주문이 접수되고 체결되는 순간에 _on_chejan_slot 함수가 동작하여 데이터를 order에 저장하는 것이기 때문에 가능했습니다. 주문 접수/체결 이후 프로그램을 재실행하면 접수/체결할 때만 호출되는 _on_chejan_slot이 동작하지 않아 이미 접수/체결된 주문 정보가 order에 저장되지 않을 것입니다. 이렇게 되면 접수한 주문 자체를 인지하지 못한 문제가 발생할 수 있으므로 프로그램이 실행될 때 TR을 이용하여 주문 정보를 얻어 와야 합니다.
여기서 사용할 TR은 OPT10075, ‘미체결 요청’입니다. TR 이름이 미체결 요청이지만, 체결 여부와 상관없이 당일 접수했던 전체 주문을 확인할 수 있습니다.
그러면 TR(OPT10075)을 이용하여 주문 정보를 조회해 와야 하는 이유를 좀 더 살펴보겠습니다. 다음 예시는 프로그램이 실행되고 바로 매수 주문을 접수하는 과정을 거친다고 가정해 보겠습니다.
➊ 프로그램 실행 > ➋ 주문 접수 > ➌ _on_chejan_slot 함수 실행 > ➍ order 데이터 저장 > ➎ 프로그램 종료 상황 발생 > ➏ 프로그램 재실행 > ➐ 재주문 > ➑ _on_chejan_slot 함수 실행 > ➒ order 데이터 저장