일반
2020.10.26 22:21

키움 OpenAPI+

조회 수 60 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files

https://www3.kiwoom.com/nkw.templateFrameSet.do?m=m1408000000


1.프로그램 구성 파일

1.1 라이브러리 구성 파일

- 파일경로 : [SYSTEM DRIVE:]/Program Root/

프로그램 구성 파일
구 분파일명설 명비 고
DLLKHOpenAPI.ocxOpenApi 실행 모듈 
OPCommApi.dll통신 모듈 
OPComms.dll서버와의 TCP/IP 연결 모듈 
OPSecurity.dll통신 암호화 모듈 
librsadlx.dll  
nsldap32v11.dll  
ZIPDLL.DLL압축 모듈 
1.2 프로그램 데이터 파일

- 파일경로 : [SYSTEM DRIVE:]/Program Root/Data

프로그램 데이터 파일
구분파일명설명비고
데이터파일OPTxxxxx.enc
OPWxxxxx.enc
통신용 데이터 파일 (약 100여개)
상세 내역은 첨부 자료 확인
 
1.3 시스템 데이터 파일

- 파일경로 : [SYSTEM DRIVE:]/Program Root/System

시스템 데이터 파일
구분파일명설명비고
시스템jongacc.dat계좌 관련 데이터 파일 
OPComms.ini통신 속성 관련 데이터 파일 

2.Open API 명세서

2.1 Open API 컨트롤

- OpenApi는 ActiveX Control (OCX) 형태의 OLE 컨트롤을 기반으로 설계 및 구현되어있다. 일반적인 OCX와 동일하게 윈도우 운영체제에 컨트롤을 등록 해야 사용 할 수 있다.

Open API 컨트롤
 내용비고
컨틀롤 모듈KHOpenApi.OCX 
라이브러리 형태OCX – OLE Control Extension, DLL 
호 환 성Microsoft Windows XP SP3 이상 
개발 환경Mocrosoft Visual C++ 2010 
버 전1.0.0.1 
2.2 Open API 식별자

- OpenAPI 컨트롤의 인터페이스 식별자(Interface ID : GUID)는 유일성(Unique)을 지니며 이중으로 등록 되어서는 안된다.

- OpenAPI 컨트롤의 생성 및 데이터 상호 교환을 위한 컨트롤 인터페이스 식별자는 다음과 같다.

Open API 메소드
구분식별자내용
ControlA1574A0D-6BFA-4BD7-9020-DED88711818D컨트롤 클래스
DispatchCF20FBB6-EDD4-4BE5-A473-FEF91977DEB6프로퍼티/메소드 제어
Event7335F12D-8973-4BD5-B7F0-12DF03D175B7이벤트 제어
Module6D8C2B4D-EF41-4750-8AD4-C299033833FB컨트롤 모듈
2.3 Open API 메소드

- OpenAPI 제어 및 편집을 위한 인터페이스 메소드(Interface Method) 목록은 다름과 같다.

Open API 메소드
ID타입이름설명
1LONGCommConnect로그인 윈도우를 실행한다.
2voidCommTerminate통신 접속을 해제한다.
3LONGCommRqData통신 데이터를 송신한다.
4BSTRGetLoginInfo로그인 정보를 반환한다.
5LONGSendOrder주식주문 Tran을 송신한다.
6 여분용 
7voidSetInputValue 
8LONGSetOutputFID 
9BSTRCommGetData수신 받은 데이터에서 해당 항목을 반환한다.
10voidDisconnectRealdata last리얼 시세를 끊는다.
11LONGGetRepeatCnt수신 받은 데이터의 반복 개수를 반환한다.
12LONGCommKwRqData관심종목을 조회 한다.
13BSTRGetAPIModulePathOpenApi 모듈이 설치되어 있는 디렉토리를 반환한다.
14BSTRGetCodeListByMarket장구분별 종목코드 리스트를 반환한다.
15LONGGetConnectState통신 접속 상태를 반환한다.
16BSTRGetMasterCodeName종목코드의 종목명을 반환한다.
17LONGGetMasterListedStockCnt종목코드의 상장주식수를 반환한다.
18BSTRGetMasterConstruction종목코드의 감리구분을 반환한다.
19BSTRGetMasterListedStockDate종목코드의 상장일을 반환한다.
20BSTRGetMasterLastPrice종목코드의 전일가를 반환한다.
21BSTRGetMasterStockState종목코드의 종목상태를 반환한다.
2.4 Open API컨트롤 이벤트

