파이썬 자동매매 개발, 키움증권 API, 기초 API 익히기

안녕하세요, 투자자 여러분! 오늘은 파이썬을 이용하여 자동매매를 개발하는 방법에 대해 알아보겠습니다. 특히, 한국에서 널리 사용되는 키움증권 API를 활용하여 자동매매 시스템을 구축하는 기초적인 내용을 중점적으로 설명하겠습니다.

1. 자동매매란?

자동매매는 컴퓨터 프로그램을 이용하여 미리 설정된 투자 전략에 따라 자동으로 매매를 수행하는 것을 의미합니다. 이를 통해 인간의 감정을 배제하고, 시장의 변동성에 빠르게 대응할 수 있습니다. 자동매매 시스템을 활용하면 반복적인 매매 작업을 자동화하여 시간과 노력을 절약할 수 있습니다.

2. 키움증권 API 소개

키움증권 API는 키움증권에서 제공하는 증권 거래를 위한 다양한 기능을 사용할 수 있는 인터페이스입니다. 이를 통해 주식의 시세정보, 주문, 체결정보 등을 프로그램적으로 관리할 수 있으며, 기본적인 매매 기능부터 고급 전략까지 다양한 자동매매 알고리즘을 설계할 수 있습니다.

2.1 API 설치 및 환경 설정

API를 사용하기 위해서는 먼저 키움증권의 Open API+를 설치해야 합니다. 아래의 단계로 설치를 진행해 보세요.

  1. 키움증권 홈페이지에 접속하여 Open API+를 다운로드합니다.
  2. 설치 과정에서 필요한 환경 설정을 진행합니다.
  3. 설치 완료 후, 키움증권의 로그인을 통해 API를 사용할 준비가 완료됩니다.

2.2 설치 후 기본 환경 설정

파이썬 환경에서 키움증권 API를 사용하기 위해 필요한 패키지를 설치합니다. 이를 위해 주로 사용하는 패키지는 PyQt5와 pythoncom입니다. 다음 명령어로 설치할 수 있습니다:

pip install PyQt5 pythoncom

3. 키움증권 API 사용하기

그럼 본격적으로 키움증권 API를 사용하여 데이터를 가져오고 주문을 해보겠습니다.

3.1 API 클래스 구현

키움증권 API를 활용하기 위해 클래스를 구현해 보겠습니다. 기본적인 로그인 및 시세 데이터를 가져오는 기능을 포함하도록 하겠습니다.

import sys
import time
import pythoncom
from PyQt5.QtWidgets import QApplication
from PyQt5.QAxContainer import QAxWidget

class KiwoomAPI:
    def __init__(self):
        self.app = QApplication(sys.argv)
        self.api = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
        self.api.OnEventConnect.connect(self.connected)
        self.login()

    def connected(self, errCode):
        if errCode == 0:
            print("로그인 성공")
        else:
            print("로그인 실패", errCode)

    def login(self):
        self.api.dynamicCall("CommConnect()")
        self.app.exec_()

    def get_price(self, code):
        self.api.dynamicCall("SetInputValue(QString, QString)", "종목코드", code)
        self.api.dynamicCall("CommRqData(QString, QString, int, QString)", "주식기본정보", "opt10001", 0, "0101")
        time.sleep(1)  # 데이터 수신 대기
        return self.api.dynamicCall("GetCommData(QString, QString, int, QString)", "주식기본정보", "opt10001", 0, "현재가")

api = KiwoomAPI()
price = api.get_price("005930")  # 삼성전자
print("삼성전자 현재가:", price)

위 코드에서는 키움증권 API로 로그인하고, 특정 종목(삼성전자)의 현재가를 가져오는 기본적인 기능을 구현하였습니다. detail level로는 데이터 요청 후 반드시 대기 시간을 두어야 하는 점이 있습니다.

3.2 주식 주문하기

주식을 주문하는 방법도 알아보겠습니다. 다음 코드를 추가하여 매수 주문 기능을 구현해 보겠습니다.

