티스토리 뷰

본 포스팅이 조금이나마 도움이 되셨다면 공감버튼 클릭 부탁드립니다.

 

한창 삘받아서 시스템 트레이딩 개발하다가 여차저차?해서 멈춰버린게 대략 1년 가까이 시간이 지나가버렸다.

최근들어 무슨 바람?이 불었는지, 다시 시스템 트레이딩 개발을 해봐야겠다고 맘먹게 되었는데 최근에 노트북도 새로 구입해서 개발환경 구축부터 다시 해보고자 한다.

 

이전에는 Windows 7 64비트 OS에서 개발환경 구축을 하였는데, 이번에는 Windows 10 OS 이다.

기억을 더듬어가며 하나씩 차근차근 개발환경 구축을 해보자.

 

개발환경 구축작업을 요약해보면 다음과 같다.

  1. Open API 설치하기
  2. 키움증권 모의투자 신청
  3. KOA Studio 설치하기
  4. Python 개발환경 구축하기 (Anaconda 32bit)
  5. Python 으로 Open API 이용하여 키움증권 로그인 해보기

 

먼저 키움증권 홈페이지에 들어가서 Open Api 를 다운로드 한다. 메인 홈페이지 하단부를 잘 찾아보면 아래 빨강색 네모칸과 같이 Open API 를 찾을 수 있다. 클릭한다.

 

Open API 사용절차 그림에 나온대로 쭉 하면된다. Open API 서비스 사용신청은 이미 예전에 했으니, 키움 Open API+모듈 다운로드를 클릭해서 Open API 모듈을 노트북에 설치해보자.

 

OpenAPISetup.exe 라는 파일이 다운로드 되고, 설치를 쭉 진행하면 된다.

 

Open API+ 설치완료 !

 

다음으로는 KOA Studio 설치를 해야 한다. 사실 Open API 를 이용하여 자동매매 프로그램 개발하는데 있어서 꼭? 필요한 것은 아닌데, 여러가지 Open API 목록 조회 및 테스트할때 매우 유용하기 때문에 나같이 Open API를 잘 알지 못하는 초심자의 경우 왠만하면 설치하는 것이 좋다.

 

 

아래 빨강색 네모칸 클릭!

 

그러면 KOAStudioSA.zip 압축파일이 다운로드 되는데, 압축을 풀어보면 다음과 같다.

KOAStudioSA.exe 파일을 실행하면 끝!!

 

 

 

음? 근데 이상한 시스템 오류 발생. 바로 구글링

 

아래처럼 https://www.microsoft.com/ko-kr/download/confirmation.aspx?id=5555 에서 Microsoft Visual C++ 2010 재배포 가능 패키지(x86) 을 설치해야 한다고 한다. 바로 설치 ㄱㄱ (파일: vcredist_x86.exe)

 

출처 : https://jijs.tistory.com/entry/컴퓨터에-mfc100dll이가-없어-프로그램을-시작할-수-없습니다

설치진행중...

 

 

설치완료되었다. 다시 KOA Studio 를 실행해보자. 아래와 같이 경고없이 실행이 된다.

간단하게 Open API 테스트를 위해 로긴을 해보자.

 

파일 -> Open API 접속 클릭 클릭!

 

모의투자 접속을 해볼건데, 나는 이미 모의투자 신청을 한 상태라서 화면 캡쳐가 없다.

모의투자 신청방법은 매우 간단하기 때문에, 직접 키움 홈페이지에서 신청을 하자.

모의투자 신청은 위 화면에서 빨강색 네모칸을 클릭해서 가이드에 따라 진행하면 됩니다.

ID와 비밀번호를 입력하고 로그인 클릭!

 

첫 로그인이라 그런지, 뭔가 굉장히 많이 다운로드 한다. 한번 다운로드하고나면, 이후에는 업데이트만 하기 때문에 로그인하는데 시간이 오래 소요되지 않을 것이다. 설치중간에 아래와 같이 팝업이 뜨는데, (중요) 바로 확인을 누르지 말고, KOA Studio 프로그램을 먼저 종료하고, 확인 버튼을 누르자

 

잠시 기다리면, 아래와 같이 업그레이드 확인 팝업이 뜬다. 확인을 누르고 KOA Studio 를 다시 실행시켜보자.

 

정상적으로 KOA Studio 가 실행되었고, 키움 Login 도 잘 처리되었다. 자 이제 드디어 Open API 를 테스트해보자.

왼쪽 하단에 TR(transaction)목록을 클릭하고, 주식 분봉 데이터를 조회해보기 위해 좌측에서 opt10081: 주식일봉차트조회요청을 클릭한다. 마지막으로 어떤 종목의 일봉데이터를 조회할 것인지 종목정보를 우측 빨강색 네모칸과 같이 입력해보자 (LG전자를 조회해본다)

 

입력이 다 되었으면 조회버튼을 클릭해본다.

위 빨강색 네모칸과 같이 LG전자의 19년 6월 17일 일봉 데이터가 조회가 된 것을 확인할 수 있다.

여기까지 1) Open API 설치완료 2) API 목록 조회 및 테스트를 위한 KOA Studio 설치가 완료되었다.

 

이제 다음작업은 Python 을 설치해야 하는데, 이때 중요한 점이 키움 Open API가 현재 32 bit만 지원하기 때문에 Python 도 32bit 버전을 설치해야 합니다. 그리고 Python 만 별도로 설치할 수도 있지만, 여러 패키지를 손쉽게 설치하기 위해 Anaconda 를 사용합니다.

 

Anaconda 공식 홈페이지를 보면, 최신 dist 만 다운로드 링크를 제공하고 있는데, 내 경험으로 최신 버전은 문제가 좀 있었는데.... 그래도 지금 1년이 지났으니 잘 되겠지.... 라는 마음으로 최신버전을 다운로드 합니다..

 