- 차트 컨트롤에서 발생하는 컨트롤 이벤트 목록은 다음과 같다.

Open API컨트롤 이벤트
ID타입이름설명
1VoidOnReceiveTrDataTran 수신시 이벤트
2VoidOnReceiveRealdata last실시간 시세 이벤트
3VoidOnReceiveMsg수신 메시지 이벤트
4VoidOnReceiveChejanData주문 접수/확인 수신시 이벤트
5VoidOnEventConnect통신 연결 상태 변경시 이벤트

3.제어 함수 상세 명세서

- OpenAPI Active X 컨트롤은 프로퍼티(property) 및 메소드(method)를 통하여 제어 및 조작을 할 수 있다. 이러한 차트를 제어 하는 함수에 대한 상세 명세는 다름과 같습니다. - 개별 항목 검색의 편의를 위하여 ID 순으로 정렬하였습니다.

3.1 메소드(Method)

1) CommConnect

원형LONG CommConnect()
설명로그인 윈도우를 실행한다.
입력값없음
반환값0 - 성공, 음수값은 실패
비고로그인이 성공하거나 실패하는 경우 OnEventConnect 이벤트가 발생하고 이벤트의 인자 값으로 로그인 성공 여부를 알 수 있다.

2) CommTerminate

원형void CommTerminate()
설명OpenAPI의 서버 접속을 해제한다.
입력값없음
반환값없음
비고통신 연결 상태는 GetConnectState 메소드로 알 수 있다.

3) CommRqData

원형LONG CommRqData(BSTR sRQName, BSTR sTrCode, long nPrevNext, BSTR sScreenNo)
설명Tran을 서버로 송신한다.
입력값BSTR sRQName
BSTR sTrCode
long nPrevNext
BSTR sScreenNo
반환값OP_ERR_SISE_OVERFLOW – 과도한 시세조회로 인한 통신불가
OP_ERR_RQ_STRUCT_FAIL – 입력 구조체 생성 실패
OP_ERR_RQ_STRING_FAIL – 요청전문 작성 실패
OP_ERR_NONE – 정상처리
비고sRQName – 사용자구분 명
sTrCode - Tran명 입력
nPrevNext - 0:조회, 2:연속
sScreenNo - 4자리의 화면번호

4) GetLoginInfo

원형BSTR GetLoginInfo(BSTR sTag)
설명로그인한 사용자 정보를 반환한다.
입력값BSTR sTag : 사용자 정보 구분 TAG값 (비고)
반환값TAG값에 따른 데이터 반환
비고BSTR sTag에 들어 갈 수 있는 값은 아래와 같음
“ACCOUNT_CNT” – 전체 계좌 개수를 반환한다.
"ACCNO" – 전체 계좌를 반환한다. 계좌별 구분은 ‘;’이다.
“USER_ID” - 사용자 ID를 반환한다.
“USER_NAME” – 사용자명을 반환한다.
“KEY_BSECGB” – 키보드보안 해지여부. 0:정상, 1:해지
“FIREW_SECGB” – 방화벽 설정 여부. 0:미설정, 1:설정, 2:해지

5) SendOrder

