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 사용 시)
-
저장소 클론 또는 파일 다운로드
-
필요한 패키지 설치:
pip install -r requirements.txt또는 uv를 사용하는 경우:
uv pip install -r requirements.txtconfig.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프로그램이 실행되면:
- 테스트 횟수를 입력합니다
- 현재 설정 정보를 확인합니다
- 실제 주문 실행에 대한 확인을 받습니다
- 테스트가 진행됩니다
- 결과가 콘솔에 출력되고
results/디렉토리에 저장됩니다
python ocx_order.pypython 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/ # 결과 저장 디렉토리
- 키움증권 OpenAPI+가 설치되어 있는지 확인하세요
- 키움증권 HTS(영웅문)가 실행 중인지 확인하세요
- 방화벽 설정을 확인하세요
config.py의 API 키가 올바른지 확인하세요- 키움증권 OpenAPI 홈페이지에서 REST API 서비스 신청 상태를 확인하세요
- 네트워크 연결을 확인하세요
이 프로그램은 교육 및 연구 목적으로 제공됩니다.