class KiwoomAPI:
    # ... 이전 코드 생략 ...

    def buy_stock(self, code, qty):
        self.api.dynamicCall("SetInputValue(QString, QString)", "종목코드", code)
        self.api.dynamicCall("SetInputValue(QString, QString)", "주문수량", qty)
        self.api.dynamicCall("SetInputValue(QString, QString)", "가격", self.get_price(code))
        self.api.dynamicCall("SetInputValue(QString, QString)", "거래구분", "1") # 1: 매수, 2: 매도
        self.api.dynamicCall("CommRqData(QString, QString, int, QString)", "주식주문", "opt10003", 0, "0101")
        time.sleep(1)
        print("주문 완료")

# 예제 사용
api.buy_stock("005930", 1)  # 삼성전자 1주 매수

4. 자동매매 시스템 구축하기

이제 기본적인 API 사용에 대한 이해를 바탕으로 간단한 자동매매 전략을 작성해보겠습니다. 예를 들어, 특정 조건을 만족할 때 자동으로 매수하는 방식으로 구현할 수 있습니다.

4.1 간단한 이동평균 전략

가장 간단한 자동매매 전략 중 하나는 이동평균선을 이용하는 것입니다. 단기 이동평균선이 장기 이동평균선을 상향 돌파할 때 매수하고, 하향 돌파할 때 매도하는 방식입니다.

import pandas as pd

def get_historical_data(code, count):
    # 과거 데이터 요청
    # 이 부분은 키움 API에서 제공하는 다른 호출을 통해 데이터를 받아와야 함.
    return pd.DataFrame()  # 데이터프레임 형식으로 반환

def trading_strategy():
    historical_data = get_historical_data("005930", 100)
    historical_data['MA5'] = historical_data['종가'].rolling(window=5).mean()
    historical_data['MA20'] = historical_data['종가'].rolling(window=20).mean()

    if historical_data['MA5'].iloc[-2] < historical_data['MA20'].iloc[-2] and historical_data['MA5'].iloc[-1] > historical_data['MA20'].iloc[-1]:
        print("매수 신호 발생")
        api.buy_stock("005930", 1)
    elif historical_data['MA5'].iloc[-2] > historical_data['MA20'].iloc[-2] and historical_data['MA5'].iloc[-1] < historical_data['MA20'].iloc[-1]:
        print("매도 신호 발생")
        # api.sell_stock("005930", 1)  # 매도 로직은 추후 추가 가능

trading_strategy()

5. 주의사항 및 결론

자동매매를 구현할 때는 주의해야 할 점이 많습니다. 우선 다음 사항을 염두에 두시기 바랍니다.

  • 실제 돈을 투자하기 전에 충분한 백테스트를 통해 전략의 유효성을 검증해야 합니다.
  • API의 호출 한계를 초과하지 않도록 주의하고, 필요 시 예외처리를 구현해야 합니다.
  • 시장에서의 변동성을 고려하여 리스크 관리 방안을 마련해야 합니다.

이번 강좌에서는 파이썬을 이용한 자동매매 시스템 구축의 기초를 다뤄보았습니다. 기초적인 API 사용 예제와 간단한 전략 구현을 통해 기본적인 흐름을 이해할 수 있었기를 바랍니다. 앞으로 더 복잡한 시스템과 전략을 개발해 나가는 데 있어 이 강좌가 도움이 되길 바랍니다.

파이썬 자동매매 개발, 키움증권 API, 로그인 이벤트 처리하기

키움증권 API와 로그인 이벤트 처리하기

주식 거래 자동화는 현대의 투자 환경에서 점점 더 중요한 요소가 되고 있습니다. 이번 강좌에서는 파이썬을 이용하여 키움증권 API를 활용한 자동매매 소프트웨어의 개발 과정 중 로그인 이벤트 처리 방법에 대해 자세히 설명하겠습니다. 키움증권 API는 한국 주식 시장에서 매우 인기가 있으며, 강력한 기능을 제공하며 특히 많은 트레이더들이 선호합니다.

키움증권 API 소개