원형LONG SendOrder(
BSTR sRQName,
BSTR sScreenNo,
BSTR sAccNo,
BSTR sPw,
LONG nOrderType,
BSTR sCode,
LONG nQty,
LONG nPrice,
LONG nJangTimeGb,
BSTR sHogaGb,
LONG nCondType,
BSTR sOrgOrderNo,
BOOL bCredit,
BSTR sCreditType,
LONG nCreditOrderCode,
BSTR sLoanDate )
설명주식 주문을 서버로 전송한다.
입력값sRQName - 사용자 구분 요청 명
sScreenNo - 화면번호[4]
sAccNo - 계좌번호[10]
sPw – 1.0.0.1 버전 이후 사용하지 않음.
nOrderType - 주문유형 (1:신규매수, 2:신규매도, 3:매수취소, 4:매도취소, 5:매수정정, 6:매도정정)
sCode, - 주식종목코드
nQty – 주문수량
nPrice – 주문단가
nJangTimeGb – 1.0.0.1 버전 이후 사용하지 않음.
sHogaGb - 거래구분
nCondType – 1.0.0.1 버전 이후 사용하지 않음.
sOrgOrderNo – 원주문번호
bCredit – 1.0.0.1 버전 이후 사용하지 않음.
sCreditType – 1.0.0.1 버전 이후 사용하지 않음.
nCreditOrderCode – 1.0.0.1 버전 이후 사용하지 않음.
sLoanDate – 1.0.0.1 버전 이후 사용하지 않음.
반환값 에러코드 <4.에러코드표 참고>
비고sHogaGb – 0:지정가, 3:시장가, 5:조건부지정가, 6:최유리지정가, 7:최우선지정가, 10:지정가IOC, 13:시장가IOC, 16:최유리IOC, 20:지정가FOK, 23:시장가FOK, 26:최유리FOK, 61:시간외단일가매매, 81:시간외종가

6) 없음

원형 
설명 
입력값 
반환값 
비고 

7) SetInputValue

원형void SetInputValue(BSTR sID, BSTR sValue)
설명Tran 입력 값을 서버통신 전에 입력한다.
입력값sID – 아이템명
sValue – 입력 값
반환값없음
비고통신 Tran 매뉴얼 참고

8) SetOutputFID

원형LONG SetOutputFID(BSTR sID)
설명1.0.0.1 버전 이후 사용하지 않음.
입력값 
반환값 
비고 

9) CommGetData

원형BSTR CommGetData(LPCTSTR sJongmokCode, LPCTSTR sRealType, LPCTSTR sFieldName, long nIndex, LPCTSTR sInnerFieldName)
설명Tran 데이터, 실시간 데이터, 체결잔고 데이터를 반환한다.
입력값<비고>
반환값요청 데이터
비고○1 Tran 데이터
sJongmokCode : Tran명
sRealType : 사용안함
sFieldName : 레코드명
nIndex : 반복인덱스
sInnerFieldName: 아이템명
○1 실시간 데이터
sJongmokCode : Key Code
sRealType : Real Type
sFieldName : Item Index
nIndex : 사용안함
sInnerFieldName:사용안함
○1 체결 데이터
sJongmokCode : 체결구분
sRealType : “-1”
sFieldName : FID
nIndex : 사용안함
sInnerFieldName:사용안함

10) DisconnectRealdata last

원형void DisconnectRealdata last(LPCTSTR sScnNo)
설명화면 내 모든 리얼데이터 요청을 제거한다.
입력값sScnNo – 화면번호[4]
반환값없음
비고화면을 종료할 때 반드시 위 함수를 호출해야 한다.

11) GetRepeatCnt

원형LONG GetRepeatCnt(LPCTSTR sTrCode, LPCTSTR sRecordName)
설명레코드 반복횟수를 반환한다.
입력값sTrCode – Tran 명
sRecordName – 레코드 명
반환값레코드의 반복횟수
비고 

12) CommKwRqData

원형LONG CommKwRqData(LPCTSTR sArrCode, BOOL bNext, int nCodeCount, int nTypeFlag, LPCTSTR sRQName, LPCTSTR sScreenNo)
설명복수종목조회 Tran을 서버로 송신한다.
입력값sArrCode – 종목리스트
bNext – 연속조회요청
nCodeCount – 종목개수
nTypeFlag – 조회구분
sRQName – 사용자구분 명
sScreenNo – 화면번호[4]
반환값OP_ERR_RQ_STRING – 요청 전문 작성 실패
OP_ERR_NONE - 정상처리
비고sArrCode – 종목간 구분은 ‘;’이다.
nTypeFlag – 0:관심종목정보, 1:관심종목투자자정보, 2:관심종목프로그램정보

13) GetAPIModulePath

원형BSTR GetAPIModulePath()
설명OpenAPI모듈의 경로를 반환한다.
입력값 없음
반환값경로
비고 

