주식

키움증권 API로 이동평균선 매매 자동화하기

블루태규 2025. 2. 4. 23:27
728x90
반응형

키움증권에서 이동평균선 자동매매를 구현하는 방법은 크게 두 가지로 나눌 수 있습니다.

  1. 키움증권에서 제공하는 API(HTS OpenAPI)를 활용한 자동매매 시스템 구축
  2. HTS(영웅문) 내에서 조건검색식을 활용한 반자동 매매 설정

1. 키움증권 OpenAPI를 활용한 자동매매

키움증권은 OpenAPI를 제공하여 사용자가 직접 프로그램을 개발하여 자동매매를 구현할 수 있습니다. 주로 Python을 사용하여 전략을 만들며, 이동평균선 기반으로 자동매매를 설정하려면 다음과 같은 단계를 따릅니다.

(1) 환경 설정

  • 키움증권 계좌 개설 후 API 사용 신청
  • 키움증권 OpenAPI+ 다운로드 및 로그인
  • pykiwoom 라이브러리 또는 Kiwoom OpenAPI 활용하여 자동매매 코드 작성

(2) 이동평균선 전략 설정

  • 5일, 20일, 60일, 120일 이동평균선을 설정
  • 골든크로스(단기선이 장기선을 돌파할 때 매수) 및 데드크로스(단기선이 장기선을 하향 돌파할 때 매도) 전략 적용

(3) 자동매매 코드 예제 (Python)

다음은 pykiwoom 라이브러리를 활용하여 이동평균선 자동매매를 구현하는 기본 코드입니다.

from pykiwoom.kiwoom import *
import time
import pandas as pd

# 키움 API 로그인
kiwoom = Kiwoom()
kiwoom.CommConnect(block=True)

# 종목 코드 설정 (예: 삼성전자)
ticker = "005930"

# 이동평균선 계산 함수
def get_moving_average(ticker, days):
    df = kiwoom.block_request("opt10081",
                              종목코드=ticker,
                              기준일자="20240101",
                              수정주가구분=1,
                              output="주식일봉차트조회",
                              next=0)
    df = pd.DataFrame(df)
    df['현재가'] = df['현재가'].astype(int)
    return df['현재가'].rolling(window=days).mean().iloc[-1]

# 매매 로직
while True:
    short_ma = get_moving_average(ticker, 5)   # 5일 이동평균선
    long_ma = get_moving_average(ticker, 20)  # 20일 이동평균선

    if short_ma > long_ma:  # 골든크로스 발생 시 매수
        kiwoom.SendOrder("매수", "0101", "계좌번호", 1, ticker, 1, 0, "03", "")
        print("매수 주문 실행")

    elif short_ma < long_ma:  # 데드크로스 발생 시 매도
        kiwoom.SendOrder("매도", "0101", "계좌번호", 2, ticker, 1, 0, "03", "")
        print("매도 주문 실행")

    time.sleep(60)  # 1분마다 확인

(4) 주의할 점

  • API를 활용한 매매는 모의투자로 충분히 테스트한 후 실전 매매에 적용해야 합니다.
  • 키움증권 API는 주기적으로 로그인을 유지해야 하는 제약이 있습니다.
  • 실전 투자에서는 슬리피지(가격 변동 차이)와 수수료 고려가 필요합니다.

2. 영웅문(HTS) 조건검색식을 활용한 반자동 매매

키움증권 HTS(영웅문)에서는 조건검색식을 활용하여 이동평균선 기반의 자동매매를 설정할 수 있습니다.

(1) 조건검색식 만들기

  1. HTS 실행 → [조건검색] 메뉴로 이동
  2. 조건 추가
    • 5일 이동평균선 > 20일 이동평균선 (골든크로스)
    • 5일 이동평균선 < 20일 이동평균선 (데드크로스)
  3. 조건 검색 결과를 실시간으로 모니터링
  4. 자동매매 설정 (매수/매도 주문 연동 가능)

(2) HTS에서 자동매매 설정

  • [주문] → [자동주문] → [조건검색식 연동]
  • 특정 조건에 맞을 때 자동 매매 실행

✅ 결론

이동평균선을 활용한 자동매매는 HTS의 조건검색식을 이용하면 간단하게 설정할 수 있고, API를 활용하면 보다 세밀한 자동매매가 가능합니다.

  • 초보자는 HTS의 조건검색식을 활용한 반자동 매매 추천
  • 프로그래밍이 가능하다면 Python + 키움 OpenAPI를 활용한 자동매매 추천

추가로 **백테스트(과거 데이터 검증)**를 통해 전략의 성과를 먼저 확인하는 것이 중요합니다.

반응형