* Anaconda 설치파일 : Anaconda3-2019.03-Windows-x86.exe

 

* Anaconda 공식 홈페이지 Download Link : https://www.anaconda.com/distribution/

 

Anaconda Python/R Distribution - Anaconda

The open-source Anaconda Distribution is the easiest way to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X. With over 11 million users worldwide, it is the industry standard for developing,…

www.anaconda.com

 

Anaconda 설치 진행중입니다. 설치 경로는 C:\ 바로 아래 폴더로 지정해줬습니다. 별다른 이유는 없고, depth 가 깊어지는걸 별로 안좋아해서 그렇습니다.

음 근데, C:\ 에는 쓰기권한이 없다고 하면서 설치가 안되서, 설치파일 실행할때 관리자권한으로 다시 실행을 했습니다.

이번에는 잘 넘어가네요. 그리고 설치가 진행되고 있습니다.

Anaconda 설치하는데에는 시간이 꽤 걸립니다.... 

 

설치가 완료되었습니다. 시스템 Path에 C:\Anaconda3 와 C:\Anaconda3\Scripts 를 등록해주고, 터미널에서 python을 실행해봅니다. (C:\Anaconda3 하위에 python.exe가 있고, C:\Anaconda3\Scripts 하위에는 pip.exe 가 있습니다)

아래와 같이 python 3.7.3 버전이 설치가 되었습니다.

 

마지막으로 VS Code 를 설치해보자. VS Code를 단독으로 설치해도 되지만, Anaconda 에서 VS Code 설치를 지원해주니, 이것을 사용해보도록 한다.

Anaconda Navigator 를 실행하고 나서, VS Code 를 찾아서 Install 버튼을 클릭해보자.

설치가 완료되면 Launch 버튼을 클릭하여 VS Code를 실행시켜보자.

아래와 같이 정상적으로 VS Code가 실행이 되었다. 굿!

 

간단하게 hello, world도 찍어보고...

 

 

키움 Open API 이용해서 로그인하는 것을 간단히 구현해보자.

https://wikidocs.net/4240 링크에 있는 로그인 샘플 코드를 구동시켜 보았다. 로그인이 성공적으로 되었다.

 

로그인 샘플 코드 (현 시점에서 코드에 대한 설명은 생략한다)

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyStock")
        self.setGeometry(300, 300, 300, 150)

        self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")

        btn1 = QPushButton("Login", self)
        btn1.move(20, 20)
        btn1.clicked.connect(self.btn1_clicked)

        btn2 = QPushButton("Check state", self)
        btn2.move(20, 70)
        btn2.clicked.connect(self.btn2_clicked)

    def btn1_clicked(self):
        ret = self.kiwoom.dynamicCall("CommConnect()")

    def btn2_clicked(self):
        if self.kiwoom.dynamicCall("GetConnectState()") == 0:
            self.statusBar().showMessage("Not connected")
        else:
            self.statusBar().showMessage("Connected")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

 

조금 이상한점은 코드구동에 문제가 없음에도 불구하고 VS Code 편집기에서 빨강색 구불구불한 선으로 특정 객체를 찾을수 없다고 표기하고 있는 점이다.

이 부분은 원인을 잘 모르겠지만, 내일을 위해 자야해서... 나중에 찾아보기로 하고 오늘은 이쯤에서 마무리 해야겠다.

 

위에 빨간줄이 그어지는 원인은 정확히 모르겠지만, 구글링을 통해 문제는 해결했다.

Link : https://stackoverflow.com/questions/46337716/pylint-cant-find-qwidget-and-qapplication

 

pylint can't find QWidget and QApplication

import sys from PyQt5.QtWidgets import (QApplication, QWidget) app = QApplication(sys.argv) window = QWidget() window.setGeometry(50, 50, 500, 300) window.setWindowTitle('Hello, world') window.show...

stackoverflow.com

Stack overflow에서 찾은건데, VS code의 Settings.json 파일을 수정하면 해결된다는 것이었다.

{
    // "python.linting.pylintArgs": [
    //     "--disable=wildcard-import"
    // ],
    "python.linting.pylintArgs": [
        "--extension-pkg-whitelist=PyQt5"
    ]
}

위와 같이 입력했더니, 정말 감쪽같이 빨강색 밑줄이 사라졌다.

VS code에서는 프로젝트 설정관련 파일을 json 포맷으로 지정할수 있도록 해놓았고, Workspace/.vscode 폴더 하위에 해당 파일을 위치시키도록 하고 있다. 현재 내가 테스트로 만든 프로젝트에는 launch.json 과 settings.json 2개의 파일이 있는데, 어떤 설정들이 있는지는 아직 잘 모르겠다. 이 부분도 나중에 별도로 포스팅 하면 좋을것 같다.

 

아무튼 개발환경 설정은 이제 끝이났고, 내일부터는 시스템 트레이딩 프로그램 구현을 위한 설계 단계로 넘어가야겠다.

 

 

Link

 

작업내용 정리

  1. 키움 Open API 설치
  2. 키움증권 모의투자 신청 (모투계좌로 시스템 트레이딩 구현예정)
  3. KOA Studio 설치하기 (Open API 테스트를 위해서 KOA Studio 설치)
  4. Anaconda 32bit 설치 (파일 : Anaconda3-2019.03-Windows-x86.exe)
  5. VS Code 설치 (Anaconda Navigator 이용) 
  6. Python Hello, World 코드 실행
  7. 키움 Open API를 이용하여 Log in 기능 구현 (PyQt5 으로 구현, VS code Warning 해결을 위한 트러블 슈팅)

 

본 포스팅이 조금이나마 도움이 되셨다면 공감버튼 클릭 부탁드립니다.
댓글