14) GetCodeListByMarket

원형BSTR GetCodeListByMarket(LPCTSTR sMarket)
설명시장구분에 따른 종목코드를 반환한다.
입력값sMarket – 시장구분
반환값종목코드 리스트, 종목간 구분은 ’;’이다.
비고sMarket – 0:장내, 3:ELW, 4:뮤추얼펀드, 5:신주인수권, 6:리츠,8:ETF, 9:하이일드펀드, 10:코스닥, 30:제3시장

15) GetConnectState

원형LONG GetConnectState()
설명현재접속상태를 반환한다.
입력값 없음
반환값접속상태
비고0:미연결, 1:연결완료

16) GetMasterCodeName

원형BSTR GetMarsterCodeName(LPCTSTR strCode)
설명종목코드의 한글명을 반환한다.
입력값strCode – 종목코드
반환값종목한글명
비고 

17) GetMasterListedStockCnt

원형LONG GetMasterListedStockCnt(LPCTSTR strCode)
설명종목코드의 상장주식수를 반환한다.
입력값strCode – 종목코드
반환값상장주식수
비고 

18) GetMasterConstruction

원형BSTR GetMasterConstruction(LPCTSTR strCode)
설명종목코드의 감리구분을 반환한다.
입력값strCode – 종목코드
반환값감리구분
비고 감리구분 – 정상, 투자주의, 투자경고, 투자위험, 투자주의환기종목

19) GetMasterListedStockDate

원형BSTR GetMasterListedStockDate(LPCTSTR strCode)
설명종목코드의 상장일을 반환한다.
입력값strCode – 종목코드
반환값상장일
비고 상장일 포멧 – xxxxxxxx[8]

20) GetMasterLastPrice

원형BSTR GetMasterLastPrice(LPCTSTR strCode)
설명종목코드의 전일가를 반환한다.
입력값strCode – 종목코드
반환값전일가
비고 

21) GetMasterStockState

원형BSTR GetMasterStockState(LPCTSTR strCode)
설명종목코드의 종목상태를 반환한다.
입력값strCode – 종목코드
반환값종목상태
비고종목상태 – 정상, 증거금100%, 거래정지, 관리종목, 감리종목, 투자유의종목,담보대출, 액면분할, 신용가능
3.2 이 벤 트

1) OnReceiveTrData

원형void OnReceiveTrData(
LPCTSTR sScrNo,
LPCTSTR sRQName,
LPCTSTR sTrCode,
LPCTSTR sRecordName,
LPCTSTR sPreNext,
LONG nDataLength,
LPCTSTR sErrorCode,
LPCTSTR sMessage,
LPCTSTR sSplmMsg)
설명서버통신 후 데이터를 받은 시점을 알려준다.
입력값sScrNo – 화면번호
sRQName – 사용자구분 명
sTrCode – Tran 명
sRecordName – Record 명
sPreNext – 연속조회 유무
nDataLength – 1.0.0.1 버전 이후 사용하지 않음.
sErrorCode – 1.0.0.1 버전 이후 사용하지 않음.
sMessage – 1.0.0.1 버전 이후 사용하지 않음.
sSplmMsg - 1.0.0.1 버전 이후 사용하지 않음.
반환값없음
비고sRQName – CommRqData의 sRQName과 매핑되는 이름이다.
sTrCode – CommRqData의 sTrCode과 매핑되는 이름이다.

2) OnReceiveRealdata last

원형void OnReceiveRealdata last(LPCTSTR sJongmokCode, LONG nRealType, LPCTSTR sRealdata last)
설명실시간데이터를 받은 시점을 알려준다.
입력값sJongmokCode – 종목코드
nRealType – 리얼타입
sRealdata last – 실시간 데이터전문
반환값없음
비고nRealType – realtime.dat 실시간데이터 정보 파일 참고

3) OnReceiveMsg

원형void OnReceiveMsg(LPCTSTR sScrNo, LPCTSTR sRQName, LPCTSTR sTrCode, LPCTSTR sMsg)
설명서버통신 후 메시지를 받은 시점을 알려준다.
입력값sScrNo – 화면번호
sRQName – 사용자구분 명
sTrCode – Tran 명
sMsg – 서버메시지
반환값없음
비고sScrNo – CommRqData의 sScrNo와 매핑된다.
sRQName – CommRqData의 sRQName 와 매핑된다.
sTrCode – CommRqData의 sTrCode 와 매핑된다.

4) OnReceiveChejanData

원형void OnReceiveChejanData(LPCTSTR sGubun, LONG nItemCnt, LPCTSTR sFidList);
설명체결데이터를 받은 시점을 알려준다.
입력값sGubun – 체결구분
nItemCnt - 아이템갯수
sFidList – 데이터리스트
반환값없음
비고sGubun – 0:주문체결통보, 1:잔고통보, 3:특이신호 <realtime.dat 실시간데이터 정보 파일 참고> sFidList – 데이터 구분은 ‘;’ 이다.

5) OnEventConnect

원형void OnEventConnect(LONG nErrCode);
설명서버 접속 관련 이벤트
입력값LONG nErrCode : 에러 코드
반환값없음
비고nErrCode가 0이면 로그인 성공, 음수면 실패 음수인 경우는 에러 코드 참조

4.에러 코드표

OP_ERR_NONE0//"정상처리"
OP_ERR_LOGIN-100//"사용자정보교환에 실패하였습니다. 잠시후 다시 시작하여 주십시오."
OP_ERR_CONNECT-101//"서버 접속 실패"
OP_ERR_VERSION-102//"버전처리가 실패하였습니다.
OP_ERR_SISE_OVERFLOW-200//”시세조회 과부하”
OP_ERR_RQ_STRUCT_FAIL-201//”REQUEST_INPUT_st Failed”
OP_ERR_RQ_STRING_FAIL-202//”요청 전문 작성 실패”
OP_ERR_ORD_WRONG_INPUT-300//”주문 입력값 오류”
OP_ERR_ORD_WRONG_ACCNO-301//”계좌비밀번호를 입력하십시오.”
OP_ERR_OTHER_ACC_USE-302//”타인계좌는 사용할 수 없습니다.
OP_ERR_MIS_2BILL_EXC-303//”주문가격이 20억원을 초과합니다.”
OP_ERR_MIS_5BILL_EXC-304//”주문가격은 50억원을 초과할 수 없습니다.”
OP_ERR_MIS_1PER_EXC-305//”주문수량이 총발행주수의 1%를 초과합니다.”
OP_ERR_MID_3PER_EXC-306//”주문수량은 총발행주수의 3%를 초과할 수 없습니다.”

Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
487 Pi 라즈베리파이 웹페이지 자동 실행 설정 방법 secret 2020.11.03 0 0
» 일반 키움 OpenAPI+ file 2020.10.26 60 0
485 PHP [PHP] .php 확장자 없이 URL 접속하기 2020.10.26 35 0
484 Android 안드로이드 국가별 언어코드 2020.10.06 120 0
483 Android Android Studio 안드로이드 스튜디오 단축키 2020.03.16 1050 0
482 일반 전기적 스펙에 관한 용어, 약자 정리 2020.02.24 1450 0
481 PHP SQL 일정 시간단위로 데이터 검색하기 2020.02.12 1350 0
480 LINUX Ubuntu php5.6 , php7.1 설치 및 셋팅하기 2020.02.11 1509 0
479 LINUX Ubuntu apt-get 명령어 정리 2020.02.11 1546 0
478 LINUX 우분투(Ubuntu) 설치된 패키지 목록 확인하기 2020.02.11 1318 0
477 일반 온습도, 미세먼지 정보 받아오기 secret 2020.01.10 0 0
476 Pi 아두이노 데이터 저장하기(Arduino EEPROM 사용하기) 2019.12.24 3865 0
475 LINUX mutt Gmail 설치, 사용 / Ubuntu 18.04 환경 2019.11.25 1864 0
474 LINUX 리눅스 명령행에서 메일 보내기(send mail from linux command line) 2019.11.25 3025 0
473 LINUX Ubuntu TFTP 서버 2019.10.30 2777 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 33 Next ›
/ 33

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5