2. 해외선물/2-1. 해외선물 자동매매 연구

(키움증권 해외선물 자동매매 파이썬) 4. 라이브러리 개념 및 활용

봄이오네 2023. 9. 6. 08:03
반응형
목 차
1. 들어가며
2. 사용방법
3. 활용할 라이브러리
4. 마치며

 

1. 들어가며

지난 글에서는 알고리즘 개념 및 50:50 손익딜레마에 대해 이야기하였다. 수익/손실을 내는 건 확률을 따를 것이다. 그래서 해선 매매를 하다보면, 가끔씩 50:50의 동전던지기 확률이 생각날 것이다. 지혜롭게 알고리즘을 설계하고, 수정해 나가도록 하자.

 

이번 글부터 이론보다는, 코드 소개를 통해 자동매매 구축을 위해 한걸음씩 앞으로 나아가 보자. 대부분의 설명은 필자가 활용하고 있는 시스템을 기본으로 설명할 예정이다.

 

라이브러리는 무엇일까? 파이썬 언어의 확장성이 높아진 여러이유 중 하나로 라이브러리가 있을 것이다.

제3자가 미리 정의해 놓은 함수의 모음을 라이브러리라 할 수 있다. 그 예로 pandas, numpy 등 다양한 라이브러리가 존재한다. 사용자는 제3자가 정의해 놓은 라이브러리에서 필요한 부분만 호출하여 사용하면 된다.


2. 사용방법

라이버러리를 활용하는 형태는 아래와 같다.

  • ① 사용할 라이브러리를 import 한다.
  • ② 활용 형태 : import numpy, import pandas 등
  • ③ 활용 예시 : numpy.mean(넘파이를 통해 평균을 구함), pasdas.ExcelWriter(판다스를 통해 데이터를 엑셀로 보낸다)

 

이렇듯 라이브러리의 기능을 잘 활용하면 사용자가 별도로 작성할 필요없이, 제3자가 정의한 함수 등을 쉽게 사용할 수 있다. 파이썬의 최고 강점 중 하나인 확장성이 뛰어나다는 것이 파이썬으로 프로그램을 작성하는 이유 중 하나이다.


3. 활용할 라이브러리

필자가 활용할 라이브러리는 총 10개이다. 파이썬 내장 라이브러리는 4개, 별도 설치가 필요한 라이브러리는 6개이다.

 

  • 파이썬 내장 라이브러리 4개 : sys, time, os, datetime
  • 파이썬 외장 라이브러리 6개 : PyQt5 3개(QAxContainer, QtWidgets, Qtcore), pandas, telegram, numpy
import sys
from PyQt5.QAxContainer import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import time
import os
import pandas as pd
from datetime import datetime
import telegram
import numpy

 

자세한 내용은 아래 링크를 활용하고, 여기서는 간략하게 라이브러리에 대한 설명을 하고자 한다.

 

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(응용 프로그램을 작동)을 불러온다.

 

4) from PyQt5.QtCore import *

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

 

5) import time

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

 

6) import os

os 모듈은 윈도우 내 경로 지정을 위해 활용한다.

 

7) import pandas as pd

매매 결과의 엑셀보내기 등에 활용된다.

 

8) from datetime import datetime

현재 시간을 표기하기 위해 활용된다.

 

9) import telegram

진입/청산 매매에 대한 내용을 텔레그램으로 보낸다.

 

10) import numpy

키움증권에서 받아온 1분봉 모음에 대해 20분선, 볼린저밴드 등을 구하기 위해 활용된다.

 

위 내용은 예전에 필자가 기재한 적이 있다. 아래 글을 참고하길 바란다.

 ※ 경로 : https://springcoming.tistory.com/134

 

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

목 차 1. 들어가며 2. 사전설명 1) 모듈의 정의, 활용 및 종류 2) 모듈 불러오는 형태 3. 활용할 모듈 설명 1) sys 모듈 2) from PyQt5.QAxContainer import * 3) from PyQt5.QtWidgets import * 4) from PyQt5.QtCore import * 5) impo

springcoming.tistory.com

 


4. 마치며

자동매매에 활용될 라이브러리(모듈)에 대해 알아보았다. 라이브러리에 대한 설명이 약간 추상적이고 지금은 이해하기 힘들것 같다. 향후 어떻게 쓰이는지 코드를 작성하면서 천천히 알아보도록 하자.

 

다음 글부터는 OpenAPI-W를 통해 자동매매에 로그인하는 방법을 알아보자.

 

반응형