본문 바로가기

시스템 트레이딩/트레이딩 이야기

[주식투자] 키움 OpenAPI 서버 문제 발생(?) - TR 조회 응답이 없을 경우에 대한 대응 처리

 안녕하세요. 이노도리입니다. 오늘은 새해 첫 출근날이었습니다 ㅎㅎ 출근하니 사람들이 많이 없더라구요. 다들 휴가를 가서 돌아오지 않았었습니다. 출근한 동료는 웰링턴에서 로토루아, 오클랜드까지 운전하고 어제 도착했다고 합니다. ㅎㅎ 정말 엄청난 운전을 한 것 같더라구요. 피곤함이 저절로 느껴졌습니다.

새해가 시작되고 또 다시 우리는 시장에 참여합니다 ㅎㅎ 꾸준히 꾸준히!

 그리고 오늘은 장이 10시에 시작하는 관계로 회사에서 조금 일찍 퇴근하고 트레이딩봇이 제대로 동작하는지 지켜보고 있었습니다. 그리고 장이 시작하자마자 OpenAPI의 TR 조회가 실행되었는데 황당하게도 조회 명령은 보내졌는데 서버에서 응답이 없었습니다. 아마도 장 극초반에 주문이 폭증하다 보니 서버에 부하가 걸린 것 같았습니다. 이렇게 또 하나의 버그를 발견하고 만 걸까요? 실제로 OpenAPI의 로그를 분석해보니 TR 조회 명령은 서버로 보내졌지만 서버로부터 회신이 오지 않은 것이었습니다. 이런 경우는 어떻게 처리를 해줘야 할까 고민하다가 TR 조회 명령을 보내고 조금 기다린 뒤 기대하는 회신이 오지 않으면 다시 TR 조회 명령을 보내도록 수정해주었습니다. (일단 이렇게 수정을 해주었지만 다시 내일 장에서 제대로 동작하는지 확인해봐야 합니다.)

 그리고 의심스러운 것은 이 일이 새로운 신규봇에서만 발생하고 있다는 건데요, 신규 계정은 불이익 같은 거 있는지 의심이 모락모락 일어납니다.(나쁜 키움!!) 농담이구요 ㅎㅎ 뭐 API가 이 정도까지 동작하는 것에 만족하고 있습니다.

 아래는 기존에 동작하던 방식을 살짝 수정해 준 것입니다. TR 조회가 제대로 동작하지 않으면 확인 후 재요청을 하도록 수정해 주었습니다. 그럼 내일을 또 기다려 봐야겠네요 :)

원래 코드는 이런 방식이었습니다. 조금 순진했죠? 무조건 TR 조회가 회신이 올거라고 본거니까요.

 

이런 방식으로 수정해주었습니다. 혹시라도 TR 조회를 했는데 5초가 지나도 회신이 없으면 재요청을 하도록 했습니다.

 

 그나저나 오늘 장이 정말 미친 것 같아요. 코스피가 2% 상승이라니 오랜만에 굉장한 장인것 같네요. (하지만 왜 저는 2%를 벌지 못했을까요? 엉엉 ㅜㅜ)