키움증권 API는 키움증권에서 제공하는 프로그래밍 인터페이스로, 사용자는 이를 통해 프로그램matically 주식 거래를 실행할 수 있습니다. API를 사용하여 주식의 매매, 잔고 조회, 시세 데이터 수집 등 다양한 작업을 수행할 수 있습니다. 설계된 클라이언트 소프트웨어는 주로 아래의 기능을 수행할 수 있습니다:

  • 주식 매수 및 매도
  • 실시간 시세 조회
  • 거래 내역 확인
  • 손익 분석

환경 설정하기

키움증권 API를 사용하기 위해 다음과 같은 환경 설정이 필요합니다.

  1. 키움증권 계좌 개설 및 공인인증서 등록
  2. 키움증권 Open API+를 PC에 설치
  3. 필요한 라이브러리 설치하기

키움증권 Open API+를 설치하면 <OpenAPI>를 사용할 수 있는 전용 DLL 파일들이 제공됩니다. 파이썬과 통신하기 위해서 pywin32 라이브러리를 설치해야 합니다. 이를 위해 다음과 같이 명령어를 입력합니다:

pip install pywin32

로그인 이벤트 처리하기

키움증권 API의 첫 단계는 로그인하는 것입니다. 로그인 이벤트를 처리하기 위한 기본적인 절차는 다음과 같습니다:

  1. API 초기화
  2. 로그인 요청
  3. 로그인 성공 여부 확인

API 초기화

API를 사용하기 위해서는 먼저 COM 객체를 초기화해야 합니다. 아래는 초기화를 위한 기본 코드 예제입니다:

import win32com.client

# 키움증권 API 초기화
kiwoom = win32com.client.Dispatch("KHOpenAPI.KHOpenAPICtrl.1")

로그인 요청하기

로그인은 <CommConnect> 메서드를 호출하여 이루어집니다. 이 메서드는 로그인 창을 띄우고 로그인을 처리합니다. 아래는 로그인 요청 코드입니다:

# 로그인 요청
kiwoom.CommConnect()  # 로그인 창 생성

로그인 이벤트 처리

로그인 요청 후, 로그인 결과에 대한 정보를 처리해야 합니다. 이를 위해 <OnEventConnect> 이벤트 핸들러를 이용하여 로그인 결과를 확인할 수 있습니다. 이 이벤트는 성공적인 로그인 시 호출되며, 다음과 같이 처리할 수 있습니다:

class MyKiwoom:
    def __init__(self):
        self.kiwoom = win32com.client.Dispatch("KHOpenAPI.KHOpenAPICtrl.1")
        self.kiwoom.OnEventConnect.connect(self.on_event_connect)

    def login(self):
        self.kiwoom.CommConnect()  # 로그인 요청

    def on_event_connect(self, err_code):
        if err_code == 0:
            print("로그인 성공")
        else:
            print("로그인 실패, 에러 코드:", err_code)

# Example usage
my_kiwoom = MyKiwoom()
my_kiwoom.login()

로그인 성공 이후 작동

로그인에 성공하면 이제 API를 통해 다양한 요청을 구사할 수 있습니다. 아래는 로그인 후 보유 종목 목록을 조회하는 방법입니다:

def get_stock_list(self):
        count = self.kiwoom.GetAccountList()
        stock_list = []
        for i in range(count):
            stock_code = self.kiwoom.GetAccountStock(i)
            if stock_code:
                stock_list.append(stock_code)
        return stock_list

# 보유 종목 조회 예제
print(my_kiwoom.get_stock_list())

정리 및 추가 조언

이번 시간에는 키움증권 API를 통해 로그인을 처리하는 방법을 알아보았습니다. API의 다양한 메서드를 통해 주식 거래 자동화를 실시할 수 있는 가능성은 무궁무진합니다. 추가로 실시간 데이터를 활용하여 자동매매 알고리즘을 구축하는 방법 등에 대해서도 연구해보는 것이 좋습니다.

마지막으로, 주식 거래에는 항상 리스크가 따르니 자동매매를 진행하기 전에 충분한 테스트를 거치는 것을 잊지 마세요!

