-
[키움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 사용 프로그램 개발을 진행해 나가도록 하겠다.
반응형'금융퀀트 > (퀀트)증권사API활용(키움)' 카테고리의 다른 글
[키움API]python 메인 화면 만들기(Qt Designer 사용) (0) 2023.11.23 [키움API]python API 로그인 (0) 2023.11.14 [키움API]키움 API 작동 구조 (0) 2023.11.11 [키움API]아나콘다-파이썬 가상환경 만들기 (0) 2023.11.07 [키움API]회원 가입 및 API 다운로드 (0) 2023.10.19