주식자동매매 10강. 키움 증권 로그인 전 기본기 쌓기
본문 바로가기

주식 자동매매 강의/기초반(모든 코딩의 뿌리)

주식자동매매 10강. 키움 증권 로그인 전 기본기 쌓기

반응형

키움 증권 로그인하기 위해서는 키움증권 클래스를 이용하여 관련 함수들을 사용해야 한다. 이번 강의에서는 키움증권 클래스 사용 방법과 함수 사용방법을 알아보도록 하자.(10강을 위한 코드는 9강에 있습니다.)

 

[유튜브 강의, 링크]와 같이 보시면 많은 도움이 되실 겁니다.

 

반응형

1. 키움증권 클래스 사용하기(기존 코드에 딱 2줄만 추가)

  키움증권 클래스를 사용하기 위해 메타클래스 기반의 싱글턴 안에 self.kiwoom이라는 인스턴스를 생성하여 Prog ID ('KHOPENAPI.KHOpenAPICtrl.1) QAxWidget클래스로 전달하였다. 따라서, 우리는 kiwoom 스크립트에 Kiwoom() 클래스만 상속받으면 Kiwoom() 클래스 안의 모든 함수는 사용할 수 있으므로, 키움증권 클래스도 사용할 수 있게 된다. 본 기능 사용을 위해 Main 스크립트인 Lecture_0425.py에 Kiwoom 클래스를 상속시키자.

Main script에 Kiwoom 클래스 상속 시키기
Main script에 Kiwoom 클래스 상속 시키기

  위 그림과 같이 from kiwoom import Kiwoom 문구를 이용하여 kiwoom 스크립트에 있는 Kiwoom 클래스를 가져오자. 아래 그림을 보면 self.k = Kiwoom() 문구를 이용하여 self.k에 Kiwoom() 클래스의 모든 기능을 전가한다. 따라서, 앞으로 self.k만 치더라도 Kiwoom() 클래스의 모든 기능을 사용할 수 있게된다.

Kiwoom 클래스 인스턴스화
Kiwoom 클래스 인스턴스화

  ◈ 객체와 클래스 그리고 인스턴스 설명

    객체는 우리가 만들어야할 목표(아파트)이며, 목표를 이루기 위해서는 방법(설계도)이 필요합니다. 이 방법(설계도)을 우리는 클래스라 부르고, 클래스(설계도)로 실제로 구현한 것이 인트턴스 입니다.

    객체 : 설계 개념(목표, 아파트 짖기)

    클래스 : 설계도(설계도)

    인스턴스 : 실제 구현된 값(아파트)

 

2. 키움증권 로그인을 위한 키움증권 클래스 함수 이해하기

키움증권으로 로그인하기 위해서는 크게 2가지의 함수가 필요하다.

 (1) CommConnect() : 증권사에 특정 사항(매수/매도)을 요청

 (2) OnEventConnect() : 요청한 데이터를 받아옴. 이때 () 안에 슬롯에 특정 데이터를 전달

   - 슬롯은 별도 생성한다.

 

  위의 과정을 간단히 살펴보면 아래 그림과 같다. CommConnect()를 이용해 매수/매도를 키움 서버에 요청하고 키움 서버에서는 처리한 결과를 OnEventConnect()의 () 안에 던져준다. 예로 100이라는 정보가 전달되면, 사용자 정보교환 실패와 같은 의미이다. 이때 정말 중요한 것이 키움서버에서 CommConnect()명령이 완전히 마무리 될 때까지 어떠한 행위도 하지 않는 것을 QEventLoop()라고 한다. 만약, 하나의 명령이 마무리되기 전에 기타 행위가 진행된다면 코드에 오류가 반드시 발생한다. (ex. 매수주문 중, 계좌잔고 업데이트 : 매수 주문이 완료되기 전에 계좌잔고 업데이트를 하면 오류가 발생한다.)

로그인을 위한 함수 알고리즘
로그인을 위한 함수 알고리즘

 

  관련 함수의 정확한 내용은 우리가 3강에서 설치한 KOA Studio를 통해 아래 그림과 같이 확인 가능하다.  KOA Studio에서는 로그인을 위해 CommConnet() 등 5개의 함수가 소개되어 있으며, 각각의 기능은 그림의 오른쪽 화면에 설명되어 있다. 앞으로 KOA Studio를 아~주 많이 사용할 것이다. 우리가 행하는 모든 주문 등의 행위의 근원이 KOA Studio이기 때문이다.

KOA Studio 확인
KOA Studio 확인

 

 다음 강의에서는 앞서 말씀드린 2개의 키움증권 클래스 함수를 이용해 실제 로그인을 수행하도록 하겠습니다. 잘 모르겠으면 언제든 질문 바랍니다. 감사합니다.

 

11강 바로가기 : 로그인 화면을 GUI에 출력해 봅시다.

반응형

.link_tit