금융/증권사API 3

QeventLoop를 이용한 로그인하기 , 기본정보 요청 함수

문제파악 주식 기본정보를 가져오기 위해선 로그인이 선행되어야 한다. 하지만 로그인하는데 잠깐의 시간이 걸리고, 그 시간보다 빨리 코드가 실행되면 오류가 발생한다. sosoeasy.tistory.com/413에서는 로그인을 확인하는 이벤트 함수에 주식 기본정보를 요청하는 함수를 넣어서 이 문제를 해결했다. 이번 장에서는 QeventLoop를 통해 문제를 해결한다 QeventLoop란? 특정 시점에서 특정 조건이 발생해야지만 다음 코드를 진행할 수 있게 만들어 주는 함수이다. 다음과 같이 세가지 단계로 구분된다. 1. loop객체 생성 self.login_event_loop = QEventLoop() 2. 조건생성 self.login_event_loop.exit() 3. 코드진행 ( 2.에서 self.log..

금융/증권사API 2021.02.16

로그인하기 , 기본정보 요청 함수

이벤트 메소드와 일반 메소드를 사용하여 로그인 및 기본정보 요청 함수를 작성해 본다. 전체 FLOW 소스코드 import sys from PyQt5.QAxContainer import * from PyQt5.QtWidgets import * class KiwoomAPI: def __init__(self): # QAxWidget 객체 (키움 api연결) self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1") # 이벤트함수 self.kiwoom.OnEventConnect.connect(self.myOnEventConnect) # 로그인 self.kiwoom.OnReceiveTrData.connect(self.myOnReceiveTrData) # 통신 관련 # 로그인 요..

금융/증권사API 2021.02.13

일반 메소드와 이벤트 메소드

키움 API에서는 일반 메소드와 이벤드 메소드가 있다. 이들의 차이점, 용도, 사용법등을 알아본다. 전체 FLOW 유저가 데이터를 요청하면 서버에서 이를 처리하여 보내준다. 이때 서버가 처리 하는동안 요청을 끊임없이 계속 하면 과부하가 걸릴 수 있고 서버가 처리하기 전에 데이터를 전송하려고 하면 에러가 날 수도 있다. 따라서 키움 api의 경우 사용자가 데이터를 요청했을때 이벤트를 발생시켜 이 문제를 해결한다. 여기서 사용자가 데이터를 요청하는 함수를 일반매소드라고 하고, 이벤트(일반매소드를 이용해 데이터를 요청하는것)가 발생할때 까지 기다렸다가 , 이벤트가 발생한 후 동작하는 메소드를 이벤트 매소드 라고 한다. 일반 메소드 1. 방식 일반 매소드는 ocx방식을 파이썬으로 동작시기키 위해서 .dynami..

금융/증권사API 2021.02.13