ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [키움API]개발툴의 선택: 아나콘다-파이썬
    금융퀀트/(퀀트)증권사API활용(키움) 2023. 10. 24. 07:16
    반응형

    키움API 기본적인 개발환경

    키움증권 OpenAPI는 윈도우 운영체제 기반으로 개발해야 하며, 32BIT 플랫폼 기반이다. 이 정보를 바탕으로 우리는 어떤 도구를 사용하여 API 활용 프로그램을 만들지 결정해야 한다.

    개발 툴의 선택

    마이크로소프트 엑셀

    엑셀은 Alt + F11 단축키로 손쉽게 VBA 코딩을 짤 수 있으며 데이터를 작업하고 있는 파일에 저장하면 된다. 심지어 키움에서는 아래 그림 1과 같이 로그인, 현재가 조회, 관심종목 조회, 주문 정도의 기능을 갖춘 엑셀 파일을 제공해 준다.

    그림1: 엑셀 API 사용 파일 샘플 다운로드

    실제 파일을 다운받아서 내용을 보면 아래와 같이 되어 있다. 

    그림2: 엑셀 샘플 내용

    하지만 요즘 엑셀을 설치하면 대부분 64BIT 기반인데 32BIT 기반의 키움증권 API 를 사용하려면 32BIT를 지원하는 엑셀을 따로 구해야 한다는 단점이 있다. 그리고 32BIT 기반 구버전 엑셀이 있다고 해도 엑셀에 데이터를 저장해 나가는 과정에서 파일이 느려지는 문제점이 발생한다.

    윈도우비주얼 스튜디오(C++ 기반의 MFC활용)

    MFC는 마이크로소프트에서 개발한 C++ 기반 응용 프로그램 프레임워크이다. C++ 기반으로 UI까지 쉽게 구현하게 해주는 도구라고 생각하면 된다. Visual Studio Installer에서 아래 표시된 부분을 활성화하면 MFC 프로젝트를 만들 수 있다.(윈도우 검색창에 " Visual Studio Installer"라고 검색하면 쉽게 찾아 들어갈 수 있다.)

    그림3: Visual Studio MFC 개발 활성화

    MFC 관련 기능 Install이 끝나면 Visual Studio 들어가서 MFC 앱으로 새프로젝트를 만들고 대화상자 기반 어플리케이션을 만들면 개발준비는 끝이 난다.(Visual Studio Code 가 아닌 Visual Studio이다.)

    그림4: MFC 프로젝트 만들기
    그림5: 대화상자 기반 어플리케이션 만들기

    키움에서 API 안내 프로그램으로 KOAstudio에서도 MFC 기반 C++의 예시코드를 주고 있다는 점에서 MFC를 활용해서 개발하는 것이 편할 수 있다. 엑셀과 마찬가지로 OpenAPI 자료실에 MFC 기반 C++ 샘플도 제공해주고 있다.

    그림6: MFC 기반 개발 샘플 제공예시

    하지만  Visual Studio라는 무거운 개발 Tool을 사용해야 하고, Visual Studio 2022 같은 최신 버전은 32BIT 지원이 안돼서 엑셀의 경우와 마찬가지로 "khopenapi.ocx"라는 오브젝트를 불러올 수 없는 경우가 발생한다.

    아나콘다-파이썬

    아나콘다-파이썬 설치는 아나콘다, 파이썬, 비주얼 스튜디오 사용(Windows)이라는 글을 참조하면 된다. 아나콘다-파이썬을 사용하면 가상환경을 만들어서 32BIT, 64BIT를 설정할 수 있기 때문에 32BIT 환경 설정은 상대적으로 자유롭다. "CONDA_FORCE_32BIT=1"이라는 명령어 한 줄로 가능하기 때문이다. 

    그림7: 32BIT 환경설정

    하지만 Visual Studio로 작업하면 MFC프로젝트를 만들고 그 프로젝트 안에서 화면을 그리고 그 화면에 바로 코딩을 입힐 수 있지만 파이썬은 불가능하다. 아나콘다-파이썬에서는 아래 그림 8처럼 Qt designer를 통해서 화면을 따로 그린 뒤 

    그림8: Qt Designer 의 활용

    다시 그림 9처럼 Visual Studio Code 등과 같은 프로그램으로 통해서 코드를 작성해야 한다. 코드를 작성할 때도 기본적인 파이썬 코드만드로는 API 사용이 불가능하고  아래 그림 9처럼 C++과 바인딩해 주는 라이브러리인 PyQt5에 의존해서 코드를 작성해야 한다는 단점이 있다.

    그림9: 파이썬 코드 예시(로그인)

    각 개발 툴마다 장단점이 있지만 64BIT, 32BIT 호환 문제가 가장 해결하기 힘들어서 파이썬을 통해서 키움 API 사용 프로그램 개발을 진행해 나가도록 하겠다.

    반응형
Designed by Tistory.