본문 바로가기

한국투자증권 api

한국투자증권 API 개발 시 어려웠던 점

728x90

한국투자증권 API 개발과 관련해서 생각보다 많은 내용을 적게 되었습니다. 앞서서 작성한 내용들은 일반적이고 기본적인 내용들이라면 지금 작성하는 내용은 그 과정에서 제가 겪었던 어려움과 시행착오를 어떻게 해결했는지에 대한 과정의 내용입니다. 우선은 어려움부터 보실까요?

[한국투자증권 api] - 한국투자증권 API 통한 자동 매매 프로그램 만들기
[한국투자증권 api] - 한국투자증권 API 개발 레퍼런스
[한국투자증권 api] - 주식 자동 매매의 기본 구조 (업데이트 중...)

주식 매매는 어려운데 그 매매를 자동으로 하는 프로그램을 만드는 것은 더 어려워요..

 

한국투자증권 계좌 개설

개발을 결심하고 처음 마주했던 어려움은 저에게만 해당됐던 어려움일 수 있습니다. ㅠ_ㅠ 바로 한국투자증권 계좌를 만드는 일이었습니다. 약 2주 전에 비슷한 이유로 하나증권 계좌를 개설했는데 그 여파로 비대면 계좌를 즉시 생성 할 수 없었습니다. 20일 제한 기간이 있다는 것을 깜빡했습니다. 그래도 만들어야 했으므로 한국투자증권의 지점이 주변에 있는지 찾아봤고 다행히 40분 거리(?)에 있어서 방문하여 계좌를 개설할 수 있었습니다.

ISA 계좌 옮기기 실패 사례 +_+

더보기

사실 비대면 계좌를 만드는 과정을 먼저 시도했는데 다른 은행에 개설되어 있는 ISA 계좌를 옮기면 뭔가 바로 되는 것처럼 적혀있었습니다. 잘 알아보고 했어야 하는데 계좌 개설이 급해서 막 동의를 했습니다. 쉽게 계좌가 생성되었고 API 신청도 되고 국내 API 테스트도 잘 되는 것을 확인하면서 좋아했는데..

해외 주식 거래는 별도의 신청이 필요하다는 것을 알게 되었습니다. 계좌가 만들어졌으니깐 당연히 될 거라고 생각했는데 ㅋㅋㅋㅋ ISA 계좌로는 해외 주식 거래를 할 수 없다는 것을 알게 되었습니다. ISA 계좌의 특성상 당연한 거라는데 ISA 계좌를 잘 몰랐고 지금도 잘 모릅니다. 그냥 해외 주식 거래를 ISA 계좌로는 할 수 없다는 사실을 이번에 제대로 알게 되었습니다.
어쨌든 지점 방문해서 계좌 개설하고 ISA 계좌는 이전 은행으로 다시 되돌아갔습니다. (이 것도 이전 은행? 에서 전화오더니 동의하지 않으면 되돌아 간다고 안내를 주셨는데.. 하여튼 ISA 계좌는 특별한 계좌라서 더 그랬던 것 같습니다.)

하여튼 주식 거래는 항상 쉬운데 거래를 하기 위해서 계좌를 개설하고 HTS, MTS 설치하고 셋팅하는 과정이 참 어려운 것 같습니다. 그래도 만들었고 이를 통해 개발을 진행할 수 있었습니다.

 

모의투자 미지원

REST API는 postman 예제가 있었기 때문에 정말 수월했습니다. 데이터를 요청하고 받아오는 것도 바로 확인할 수 있고, postman을 통해 python 코드로 바로 변환 할 수 있기 때문입니다. 그런데 모의투자 미지원하는 기능들이 꽤 있었습니다. 크리티컬한 기능들은 아니긴 한데 확인하려면 실전투자 계좌에서 확인해야 하는 것이 불편했습니다. 실전투자 계좌에서 확인하는 것도 실제 매매를 하지 않는다면 전혀 문제가 없겠지만 심리적으로 쫄리는 마음과 상황이 불편했던 것 같습니다. 시간이 지나면 한국투자증권에서도 이런 점들을 보완해주지 않을까 기대해봅니다.

 

Websockets - 실시간 데이터 수신

다음으로 어려웠던 부분은 websockets을 통한 실시간 데이터 수신 이었습니다.

while True:
    try:
        data = await websocket.recv()
        await asyncio.sleep(0.5)

이 부분에서 계속 수신하는 로직이 수행되는데 어떻게 영향을 받지 않게 하면서 추가로 send 명령을 내릴 수 있도록 수정해야 할 것 같은데 방법을 못 찾았습니다. 이 부분은 websockets에 대한 이해가 떨어지기도 하지만 프로그래밍 언어에 대한 전반적인 이해가 부족해서 인 것 같습니다. 시간이 지나서 해결책을 찾게 되면 그 때 다시 업데이트를 해보겠습니다.

websockets 잘 모르겠다... 무한 루프 아닌가... 이벤트를 잘 연결하고... 쓰레드를.. 아이..씨..

 

매매 방법론 - 몰루?!

마지막으로 사용자가 원하는 매매 방법론에 대한 이해가 어려웠습니다. 제가 사용하는 방법론인 그리드 매매법에는 매수/매도에 대한 기법이 들어가 있지 않습니다. 제가 정한 값에 맞춰 매수/매도를 수행하기 때문입니다. 그러나 보통의 매매법은 여러가지 상황에 맞춰 움직이도록 설계되다 보니 조건값을 갖고 매수/매도를 의사결정 해야 합니다. 분봉 데이터를 취합하고 이평선을 놓고 불린저 밴드 등의 범위값을 기준으로 매수/매도 의사결정을 합니다. 기술적으로 조건값을 계산하는 것은 수식이 정해지므로 하면 되는데 왜 이 기법으로 매매를 하는 지에 대한 근본적인 궁금증이 있습니다. 그리고 아직 잘 해소가 안되고 있습니다. 주식 공부는 하면 할 수록 어려운 것 같습니다. ^^;; (오르고 내리는 건 반반이어야 하는데 왜 나는 항상 내리는 쪽에 서있는가?!!!)

모르겠어요.. 왜 오르고 내리는지.. 언제 사고 팔아야 하는지..

 

이 외에도 기타 등등 어려웠던 점이 더 많이 있었던 것 같습니다. 그래도 뒹굴면서 어떻게든 방법을 찾고 해결하는 것이 삶이지 않겠습니까? 다음으로는 어려웠던 것들에 대한 시행착오 과정과 대안들을 작성해보겠습니다. 파이팅!!

반응형