파이썬, 키움 openAPI로 자동매매 구현하기 Step 1 (2023 ver.)

본 글에선 키움증권을 이용한 자동매매 투자를 시작하기 위해, 키움 openAPI를 사용 신청하는 방법을 소개한다.

여기서 나오는 과정을 모두 끝낸다면 당신에게 모의투자 계좌가 하나 만들어져 있을 것이고, 자동매매를 시작하기 위한 기반 환경이 모두 갖추어져 있을 것이다. 누구나 따라할 수 있고, 이 과정을 모두 끝내는 데 길면 하루 정도, 짧으면 몇 시간 정도가 걸릴 것이다.

키움 openAPI는 국내에서 가장 널리 쓰이는 증권 API 중 하나이다. 일단 API를 공짜로 쓸 수 있고, 그나마 가장 접근이 쉽기 때문이다. 읽으면서 천천히 따라하다보면 어렵지 않게 시작할 수 있을 것이다.


시작하기 전에 확인해야 할 점 2가지

– 윈도우 운영체제인가?

당신은 당신의 컴퓨터가 “윈도우 운영체제인지” 확인해야 한다. 참고로 Mac OS 안되고, 리눅스 OS도 안 된다. 당장 키움증권에서 키움 OpenAPI의 개발 환경이 “Windows” 운영체제라고 명시해놓고 있다

당신이 사용하는 언어가 파이썬이든 C#이든 나발이든 그건 크게 문제되지 않지만, 이 운영체제라는 부분은 상당히 중요하다.

당신이 쓰는 머신이 윈도우 운영체제를 기반으로 한 데스크탑(혹은 랩탑, 서버 등)인지 확인해야 한다. 사실 대부분의 한국 사람들은 윈도우를 쓰겠지만, 필자의 경우 주로 맥북을 사용했어서 새로운 머신을 하나 구비해야 했다(…)

– 키움증권에 개설된 계좌가 있는가?

당연히 투자를 하려면 계좌가 있어야 한다. 모의투자 계좌여도 무방하다. 일단 만들어야 시작을 할 수가 있다.

요즘은 세상이 좋아 핸드폰 하나만 있으면 계좌 하나를 금방 뚫을 수 있다. “키움계좌개설” 앱을 다운로드 받아서 계좌를 하나 뚫어두자.


키움 openAPI 사용신청하기

준비가 되었다면, 우선 키움증권 홈페이지의 Open API+ 메뉴에 들어간다. 당신은 키움 openAPI를 무작정 바로 쓸 수 없고, 키움증권 홈페이지에서 사용 신청을 먼저 해야 한다.

키움 openapi

링크에 들어가면 이런 화면이 나올 것이다. 1단계 아래에 있는 사용 신청하러 가기 버튼을 눌러야 한다.

이 때 당신은 로그인이라는 과정을 맞닥뜨리게 될 것이다. 그렇다. 당신은 회원가입을 해야 한다. 심지어 공동인증서까지 필요하다. (증권 사이트의 정말정말 귀찮은 점이다… 어쩔 수 없다)

첫 단계부터 난이도가 꽤 높지만 이게 가장 어려우니 여길 통과하면 나중엔 수월할 것이다. 로그인 하고, 1단계 사용신청을 끝내도록 하자. 참고로 사용신청이 승인되기까지 보통 하루 정도 걸린다. 편안한 마음으로 하루 자고 일어나서 다음 단계를 진행해주자.


키움 openAPI 다운로드 및 실행, 버전 처리

키움 open api+

이후 2단계의 키움 OpenAPI+ 모듈 다운로드를 클릭해서 다운로드 받아준다. 이건 버튼만 누르면 바로 된다

그 아래 3단계의 KOA Studio 다운로드까지 같이 진행해준다.

C:/openapi

여기서 중요한 건 다운로드 위치이다.

OpenAPI라는 이름의 폴더가 반드시 C 드라이브 안에 있어야 하고, (C:\openAPI) 다운로드한 KOAStudio 파일들이 openAPI 폴더 안에 위치해있어야 한다. (위 이미지 참조) 단 하나라도 틀릴 경우 제대로 작동하지 않을 가능성이 있기에 꼭 지켜주자.

KOA Studio SA

