Skip to content

tpag20/quant_speed_test

Repository files navigation

키움증권 API 주문 속도 비교 프로그램

Warning

이 프로그램은 기본적으로 실제 계좌에 주문을 넣습니다.

키움증권의 OCX API(koapy)와 REST API(pyheroapi)를 이용하여 주식 주문 속도를 비교하는 프로그램입니다.

기능

  • OCX API 주문: koapy를 이용한 키움증권 OCX API 주문 실행
  • REST API 주문: pyheroapi를 이용한 키움증권 REST API 주문 실행
  • 속도 측정: 주문 전송 시간 및 체결 시간 측정
  • 통계 분석: 평균, 최소, 최대 시간 계산
  • 결과 저장: CSV 파일 및 텍스트 리포트 저장

요구사항

  • Python 3.8 이상
  • 키움증권 계좌 및 API 사용 신청
  • 키움증권 OpenAPI+ (OCX API 사용 시)

설치

  1. 저장소 클론 또는 파일 다운로드

  2. 필요한 패키지 설치:

pip install -r requirements.txt

또는 uv를 사용하는 경우:

uv pip install -r requirements.txt

설정

config.py 파일을 열어 다음 정보를 설정하세요:

# REST API 인증 정보
REST_API_CONFIG = {
    "app_key": "YOUR_APP_KEY",  # 키움증권에서 발급받은 APP KEY
    "secret_key": "YOUR_SECRET_KEY",  # 키움증권에서 발급받은 SECRET KEY
    "is_production": True  # True: 실전투자, False: 모의투자
}

# 계좌 정보
ACCOUNT_CONFIG = {
    "account_number": "YOUR_ACCOUNT_NUMBER"  # 계좌번호
}

# 주문 테스트 파라미터
ORDER_CONFIG = {
    "code": "005930",  # 종목코드
    "quantity": 1,  # 주문수량
    "price": 0,  # 주문가격 (0: 시장가)
    "hoga": "03",  # 거래구분 (00: 지정가, 03: 시장가)
    "order_type": 1  # 1: 신규매수, 2: 신규매도
}

사용 방법

기본 실행

python main.py

프로그램이 실행되면:

  1. 테스트 횟수를 입력합니다
  2. 현재 설정 정보를 확인합니다
  3. 실제 주문 실행에 대한 확인을 받습니다
  4. 테스트가 진행됩니다
  5. 결과가 콘솔에 출력되고 results/ 디렉토리에 저장됩니다

개별 모듈 테스트

OCX API 테스트

python ocx_order.py

REST API 테스트

python rest_order.py

결과 파일

테스트 완료 후 results/ 디렉토리에 다음 파일이 생성됩니다:

  • results_YYYYMMDD_HHMMSS.csv: 상세 테스트 결과 (CSV 형식)
  • report_YYYYMMDD_HHMMSS.txt: 통계 리포트 (텍스트 형식)

주의사항

⚠️ 중요: 이 프로그램은 실제 주문을 실행합니다!

  • 모의투자 환경에서 충분히 테스트한 후 실전투자에 사용하세요
  • API 호출 제한을 확인하고 준수하세요
  • API 키와 계좌번호는 절대 공개되지 않도록 주의하세요
  • 실제 거래에 따른 손익에 대해 책임을 지지 않습니다

파일 구조

quant_speed_test/
├── main.py              # 메인 실행 파일
├── ocx_order.py        # OCX API 주문 모듈
├── rest_order.py       # REST API 주문 모듈
├── speed_comparison.py # 속도 측정 및 비교 모듈
├── config.py           # 설정 파일
├── requirements.txt    # 필요한 패키지 목록
├── README.md          # 이 파일
└── results/           # 결과 저장 디렉토리

문제 해결

OCX API 연결 실패

  • 키움증권 OpenAPI+가 설치되어 있는지 확인하세요
  • 키움증권 HTS(영웅문)가 실행 중인지 확인하세요
  • 방화벽 설정을 확인하세요

REST API 연결 실패

  • config.py의 API 키가 올바른지 확인하세요
  • 키움증권 OpenAPI 홈페이지에서 REST API 서비스 신청 상태를 확인하세요
  • 네트워크 연결을 확인하세요

라이선스

이 프로그램은 교육 및 연구 목적으로 제공됩니다.

About

키움증권의 ocx_api와 rest_api간의 주문 체결 속도 비교

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages