본문 바로가기

컴퓨터, IT/프로그래밍

(파이썬) 키움 API "에러코드표" 및 "장운영구분 FID215" 딕셔너리 선언문

반응형

OpenAPI의 에러코드와 장운영 구분 코드의 의미에 대해서 포스팅 하였습니다.

 

키움 개발가이드에 있는 에러코드표는 PDF형태라서

복사 붙여넣기를 하면 형태가 조금 깨집니다.

 

파이썬에서 바로 사용할 수 있게 변수선언문을 포스팅합니다.

 

어떤 블로그에서 튜플 선언문을 찾았는데,

복사 붙여넣기를 막아두어서 제가 직접 작업했습니다.

 

에러 코드를 반환하는 함수는 크게 3가지 입니다.

 

SendOrder

SendOrderCredit

_OnEventConnect

 

이중에서 OnEventConnect의 경우 API의 설치 여부와도 밀접하게 엮이기 때문에,

API환경이 잘 설치되었는지 점검하는 것이 선행되어야 합니다.

 

1. 에러 코드표

코드를 넣으면 의미를 반환하는 메소드로 만들어 두었습니다.

def error_code_list(self, code):
    """ 키움개발가이드 오류코드 목록 """
    error_code = {0: ('OP_ERR_NONE', '정상처리'),
                  -10: ('OP_ERR_FAIL', '실패'),
                  -100: ('OP_ERR_LOGIN', '사용자정보교환실패'),
                  -101: ('OP_ERR_CONNECT', '서버접속실패'),
                  -102: ('OP_ERR_VERSION', '버전처리실패'),
                  -103: ('OP_ERR_FIREWALL', '개인방화벽실패'),
                  -104: ('OP_ERR_MEMORY', '메모리보호실패'),
                  -105: ('OP_ERR_INPUT', '함수입력값오류'),
                  -106: ('OP_ERR_SOCKET_CLOSED', '통신연결종료'),
                  -200: ('OP_ERR_SISE_OVERFLOW', '시세조회과부하'),
                  -201: ('OP_ERR_RQ_STRUCT_FAIL', '전문작성초기화실패'),
                  -202: ('OP_ERR_RQ_STRING_FAIL', '전문작성입력값오류'),
                  -203: ('OP_ERR_NO_DATA', '데이터없음.'),
                  -204: ('OP_ERR_OVER_MAX_DATA', '조회가능한종목수초과'),
                  -205: ('OP_ERR_DATA_RCV_FAIL', '데이터수신실패'),
                  -206: ('OP_ERR_OVER_MAX_FID', '조회가능한FID수초과'),
                  -207: ('OP_ERR_REAL_CANCEL', '실시간해제오류'),
                  -300: ('OP_ERR_ORD_WRONG_INPUT', '입력값오류'),
                  -301: ('OP_ERR_ORD_WRONG_ACCTNO', '계좌비밀번호없음'),
                  -302: ('OP_ERR_OTHER_ACC_USE', '타인계좌사용오류'),
                  -303: ('OP_ERR_MIS_2BILL_EXC', '주문가격이20억원을초과'),
                  -304: ('OP_ERR_MIS_5BILL_EXC', '주문가격이50억원을초과'),
                  -305: ('OP_ERR_MIS_1PER_EXC', '주문수량이총발행주수의1%초과오류'),
                  -306: ('OP_ERR_MIS_3PER_EXC', '주문수량은총발행주수의3%초과오류'),
                  -307: ('OP_ERR_SEND_FAIL', '주문전송실패'),
                  -308: ('OP_ERR_ORD_OVERFLOW', '주문전송과부하'),
                  -309: ('OP_ERR_MIS_300CNT_EXC', '주문수량300계약초과'),
                  -310: ('OP_ERR_MIS_500CNT_EXC', '주문수량500계약초과'),
                  -340: ('OP_ERR_ORD_WRONG_ACCTINFO', '계좌정보없음'),
                  -500: ('OP_ERR_ORD_SYMCODE_EMPTY', '종목코드없음')}
    ret = error_code[code][1]
    return ret

 

 

2. 장운영 구분

실시간 데이터 타입인 FID 215는 장 운영구분을 의미하며,

따로 신청하지 않아도 API가 연동되어 로그인되면 자동으로 날아옵니다.

 

API개발가이드에 나와있는 코드 말고도 몇개의 문자가 추가된 상태입니다.

키움 API는 고객문의 게시판이 매우 활성화 되어있으므로,

게시판 검색을 해보는 것이 도움이 됩니다.

개발가이드 외 추가된 코드정보도 게시판에서 찾을 수 있습니다.

 

 

market_code = {'0': '장시작전', '2': '장마감전동시호가', '3': '장시작', '4': '장종료-예상지수종료',
               '8': '장마감', '9': '장종료-시간외종료', 'a': '시간외종가매매시작', 'b': '시간외종가매매종료',
               'c': '시간외단일가매매시작', 'd':'시간외단일가매매종료',
               's': '선옵장마감전동시호가시작', 'e': '선옵장마감전동시호가종료'}

 

 

 

 

복붙 해서 사용하시는데 도움이 되길 바라면서

포스팅 마치겠습니다~.

 

 

픽사베이: https://pixabay.com/images/id-3124412/