이제 작동여부를 확인하기 위해 파란 색 아이콘의 KOAStudioSA를 실행시켜준다. 당신이 만약 처음 실행한다면 위의 경고 메세지가 뜬다. 본능적으로 확인 버튼을 누르고 싶을텐데, 잠깐 스톱!!!! 경고문을 잘 읽어보자.

확인 버튼을 눌러 끄기 전에, KOA StudioSA 프로그램을 먼저 종료해준다. (큰 창에서 우측 상단 X 버튼) 그 다음 확인 버튼을 누르면 버전처리가 진행된다. 버전처리까지 끝내주자.


모의투자 신청하기

모의투자 신청은 선택이 아닌 필수이다. 물론 인생은 실전이라는 말이 있지만, 그것도 상황 봐 가면서 하는 말이 아닌가?

우리가 아무리 훌륭한 투자전략이 있다고 한들, 우리는 우리가 작성한 코드에 버그가 없는지 확인해봐야 하고, 우리가 넣은 주문이 실제로 키움증권 상에서 submit되었는지도 확인해봐야 하며, 우리의 전략이 실제로 잘 먹히는지 충분히 테스트해봐야 한다. 이런 과정 없이 바로 돈을 때려박는 건 현명하지 못한 행동이다.

키움증권 모의투자

아까 제시한 링크에서 3단계 까지밖에 하지 않았던 것을 기억하고 있을 것이다. 아래 버튼을 눌러서 상시 모의투자를 신청한다.

키움증권 상시 모의투자 신청

이렇게 생긴 별개의 사이트로 이동될텐데, “상시 모의투자 참가신청” 아래의 “더 알아보기”를 클릭한다. 참가신청을 하기 위해 몇 가지 빈 칸으로 이루어진 form이 있을텐데, 이걸 채워줘야 한다. 투자부문에 해당하는 항목은 당신이 투자하기 원하는 시장, 그리고 금액을 입력해주면 된다.

이렇게 참가신청을 해주면 바로 당신에게 가상의 돈이 들어있는 모의투자 계좌가 만들어질 것이다.


로그인 및 자동로그인 설정

연결점
“연결점이 없잖아 연결점이.”

이제 당신의 윈도우에 KOA Studio를 포함한 키움증권의 openAPI가 준비되어 있고, 모의투자 계좌까지 하나 만들어졌다.

거의 모든 준비가 끝났지만, 아직 당신은 당신이 만든 계좌와 openAPI 사이에 연결점이 없다. 그걸 만들어주는 작업이 바로 로그인이라는 것이다. 버전처리할 때 실행시켰던 KOAStudioSA를 다시 실행시켜주고, 상단바의 파일(F)를 클릭하여 openAPI에 접속해주자.

open api

위에서 만들었던 키움증권 계정의 ID와 비밀번호를 여기에 입력해주자. 이 때 우측 하단의 “모의투자 접속”이 체크되어 있는지를 확인해준다.

로그인을 하면 1분 정도 자기 알아서 뭘 업데이트를 할 것이다. 차분하게 기다려주면 업데이트가 완료된다.

open api 아이콘

근데 이런 과정을 앞으로도 API를 실행시킬 때마다 반복해서 해주기엔 우리는 너무 귀찮기에, 자동로그인을 설정해둘 수 있다. 당신의 데스크톱 우측 하단바에 어떤 아이콘이 반짝이고 있을텐데(위 이미지 참조), 이걸 우클릭을 하면 자동로그인 설정을 하는 창이 나온다.

키움 자동로그인

위의 비밀번호에 ‘0000’을 입력해준다. (모의투자 계좌의 초기 비밀번호는 0000이다.)

그리고 AUTO에 체크해주고, 닫기를 누르면 자동로그인이 설정된다. 이제 앞으로 API를 실행시키면 ID와 비밀번호를 입력하는 과정 없이, 바로 자기 알아서 업데이트를 하는 과정이 진행될 것이다.


Next step?

여기까지 기본 세팅은 완료되었다. 이제부터 당신에게 친숙한 컴퓨터 언어를 이용해서 자동매매 스크립트를 작성할 수 있을 것이다.

필자의 경우 파이썬이 친숙하기에, 다음 글은 파이썬을 이용해서 자동매매를 구현하는 방법을 소개하는 글이 되겠다.

