2. 해외선물/2-4. 해외선물 API (사용)

(키움증권 해외선물 OpenAPI-W) 자동매매를 위한 파이썬 모듈 설명

봄이오네 2022. 12. 30. 08:09
반응형
목 차
1. 들어가며
2. 사전설명
1) 모듈의 정의, 활용 및 종류
2) 모듈 불러오는 형태
3. 활용할 모듈 설명
1) sys 모듈
2) from PyQt5.QAxContainer import *
3) from PyQt5.QtWidgets import *
4) from PyQt5.QtCore import *
5) import pyautogui
6) import time
7) import threading
4. 마치며

1. 들어가며

지난 글에서는 OpenAPI-W의 자동 매매를 위한 "시세요청 이용료"를
결재하는 방법을 알아보았다.
거래소별로 월 185달러를 결재해야 하는 것이 부담되는 건 사실이다.ㅠㅠ

이번 글에서는
파이썬을 통한 해외선물 자동매매를 위한 모듈(module)에 대해 설명할 예정이다.
향후 설명할 글에서는 모듈(module)에 대한 내용은 생략할 것이다.


2. 사전설명

1) 모듈의 정의, 활용 및 종류

  • 정의 : 반복이 필요하거나 활용이 필요한 함수, 변수 및 클래스를 모아 놓은 파일
  • 활용 : 다른 사람이 만들어 놓은 모듈(함수 포함)을 불러와서 이용자가 활용
  • 종류 : 파이참(pycharm)에 내장된 내장모듈, pip로 설치가 필요한 외부모듈 등

2) 모듈 불러오는 형태

  • 기본 형태 : import 모듈명
  • 응용 형태 : from 모듈명 import * or 함수/변수/클래스
  • 축약 형태 : import 모듈명 as "약칭"

① 기본형태는 "import 모듈명"은 "모듈명" 內 모든 함수를 불어온다.
② 응용형태는 "from 모듈명 import * or 함수/모듈명"
- from 모듈명 import * : 모듈명에 있는 모든 내용을 불어온다.
- from 모듈명 import (함수/변수/클래스) : 모듈에서 "함수/변수/클래스" 등 필요한 내용만 불러온다.
③ 축약형태는 import 모듈명 as "약칭"로서, 모듈명을 "약칭"한다.


3. 활용할 모듈 설명

아래 < 그림 >에는 7가지 모듈이 있으며, 향후 필자가 거래를 위해 활용할 모듈이다.
각각의 모듈에 대해 명확히 이해하도록 하자.

그림. 해선 자동매매를 위해 필요한 모듈

1) sys 모듈

파이썬 인터프리터(해석기)가 제공하는 변수와 함수를 직접 제어하게 해주는 모듈이다.
내용이 너무 어렵다. -_-+
* 인터프리터가 뭔지는 검색해보자.

향후 app = QApplication(sys.argv)에서 활용되며
전달받은 인자(sys.argv)를 QApplication을 통해 응용 프로그램이 작동하는데,
쓰인다는 것만 기억하자.

2) from PyQt5.QAxContainer import *

PyQt5의 QAxContainer 모듈은 QAxWidget을 가져온다.

QAxWidget 모듈은 해외선물 OpenAPI-W의 레지스트리
"KFOPENAPI.KFOpenAPICtrl.1"에 접근한다.

self.kiwoom = QAxWidget("KFOPENAPI.KFOpenAPICtrl.1")

즉, 데이터 입력/요청/수신 등을 받을 때마다
위에서 정의한 self.kiwoom를 통해 OpenAPI-W에 접근한다.

3) from PyQt5.QtWidgets import *

QtWidgets는 QApplication을 불러온다.
QApplication은 응용 프로그램을 작동시킨다.

4) from PyQt5.QtCore import *

QtCore는 QEventLoop를 불러온다.
QEventLoop은 데이터를 요청하고 수신받을 때까지,
loop를 돌면서 대기하면서, 다음 코드가 실행되는 것을 방지한다.

5) import pyautogui

키움증권의 OpenAPI-W를 통한 半자동 로그인을 위해,
마우스 및 키보드 제어를 위해 필요하다. (향후 설명)

6) import time

time 모듈은 time.sleep(초)를 활용하여,
코드가 너무 빨리 진행될 때, 대기하기 위해 필요하다.

7) import threading

20초 혹은 60초 마다 TR 요청 등을 위해 필요하다.


4. 마치며

향후 필자가 설명할 코드에 쓰이는 모듈을 알아보았다.
sys 모듈 설명이 복잡하고 어려워서,
대략적으로 "어디에 쓰인다"고 설명이 부족한 부분은
양해해 주시리라 믿는다. ^^;

각각의 모듈이 어디에서 어떻게 쓰이는지
향후 설명할 글에서 천천히 확인해 보자.

반응형