본문 바로가기

인공지능/강화학습

[강화 학습을 이용한 주식 투자] - 신한 i 인디 환경설정 (python)

ocx란 Microsoft Windows에서 수행되는 하나의 객체 연결 및 포함(OLE) 맞춤형 컨트롤러이다.

 

파이썬을 이용하여 신한 i인디를 사용하기 위해서는 신한 i인디 ocx를 사용하여야 한다.

신한 i인디 ocx는 신한 i인디를 설치하는 과정에서 함께 설치가 되기 때문에 추가적으로 설치를 할 필요는 없다.

 

신한 i인디는 파이썬에게 64bit ocx를 지원하지 않는다.

그 뜻은 곧 파이썬 64bit가 아닌 파이썬 32bit를 설치하여야 한다.

 

따라서 python 32bit를 가진 가상 환경을 만들 필요성이 있다.

하지만 Anaconda3을 64bit로 설치하였다면 별도의 설정을 거쳐야지만 파이썬 32bit를 설치할 수 있다.

 

set CONDA_FORCE_32BIT=1
conda create -n Stock python=3.8 anaconda

Anaconda Prompt에 접속을 하여 위와 같은 명령어를 입력 해 아나콘다를 32bit로 세팅을 해준 후

가상 환경을 설정함과 동시에 파이썬을 설치하면 된다.

 

기본 환경설정은 완료가 되었다.

파이썬에서 신한 i인디 ocx에서 제공하는 함수를 Python에서 불러 줘야 하고,

해당 ocx 함수를 사용하기 위해서는 PyQt5 Python 라이브러리를 사용하여야 하며, 

PyQt5란 윈도우, 맥, 리눅스 안드로이드에서 동작할 수 있는 GUI 개발 라이브러리이다.

 

activate Stock

pip install PyQt5

PyQt5를 Anaconda Prompt에서 위와 같은 명령어로 해당 가상 환경을 접속을 해 설치를 해주면 된다.

 

신한 i인디에서는 StartIndi(id, pw, 공인 pw, inpath)를 통해 자동로그인 구현이 가능하다.

StartIndi 4개의 파라미터에 본인의 정보를 기입한 후 실행을 하면 된다.

만약 조회용으로 설정을 해놨을 경우 공인 pw에는 ''형태로 입력을 해 비워놓으면 되고,

inpath의 경우 일반적으로 경로는 동일하며 변경을 해주었다면 변경된 주소로 설정을 해주면 된다.

 

가상 환경 설정과 필요 라이브러리를 모두 설치하였다면

자동 로그인 소스코드를 통해 환경 설정 세팅이 잘 되었는지를 확인할 수 있다.

import sys
from PyQt5.QAxContainer import *
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMainWindow

'''
    신한i인디 자동로그인
'''

class IndiWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("IndiExample")

        # 일반 TR OCX
        self.IndiTR = QAxWidget("GIEXPERTCONTROL.GiExpertControlCtrl.1")

        # 신한i Indi 자동로그인
        while True:
            login = self.IndiTR.StartIndi('id', 'pw', '공인pw', 'C:/SHINHAN-i/indi/giexpertstarter.exe')
            print(login)
            if login == True :
                break

if __name__ == "__main__":
    app = QApplication(sys.argv)
    IndiWindow = IndiWindow()
    app.exec_()

 

모든 개인 정보 입력을 끝낸 뒤 실행을 해보면 True를 출력하면서 정상적으로 신한 i인디를 실행이 되어

환경 설정 셋팅이 잘 되었음을 알 수 있다.

 

ref) 신한 i인디 파이썬 사용 매뉴얼 : https://wikidocs.net/book/2167