이를 위해선 윈도우에 파이썬을 설치해야 하고, 특히 이런 증권 API를 사용하기 위해선 32bit의 파이썬이 필요하다. (파이썬을 다뤄본 사람은 알겠지만, 이 친구는 버전에 굉장히 민감하다… 가급적 잘 작동된다고 알려진 버전을 사용하는 게 시행착오를 줄이는 데 좋다)

우리는 32bit의 파이썬을 사용하기 위해 (사실상 거의 반강제로…) 가상 환경을 만들어야 한다. 이를 위해 PyCharm같은 IDE나, anaconda같은 걸 이용하는 사람이 많다. (또 웬만해선 그게 편하긴 하다.)

하지만 그런 걸 쓰지 않고 싶다면, 필자의 다른 글을 참조하면 좋다. 아래에 해당 글을 링크해두겠다.

<python venv를 이용하여 32bit의 가상 환경을 만드는 방법>

다음 글은 필자가 시간이 되는 대로 올려보도록 하겠다.

4 thoughts on “파이썬, 키움 openAPI로 자동매매 구현하기 Step 1 (2023 ver.)”

  1. 증권사의 데이터를 신뢰할 수 있는지요?

    예를 들어 실시간 조건 검색을 신청했는 데 데이터가 온다는 보장이 없는 것같습니다.
    SendCondition( , , , 1)로 해서 실시간 검색요청을 해도 그게 온다는 보장은
    증권사에서도 해주지 않는 것같습니다.

    특히 매일 수익을 내는 조건에 대해서는 블락을 한다던가 지연신호를 준다던가
    해도 저희는 알 수 없지 않은지요?

    응답
    • 예 중요한 부분을 짚어주셨습니다.

      그 부분에 대해서는 충분히 확인을 거쳐야 합니다. 간단한 예로, 모의투자 계좌를 이용해서 삼성전자를 10주 매수하는 간단한 스크립트를 작성해서 작동시킨 뒤에, 실제로 매수 주문이 들어갔는지 증권 앱 같은 걸 통해서 확인을 해줘야 합니다.

      실제로 스크립트에 버그가 있거나, 다른 하드웨어 혹은 소프트웨어적인 이슈로 제대로 작동하지 않는 경우가 더러 있습니다. 최대한 많은 오류 가능성을 생각하고, 충분히 믿을 만한 성능이 나올 때 투자를 시작해야 합니다.

      말씀하신 조건 검색도 반드시 성공한다는 보장은 없습니다. 하지만 성공/실패 여부를 확인하는 건 눈으로 확인하는 게 가능합니다. 만약 실행해보고 문제가 생긴다면 야후파이낸스나 네이버 증권 등을 스크래핑해서 정보를 얻어오는 등의 다른 방법을 생각해볼 수도 있습니다.

      다만 증권사에서 특정 알고리즘을 사용하는 사람을 모니터링하면서 의도적으로 블락하거나 지연신호를 준다는 등의 사례는 전 들어본 적이 없습니다. 하지만 알고리즘 트레이딩을 하면서 신호가 지연되는 경우는 있습니다. 이는 서버 간에 정보가 오가는 시간이 존재하기에 자연스러운 현상이고, 실제로 high-frequency 거래 전략의 경우 ms 단위의 지연도 수익에 영향을 미칠 수 있다고 합니다. 관련업계 종사자들은 이러한 지연 효과까지 고려해야 한다고 말합니다.

      응답
      • 답변 감사드립니다. 제가 성공율 95%의 단타매매 검색식을 자동매매화 시켰는데 5회 연속 수익을 내니 그때부터 조건식이 실패로 나옵니다. 그래서 새로 솔루션을 만들었습니다. 버튼 1개만 달고요. 그런데 거기는 계속 성공입니다. 님도 프로그래머니 그 작업은 어렵지 않다는 것 아실테지요 ㅎㅎ 오늘도 똑같습니다. 긴 답변 감사드립니다. 혹시 코스콤 데이터로 자동매매 프로그램은 짜보셨나요?

        응답
        • 오 축하드립니다! 성공가도 대단하시군요 ㅎㅎ
          전 코스콤 데이터를 다뤄본 적은 없습니다 ㅠㅠ 제가 해본 것을 기반으로 정보글을 작성하고 있긴 하지만, 아직 이쪽은 그다지 경험이 많지 않아서요. 앞으로 시간 되는 대로 틈틈이 제가 한 방식을 계속 써볼까 합니다 ㅎㅎ 저야말로 댓글 감사합니다!

          응답

Leave a Comment