Programming/Python

키움증권 api를 이용한 자동 매매 프로그램 개발 히스토리

빠릿베짱이 2017. 11. 15. 09:59
반응형

환경

anaconda python 3.5 32bit 

64bit로 설치시 ocx에서 문제 발생

1. 로그인

    • 파이썬 2.7에서는 로그인 창이 뜨지 않음. ( CommConnect() )
    • 아나콘다로 가상 환경 생성 ( 파이썬 3.4 )
      • 가상 환경 관련 명령어
        • conda create -n km python=3.4
        • activate km
        • deactivate km
        • 32비트 가상 환경 만들기 [ 링크 ]
set CONDA_FORCE_32BIT=1
conda create -n py27_32 python=2.7
set CONDA_FORCE_32BIT=1
activate py27_32
        • 64비트 가상 환경 만들기
set CONDA_FORCE_32BIT=
conda create -n py35_64 python=3.5
set CONDA_FORCE_32BIT=
activate py35_64
      • pyqt 설치
        • pip install pyqt5
        • pip.exe이가 다른 환경에 있는 것으로 설치할 경우 플랫폼에 맞지 않다고 오류가 발생할 수 있음
        • Not a supported wheel on this platform --> 아나콘다 64bit script 폴더에 있는  pip 가 실행되어 문제 발생 --> 강제로 32비트 환경의 script 폴더로 이동 후 설치 했더니 문제 없음


로그인 테스트

  • CommConnect() 함수 호출 시 로그인 창이 뜸
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *

class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow,self).__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()")
print(ret)

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_()


반응형

'Programming > Python' 카테고리의 다른 글

Superset customize  (0) 2018.03.07
selenium chrome driver 창 숨기기  (0) 2018.03.05
VS Code anaconda 연동  (0) 2017.06.28
matplotlib 한글 문제  (1) 2017.06.19
matplotlib matshow colorbar discrete setting  (0) 2017.05.31