파이썬 자동매매 개발, 키움증권 API, 기본 정보 요청하기

안녕하세요! 이번 포스트에서는 파이썬을 이용하여 자동매매 시스템을 개발하는 방법 중 하나인 키움증권 API를 이용해 기본 정보를 요청하는 방법에 대해 알아보겠습니다. 주식 거래에 관심 있는 많은 분들이 매매를 자동화하고자 하여 이 주제를 선택하신 것이라 생각됩니다.

1. 키움증권 API란?

키움증권 API는 키움증권에서 제공하는 프로그램을 통해 주식 매매 및 정보를 조회할 수 있는 인터페이스입니다. 이 API를 이용하면 키움증권 계좌에 접근하여 주식 거래 및 정보를 자동으로 가져올 수 있습니다. 특히, 파이썬을 사용하면 간편하게 요청하고 응답을 처리할 수 있어 많은 개발자들이 선호하고 있습니다.

2. 개발 환경 설정하기

키움증권 API를 사용하기 위해서는 다음의 사전 준비가 필요합니다:

  • 키움증권 계좌 개설
  • 키움증권 OpenAPI+에 가입
  • 키움증권 API 설치 및 환경설정
  • Python 및 필요 청구 라이브러리 설치

2.1 키움증권 OpenAPI+ 설치

키움증권에서 제공하는 OpenAPI+ 프로그램을 다운로드 받아 설치합니다. 설치 후 API 사용을 위해 로그인을 해야 합니다.

2.2 Python 설치

Python이 설치되어 있지 않다면 공식 홈페이지를 통해 다운로드하고 설치해 주세요.

2.3 필요한 라이브러리 설치

pip install pyqt5

키움증권 API는 Qt 라이브러리를 사용하므로, PyQt5를 설치해야 합니다.

3. 키움증권 API 접속하기

키움증권 API에 접속하기 위해서는 우선 키움 API를 초기화해야 합니다. 이를 위해 다음과 같은 코드를 작성할 수 있습니다.

import sys
from PyQt5.QtWidgets import QApplication
from kiwoom import Kiwoom

app = QApplication(sys.argv)
kiwoom = Kiwoom()
kiwoom.CommConnect()  # 로그인 창 띄우기

이 코드는 PyQt5를 사용하여 로그인하기 위한 팝업 창을 생성합니다. 사용자가 자신의 계정으로 로그인하면 API에 접근할 수 있습니다.

4. 기본 정보 요청하기

로그인 후 기본적인 주식 정보를 요청하기 위해서는 GetMasterCodeName 메소드를 사용합니다. 이 메소드를 통해 주식의 코드에 대한 이름을 조회할 수 있습니다.

code = "005930"  # 삼성전자
name = kiwoom.GetMasterCodeName(code)
print(name)  # 삼성전자

4.1 주식 정보 조회 예제

다음 코드는 여러 주식의 코드를 입력받아 그에 대한 이름을 출력하는 예제입니다.

codes = ["005930", "000660", "035420", "051910"]  # 삼성전자, SK하이닉스, NAVER, LG생활건강
for code in codes:
    name = kiwoom.GetMasterCodeName(code)
    print(f"{code}: {name}")

5. 추가적인 정보 요청하기

기본적인 주식 정보를 조회하는 것 외에도 다른 정보를 요청할 수 있습니다. 예를 들어, 현재가, 시가, 고가, 저가 등의 정보를 요청할 수 있습니다. 이를 위해 GetMasterLastPrice, GetMasterOpen, GetMasterHigh, GetMasterLow 메소드를 사용할 수 있습니다.

current_price = kiwoom.GetMasterLastPrice(code)
open_price = kiwoom.GetMasterOpen(code)
high_price = kiwoom.GetMasterHigh(code)
low_price = kiwoom.GetMasterLow(code)

print(f"{code} 현재가: {current_price}, 시가: {open_price}, 고가: {high_price}, 저가: {low_price}")

6. 정리

이번 포스트에서는 키움증권 API를 이용해 기본 정보를 요청하는 방법에 대해 살펴보았습니다. API를 통해 다양한 정보를 손쉽게 가져와 자동매매 로직에 활용할 수 있습니다. 다음 포스트에서는 실시간 주식 정보를 가져오는 방법과 이를 이용한 자동매매 시스템의 기본 구조에 대해 설명할 예정입니다. 여러분의 많은 관심 부탁드립니다!

7. 참고 자료

파이썬 자동매매 개발, 키움증권 API, 계좌 개설 및 모듈 설치

자동매매 시스템은 빠르게 발전하고 있는 금융 기술 분야 중 하나입니다. 많은 트레이더들이 거래의 효율성을 높이기 위해 알고리즘 기반의 자동매매 시스템을 개발하고 있습니다. 이 글에서는 파이썬을 이용한 자동매매 개발에 필요한 키움증권 API 사용법부터 계좌 개설, 모듈 설치까지 자세히 설명하겠습니다.

1. 키움증권 계좌 개설하기

자동매매 시스템을 개발하기 위해서는 우선 증권 계좌를 개설해야 합니다. 키움증권의 계좌를 개설하는 방법은 다음과 같습니다.

1.1. 키움증권 홈페이지 방문

키움증권의 공식 홈페이지(https://www.kiwoom.com)에 접속하여 ‘계좌 개설’ 메뉴를 클릭합니다.

1.2. 온라인 계좌 개설

온라인으로 계좌를 개설하기 위해서는 본인 인증이 필요합니다. 공인인증서를 준비하고, 신분증(주민등록증, 운전면허증)을 준비합니다.

1.3. 정보 입력 및 서류 제출

필요한 개인 정보를 입력하고, 증권 계좌의 종류를 선택합니다. 이후 신분증을 인증하고, 제출 서류를 전송합니다.

1.4. 계좌 개설 완료

모든 절차가 완료되면, 약 1~2일 이내에 계좌가 개설됩니다. 계좌가 개설되고 나면, 자동매매 프로그램을 위해 API를 사용할 수 있는 자격을 얻게 됩니다.

2. 키움증권 OPEN API 설치하기

키움증권의 API를 사용하기 위해서는 특정 프로그램이 필요합니다. 이 프로그램은 키움의 홈페이지에서 다운로드할 수 있습니다.

2.1. OPEN API 다운로드

키움증권 OPEN API는 ‘다운로드’ 메뉴에서 찾을 수 있습니다. SDK와 관련된 여러 파일을 다운로드합니다.

2.2. 사용자 매뉴얼 확인

키움증권은 OPEN API를 사용하기 위한 사용자 매뉴얼을 제공합니다. 매뉴얼을 통해 API의 기능과 사용법을 익힐 수 있습니다.

2.3. 환경 설정

다운로드한 파일을 적절한 위치에 압축 해제한 후, 환경변수 설정을 해야 합니다. Windows 사용자라면 ‘내 컴퓨터’ > ‘속성’ > ‘고급 시스템 설정’ > ‘환경 변수’에서 시스템 변수에 다음과 같이 추가합니다:

PATH : C:\Kiwoom\OpenAPI\

2.4. API 인증키 발급

키움증권의 API을 사용하기 위해서는 인증키가 필요합니다. 이 인증키는 키움증권의 고객센터에 문의하여 발급받을 수 있습니다.

3. Python 및 필요한 라이브러리 설치

이번 섹션에서는 파이썬과 관련 라이브러리를 설치하는 방법에 대해 알아보겠습니다.

3.1. Python 설치

Python은 공식 웹사이트(https://www.python.org/downloads/)에서 설치할 수 있습니다. 설치 과정에서 ‘Add Python to PATH’ 옵션을 체크합니다.

3.2. PyQt5 및 numpy 라이브러리 설치

자동매매 프로그램의 UI를 구축하기 위해 PyQt5가 필요합니다. 또한 Numpy를 사용하여 데이터 처리를 합니다. 아래의 명령어를 CMD에서 입력하여 설치합니다:

pip install PyQt5 numpy

4. 키움증권 API와 Python 연동하기

이제 키움증권 API를 사용하여 실제 매매 프로그램을 개발해보겠습니다.

4.1. API 클래스 정의

먼저, 키움증권의 OpenAPI를 호출하기 위해 클래스를 정의합니다.

import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QAxContainer import QAxWidget

class Kiwoom:
    def __init__(self):
        self.app = QApplication(sys.argv)
        self.kw_app = QAxWidget('KWOpenAPI.KWOpenAPICtrl.1')
        self.kw_app.OnEventConnect.connect(self.event_connect)

    def event_connect(self, err_code):
        if err_code == 0:
            print("연결 성공")
        else:
            print(f"연결 실패: {err_code}")

    def login(self):
        self.kw_app.dynamicCall("CommConnect()")

if __name__ == "__main__":
    kiwoom = Kiwoom()
    kiwoom.login()
    sys.exit(kiwoom.app.exec_())

4.2. 매매 요청 함수 추가

매매 요청을 위한 함수를 추가합니다.

def buy(self, code, qty):
    self.kw_app.dynamicCall("SendOrder(QString, QString, QString, int, QString, int, double, QString)", "buy", "YOUR_ACCOUNT", code, qty, "", "0", "0", "0")

4.3. 프로그램 실행 및 테스트

전체 코드를 실행하여 매매 연결이 잘 되는지 확인합니다. 이 과정에서 환경 설정이 잘 되어 있어야 하며, 키움증권의 API가 제대로 작동해야 합니다.

if __name__ == "__main__":
    kiwoom = Kiwoom()
    kiwoom.login()
    # 매매 테스트
    kiwoom.buy("005930", 1)  # 삼성전자 한 주 매수
    sys.exit(kiwoom.app.exec_())

5. 결론

이 글에서는 파이썬을 이용한 자동매매 개발을 위한 키움증권 API의 계좌 개설, 모듈 설치, API 연동 기초에 대해 설명했습니다. 실제 매매를 실행하기 위해서는 더 많은 테스트와 안정성 확보가 필요합니다. 또한, 실제 매매 시 위험 관리와 더불어 다양한 매매 전략이 필요합니다.

다음 글에서는 더욱 발전된 자동매매 시스템의 구현, 데이터 분석 및 알고리즘 개선에 대해 알아보겠습니다.

독자 여러분이 성공적인 자동매매 시스템을 구축하기를 바랍니다!

파이썬 자동매매 개발, 키움증권 API, 계좌 정보 가져오기

주식 자동매매 시스템을 개발하는 것은 요즘 주식 투자자들 사이에서 매우 인기 있는 주제입니다. 이러한 시스템은 컴퓨터 프로그램을 사용하여 자동으로 주식을 매매하는 메커니즘을 의미합니다. 본 강좌에서는 파이썬을 이용한 자동매매 개발의 첫 단계로, 키움증권 API를 사용하여 계좌 정보를 가져오는 방법을 알아보겠습니다.

1. 키움증권 API란?

키움증권 API는 키움증권의 Open API를 통해 제공되는 서비스로, 주식, 선물 및 옵션 거래뿐만 아니라 계좌 정보, 시세 정보 등을 프로그램을 통해 조회하고 트레이딩할 수 있는 기능을 제공합니다. 이 API를 통해 투자자는 다양한 전략을 자동으로 실행할 수 있습니다.

2. 키움증권 API 사용 준비하기

키움증권 API를 사용하기 위해서는 다음의 준비가 필요합니다.

  1. 키움증권 계좌 개설: 키움증권에 계좌를 개설해야 합니다.
  2. Open API 신청: 키움증권에서 Open API를 사용할 수 있도록 신청합니다.
  3. API 환경 설정: API를 사용할 컴퓨터에서 환경을 설정해야 합니다.

2.1 Open API 신청 방법

키움증권 홈페이지에 로그인 후, Open API 서비스 신청을 통해 API 사용 권한을 요청할 수 있습니다. 요청이 승인되면 API 키를 발급받게 됩니다. 이를 통해 API에 접근할 수 있습니다.

2.2 API 환경 설정

API를 사용하기 위해서는 Python에서 HTTP 요청을 보내고 받을 수 있는 패키지가 필요합니다. 우리는 주로 pywin32 라이브러리를 사용하여 윈도우의 COM 객체와 상호작용할 것입니다. 이 라이브러리는 다음과 같은 방법으로 설치할 수 있습니다.

pip install pywin32

3. 계좌 정보 가져오기

이제 키움증권 API를 통해 계좌 정보를 가져오는 방법을 실제 코드와 함께 알아보겠습니다.

3.1 키움증권 API 로그인

API를 사용하기 위해서는 먼저 로그인을 해야 합니다. 다음의 코드는 PyQt5를 사용하여 로그인 창을 띄우고 로그인 상태를 확인하는 방법입니다.

import os
import sys
import pythoncom
import win32com.client

from PyQt5 import QtWidgets

class Kiwoom:
    def __init__(self):
        self.app = QtWidgets.QApplication(sys.argv)
        self.khw = win32com.client.Dispatch("KH OPENAPI")  # 키움 API 객체 생성
        self.khw.OnEventConnect.connect(self._on_event_connect)

    def login(self):
        self.khw.CommConnect()  # 로그인 요청

    def _on_event_connect(self, err_code):
        if err_code == 0:
            print("로그인 성공")
        else:
            print("로그인 실패")

if __name__ == "__main__":
    kiwoom = Kiwoom()
    kiwoom.login()
    pythoncom.PumpThreads()  # 이벤트 루프 유지

3.2 계좌 정보 가져오기

로그인을 성공적으로 했다면 이제 계좌 정보를 가져올 수 있습니다. 키움증권 API를 통해 계좌 정보를 조회하는 방법은 아래와 같습니다.

class Kiwoom:
    # 이전 코드 이어서
    def get_account_info(self):
        account_list = self.khw.GetLoginInfo("ACCNO")  # 계좌번호 조회
        print("계좌 목록:", account_list)

        # 모든 계좌 정보 요청하기
        for account in account_list.split(';'):
            if account:
                print("계좌번호:", account)

if __name__ == "__main__":
    kiwoom = Kiwoom()
    kiwoom.login()
    pythoncom.PumpThreads()
    kiwoom.get_account_info()  # 계좌 정보 가져오기

위의 코드에서는 사용자의 계좌 목록을 가져오고, 각 계좌 번호를 출력합니다. GetLoginInfo 메서드를 사용하여 계좌 정보를 가져올 수 있습니다. 이후 이 정보를 바탕으로 필요한 다른 정보를 조회하거나 매매를 진행할 수 있습니다.

4. 계좌 별 자산 정보 조회하기

각 계좌의 자산 정보를 조회하는 방법을 알아보겠습니다. 계좌에서 보유한 주식의 수량, 평가 금액 등을 확인할 수 있습니다.

class Kiwoom:
    # 이전 코드 이어서
    def get_account_assets(self):
        # 자산 정보 요청 (AT: 평가금액/현재가)
        self.khw.SetInputValue("계좌번호", "입력할 계좌번호")
        self.khw.SetInputValue("비밀번호", "")  # 비밀번호
        self.khw.SetInputValue("상담유형", "0")  # 0: 일반, 1: 현물, 2: 선물, 3: 옵션
        self.khw.CommRcvData("010101", 0)  # 요청

if __name__ == "__main__":
    kiwoom = Kiwoom()
    kiwoom.login()
    pythoncom.PumpThreads()
    kiwoom.get_account_assets()  # 자산 정보 가져오기

5. 결론

이번 강좌에서는 키움증권 API를 활용하여 계좌 정보를 가져오는 방법을 설명하였습니다. 앞으로 더 나아가 매매 기능 구현, 시세 조회 기능 등을 추가하여 본인만의 자동매매 시스템을 개발하는 방법을 배울 수 있습니다. 다음 강좌에서는 실제 매매를 위한 추가적인 기능을 구현해보겠습니다.

6. 참고 자료