OpenAPI 개발자매뉴얼 ( 키움증권 ) 한국소리마치
목차 1 프로그램구성파일 1.1 라이브러리구성파일 1.2 프로그램데이터파일 1.3 시스템데이터파일 2 OpenApi 명세서 2.1 OpenApi 컨트롤 2.2 OpenApi 식별자 2.3 OpenApi 메소드 2.4 OpenApi 컨트롤이벤트 2.5 Event 발생흐름 3 제어함수상세명세서 3.1 메소드 (Method) 3.2 이벤트 (Event) 4 에러코드표 5 실시간 5.1 주식시세 5.2 주식체결 5.3 주식우선호가 5.4 주식호가잔량 5.5 선물시세 5.6 선물호가잔량 5.7 선물이론가 5.8 옵션시세 2
5.9 옵션호가잔량 5.10 옵션이론가 5.11 주식옵션시세 5.12 주식옵션호가잔량 5.13 주식옵션이론가 5.14 선물옵션우선호가 5.15 업종지수 5.16 업종등락 5.17 장시작시간 5.18 투자자ticker 5.19 주문체결 5.20 잔고 5.21 신용잔고 5.22 주식시간외호가 5.23 주식당일거래원 3
키움 OpenAPI 개발자매뉴얼 1. 프로그램구성파일 1.1 라이브러리구성파일 - 파일경로 : [SYSTEM DRIVE:]/Program Root/ 구분 파일명 DLL KHOpenAPI.ocx OpenApi 실행모듈 OPCommApi.dll 통신모듈 OPComms.dll 서버와의 TCP/IP 연결모듈 OPSecurity.dll 통신암호화모듈 librsadlx.dll nsldap32v11.dll ZIPDLL.DLL 압축모듈 1.2 프로그램데이터파일 - 파일경로 : [SYSTEM DRIVE:]/Program Root/Data 구분 파일명 데이터파일 OPTxxxxx.enc 통신용데이터파일 ( 약 100여개 ) OPWxxxxx.enc 상세내역은첨부자료확인 1.3 시스템데이터파일 - 파일경로 : [SYSTEM DRIVE:]/Program Root/System 구분 파일명 시스템 jongacc.dat 계좌관련데이터파일 OPComms.ini 통신속성관련데이터파일 4
2. OpenApi 명세서 2.1 OpenApi 컨트롤 - OpenApi 는 ActiveX Control (OCX) 형태의 OLE 컨트롤을기반으로설계및구현되어있다. 일반적인 OCX 와동일하게윈도우운영체제에컨트롤을등록해야사용할수있다. 내용 컨틀롤모듈 KHOpenApi.OCX 라이브러리형태 OCX OLE Control Extension, DLL 호환성 Microsoft Windows XP SP3 이상 개발환경 Mocrosoft Visual C++ 2010 버 전 1.0.0.1 2.2 OpenAPI 식별자 - OpenAPI 컨트롤의인터페이스식별자 (Interface ID : GUID) 는유일성 (Unique) 을지니며이중으로등록되어서는안된다. - OpenAPI 컨트롤의생성및데이터상호교환을위한컨트롤인터페이스식별자는다음과같다. 구분 식별자 내용 Control A1574A0D-6BFA-4BD7-9020-DED88711818D 컨트롤클래스 Dispatch CF20FBB6-EDD4-4BE5-A473-FEF91977DEB6 프로퍼티 / 메소드제어 Event 7335F12D-8973-4BD5-B7F0-12DF03D175B7 이벤트제어 Module 6D8C2B4D-EF41-4750-8AD4-C299033833FB 컨트롤모듈 2.3 OpenAPI 메소드 - OpenAPI 제어및편집을위한인터페이스메소드 (Interface Method) 목록은다름과같다. ID 타입 이름 1 LONG CommConnect 로그인윈도우를실행한다. 2 void CommTerminate 통신접속을해제한다. 3 LONG CommRqData 통신데이터를송신한다. 4 BSTR GetLoginInfo 로그인정보를반환한다. 5 LONG SendOrder 주식주문 Tran을송신한다. 6 여분용 7 void SetInputValue 8 LONG SetOutput 9 BSTR CommGetData 수신받은데이터에서해당항목을반환한다. 10 void DisconnectRealData 리얼시세를끊는다. 11 LONG GetRepeatCnt 수신받은데이터의반복개수를반환한다. 12 LONG CommKwRqData 관심종목을조회한다. 13 BSTR GetAPIModulePath OpenApi 모듈이설치되어있는디렉토리를반환한다. 14 BSTR GetCodeListByMarket 장구분별종목코드리스트를반환한다. 15 LONG GetConnectState 통신접속상태를반환한다. 16 BSTR GetMasterCodeName 종목코드의종목명을반환한다. 17 LONG GetMasterListedStockCnt 종목코드의상장주식수를반환한다. 18 BSTR GetMasterConstruction 종목코드의감리구분을반환한다. 5
19 BSTR GetMasterListedStockDate 종목코드의상장일을반환한다. 20 BSTR GetMasterLastPrice 종목코드의전일가를반환한다. 21 BSTR GetMasterStockState 종목코드의종목상태를반환한다. 22 LONG GetDataCount 레코드의반복개수를반환한다. 23 BSTR GetOutputValue 수신데이터를반환한다. 24 BSTR GetCommData 수신데이터를반환한다. 25 BSTR GetCommRealData 실시간데이터를반환한다. 26 BSTR GetChejanData 체결잔고데이터를반환한다. 27 BSTR GetThemeGroupList 테마코드와그룹의리스트를반환한다. 28 BSTR GetThemeGroupCode 테마코드에해당하는종목코드를반환한다. 29 BSTR GetFutureList 지수선물코드리스트를반환한다. 30 BSTR GetFutureCodeByIndex 지수선물코드를반환한다. 31 BSTR GetActPriceList 지수옵션행사가리스트를반환한다. 32 BSTR GetMonthList 지수옵션월물리스트를반환한다. 33 BSTR GetOptionCode 지수옵션종목코드를반환한다. 34 BSTR GetOptionCodeByMonth 같은행사가다른월물의종목코드를반환한다. 35 BSTR GetOptionCodeByActPrice 같은월물다른행사가의종목코드를반환한다. 36 BSTR GetSFutureList 주식선물코드리스트를반환한다. 37 BSTR GetSFutureCodeByIndex 주식선물코드를반환한다. 38 BSTR GetSActPriceList 주식옵션행사가를반환한다. 39 BSTR GetSMonthList 주식옵션월물을반환한다. 40 BSTR GetSOptionCode 주식옵션코드를반환한다. 41 BSTR GetSOptionCodeByMonth 주식옵션월물만변경된코드를반환한다. 42 BSTR GetSOptionCodeByActPrice 주식옵션행사가만변경된코드를반환한다. 43 BSTR GetSFOBasisAssetList 주식선옵기초자산코드와이름을반환한다. 44 BSTR GetOptionATM 지수옵션 ATM을반환한다. 45 BSTR GetSOptionATM 주식옵션 ATM을반환한다. 46 BSTR GetBranchCodeName 회원사코드와이름을반환한다. 47 BSTR CommInvestRqData 투자자정보를조회한다. 2.4 OpenApi 컨트롤이벤트 - 차트컨트롤에서발생하는컨트롤이벤트목록은다음과같다. ID 타입 이름 1 Void OnReceiveTrData Tran 수신시이벤트 2 Void OnReceiveRealData 실시간시세이벤트 3 Void OnReceiveMsg 수신메시지이벤트 4 Void OnReceiveChejanData 주문접수 / 확인수신시이벤트 5 Void OnEventConnect 통신연결상태변경시이벤트 2.5 EVENT 발생흐름 6
A. 로그인 사용자 EXE OpenAPI CommConnect(); 버전처리 / 로그인창생성 ID/PW 입력로그인 로그인 OnEventConnect FireEvent ID 5 B. 통신처리 사용자 EXE OpenAPI SetInputValue(); CommRqData(); 통신저장 통신데이터송수신 OnReceiveMsg(); OnReceiveTrData(); CommGetData(); GetOutputValue(); 실시간데이터요청 FireEvent ID 3 FireEvent ID 1 통신결과반환 Receive Send GetCommData(); GetRepeatCnt(); GetDataCount(); Receive SERVER 실시간데이터수신 OnReceiveRealData(); CommGetData(); FireEvent ID 2 통신결과반환 GetCommRealData(); 7
C. 주문처리 사용자 EXE OpenAPI SendOrder(); 주문데이터송수신 OnReceiveMsg(); OnReceiveTrData(); FireEvent ID 3 FireEvent ID 1 Send Receive CommGetData(); GetOutputValue(); GetCommData(); 통신결과반환 Receive SERVER OnReceiveChejanData (); 체결데이터수신 FireEvent ID 2 D. 종료 사용자 EXE OpenAPI 화면종료시 DisconnectRealData(); 화면에수신되는실시간 데이터조회종료 API 종료시 CommTerminate (); API 소켓종료 3. 제어함수상세명세서 - OpenAPI Active X 컨트롤은프로퍼티 (property) 및메소드 (method) 를통하여제어및조작을할수있다. 이러한차트를제어하는함수에대한상세명세는다름과같습니다. - 개별항목검색의편의를위하여 ID 순으로정렬하였습니다. 8
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 자리의화면번호 Ex) openapi.commrqdata( RQ_1, OPT00001, 0, 0101 ); 4) GetLoginInfo BSTR GetLoginInfo(BSTR stag) 로그인한사용자정보를반환한다. 9
BSTR stag : 사용자정보구분 TAG 값 ( ) TAG 값에따른데이터반환 BSTR stag 에들어갈수있는값은아래와같음 ACCOUNT_CNT 전체계좌개수를반환한다. "ACCNO" 전체계좌를반환한다. 계좌별구분은 ; 이다. USER_ID - 사용자 ID 를반환한다. USER_NAME 사용자명을반환한다. KEY_BSECGB 키보드보안해지여부. 0: 정상, 1: 해지 FIREW_SECGB 방화벽설정여부. 0: 미설정, 1: 설정, 2: 해지 Ex) openapi.getlogininfo( ACCOUNT_CNT ); 5) SendOrder LONG SendOrder( BSTR srqname, BSTR sscreenno, BSTR saccno, LONG nordertype, BSTR scode, LONG nqty, LONG nprice, BSTR shogagb, BSTR sorgorderno ) 주식주문을서버로전송한다. srqname - 사용자구분요청명 sscreenno - 화면번호 [4] saccno - 계좌번호 [10] nordertype - 주문유형 (1: 신규매수, 2: 신규매도, 3: 매수취소, 4: 매도취소, 5: 매수정정, 6: 매도정정 ) scode, - 주식종목코드 nqty 주문수량 nprice 주문단가 shogagb - 거래구분 sorgorderno 원주문번호 에러코드 <4. 에러코드표참고 > 10
shogagb 0: 지정가, 3: 시장가, 5: 조건부지정가, 6: 최유리지정가, 7: 최우선지정가, 10: 지정가 IOC, 13: 시장가 IOC, 16: 최유리 IOC, 20: 지정가 FOK, 23: 시장가 FOK, 26: 최유리 FOK, 61: 시간외단일가매매, 81: 시간외종가 ex) 지정가매수 - openapi.sendorder( RQ_1, 0101, 5015123410, 1, 000660, 10, 48500, 0, ); 시장가매수 - openapi.sendorder( RQ_1, 0101, 5015123410, 1, 000660, 10, 0, 3, ); 매수정정 - openapi.sendorder( RQ_1, 0101, 5015123410, 5, 000660, 10, 49500, 0, 1 ); 매수취소 - openapi.sendorder( RQ_1, 0101, 5015123410, 3, 000660, 10, 0, 0, 2 ); 6) 없음 7) SetInputValue void SetInputValue(BSTR sid, BSTR svalue) Tran 을서버통신전에입력한다. sid 아이템명 svalue 없음 통신 Tran 매뉴얼참고 Ex) openapi.setinputvalue( 종목코드, 000660 ); openapi.setinputvalue( 계좌번호, 5015123401 ); 8) SetOutput LONG SetOutput(BSTR sid) 1.0.0.1 버전이후사용하지않음. 9) CommGetData BSTR CommGetData(LPCTSTR sjongmokcode, LPCTSTR srealtype, LPCTSTR sfieldname, long nindex, LPCTSTR sinnerfieldname) Tran 데이터, 실시간데이터, 체결잔고데이터를반환한다. 11
< > 요청데이터 1 Tran 데이터 sjongmokcode : Tran 명 1 실시간데이터 sjongmokcode : Key Code 1 체결데이터 sjongmokcode : 체결구분 srealtype : 사용안함 srealtype : Real Type srealtype : -1 sfieldname : 레코드명 sfieldname : Item Index sfieldname : 사용안함 nindex : 반복인덱스 sinnerfieldname: 아이템명 nindex : 사용안함 sinnerfieldname: 사용안함 nindex : ItemIndex sinnerfieldname: 사용안함 Ex) TR 정보요청 - openapi.commgetdata( OPT00001,, 주식기본정보, 0, 현재가 ); 실시간정보요청 - openapi.commgetdata( 000660, A, 0); 체결정보요청 - openapi.commgetdata( 000660, -1, 1); 10) DisconnectRealData void DisconnectRealData(LPCTSTR sscnno) 화면내모든리얼데이터요청을제거한다. sscnno 화면번호 [4] 없음 화면을종료할때반드시위함수를호출해야한다. Ex) openapi.disconnectrealdata( 0101 ); 11) GetRepeatCnt LONG GetRepeatCnt(LPCTSTR strcode, LPCTSTR srecordname) 레코드반복횟수를반환한다. strcode Tran 명 srecordname 레코드명 레코드의반복횟수 Ex) openapi.getrepeatcnt( OPT00001, 주식기본정보 ); 12) CommKwRqData LONG CommKwRqData(LPCTSTR sarrcode, BOOL bnext, int ncodecount, int ntypeflag, LPCTSTR srqname, LPCTSTR sscreenno) 복수종목조회 Tran 을서버로송신한다. sarrcode 종목리스트 bnext 연속조회요청 ncodecount 종목개수 12
ntypeflag 조회구분 srqname 사용자구분명 sscreenno 화면번호 [4] OP_ERR_RQ_STRING 요청전문작성실패 OP_ERR_NONE - 정상처리 sarrcode 종목간구분은 ; 이다. ntypeflag 0: 주식관심종목정보, 3: 선물옵션관심종목정보 ex) openapi.commkwrqdata( 000660;005930, 0, 2, 0, RQ_1, 0101 ); 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 종목코드 종목한글명 장내외, 지수선옵, 주식선옵검색가능. 13
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%, 거래정지, 관리종목, 감리종목, 투자유의종목, 담보대출, 액면분할, 신용가능 14
22) GetDataCount LONG GetDataCount(LPCTSTR strrecordname) 레코드의반복개수를반환한다. strrecordname 레코드명 레코드반복개수 Ex) openapi.getdatacount( 주식기본정보 ); 23) GetOutputValue BSTR GetOutputValue(LPCTSTR strrecordname, long nrepeatidx, long nitemidx) 레코드의반복순서와아이템의출력순서에따라수신데이터를반환한다. nrepeatidx 반복순서 nitemidx 아이템순서 수신데이터 Ex) 현재가출력 - openapi.getoutputvalue( 주식기본정보, 0, 36); 24) GetCommData BSTR GetCommData(LPCTSTR strtrcode, LPCTSTR strrecordname, long nindex, LPCTSTR stritemname) 수신데이터를반환한다. strtrcode Tran 코드 strrecordname 레코드명 nindex 복수데이터인덱스 stritemname 아이템명 수신데이터 Ex) 현재가출력 - openapi.getcommdata( OPT00001, 주식기본정보, 0, 현재가 ); 25) GetCommRealData BSTR GetCommRealData(LPCTSTR strrealtype, long nfid) 실시간데이터를반환한다. strrealtype 실시간구분 nfid 실시간아이템수신데이터실시간매뉴얼참고 Ex) 현재가출력 - openapi.getcommrealdata( A, 10); 26) GetChejanData 15
BSTR GetChjanData(long nfid) 체결잔고데이터를반환한다. nfid 체결잔고아이템수신데이터실시간매뉴얼참고 Ex) 현재가출력 openapi.getchejandata(10); 27) GetThemeGroupList BSTR GetThemeGroupList(long ntype) 테마코드와테마명을반환한다. ntype 정렬순서 (0: 코드순, 1: 테마순 ) 코드와코드명리스트 의코드와코드명구분은 코드의구분은 ; Ex) 100 태양광 _ 폴리실리콘 ;152 합성섬유 28) GetThemeGroupCode BSTR GetThemeGroupCode(LPCTSTR strthemecode) 테마코드에소속된종목코드를반환한다. strthemecode 테마코드종목코드리스트의종목코드간구분은 ; Ex) A000660;A005930 29) GetFutureList BSTR GetFutrueList() 지수선물리스트를반환한다. 종목코드리스트 의종목코드간구분은 ; Ex) 101J9000;101JC000 30) GetFutureCodeByIndex BSTR GetFutreCodeByIndex(int nindex) 지수선물코드를반환한다. nindex 0~3 지수선물코드, 4~7 지수스프레드 종목코드 Ex) 최근월선물 - openapi.getfuturecodebyinex(0); 16
최근월스프레드 - openapi.getfuturecodebyinex(4); 31) GetActPriceList BSTR GetActPriceList() 지수옵션행사가리스트를반환한다. 행사가 의행사가간구분은 ; Ex) 265.00;262.50;260.00 32) GetMonthList BSTR GetMonthList() 지수옵션월물리스트를반환한다. 월물 의월물간구분은 ; Ex) 201412;201409;201408;201407;201407;201408;201409;201412 33) GetOptionCode BSTR GetOptionCode(LPCTSTR stractprice, int ncp, LPCTSTR strmonth) 행사가와월물콜풋으로종목코드를구한다. stractprice 행사가 ( 소수점포함 ) ncp 콜풋구분 2: 콜, 3: 풋 strmonth 월물 (6 자리 ) 종목코드 Ex) openapi.getoptioncode( 260.00, 2, 201407 ); 34) GetOptionCodeByMonth BSTR GetOptionCodeByMonth(LPCTSTR strcode, int ncp, LPCTSTR strmonth) 입력된종목코드와동일한행사가의코드중입력한월물의코드를구한다. strcode 종목코드 ncp 콜풋구분 2: 콜, 3: 풋 strmonth 월물 (6 자리 ) 종목코드 Ex) openapi.getoptioncodebymonth( 201J7260, 2, 201412 ); 결과값 = 201JC260 17
35) GetOptionCodeByActPrice BSTR GetOptionCodeByActPrice(LPCTSTR strcode, int ncp, int Tick) 입력된종목코드와동일한월물의코드중입력한틱만큼벌어진코드를구한다. strcode 종목코드 ncp 콜풋구분 2: 콜, 3: 풋 ntick 행사가틱 종목코드 Ex) openapi.getoptioncodebyactprice( 201J7260, 2, -1); 결과값 = 201J7262 36) GetSFutureList BSTR GetSFutureList(LPCTSTR strbaseassetcode) 주식선물코드리스트를반환한다. strbaseassetcode 기초자산코드 종목코드리스트 출력값의코드간구분은 ; 이다. 37) GetSFutureCodeByIndex BSTR GetSFutureCodeByIndex(LPCTSTR strbaseassetcode, int nindex) 주식선물코드를반환한다. strbaseassetcode 기초자산코드 nindex 0~3 지수선물코드, 4~7 지수스프레드, 8~11 스타선물, 12~ 스타스프레드 종목코드 Ex) openapi.getsfuturecodebyindex( 11, 0); 38) GetSActPriceList BSTR GetSActPriceList(LPCTSTR strbaseassetgb) 주식옵션행사가리스트를반환한다. strbaseassetgb 기초자산코드구분 행사가리스트, 행사가간구분은 ; Ex) openapi.getsactpricelist( 11 ); 39) GetSMonthList BSTR GetSMonthList(LPCTSTR strbaseassetgb) 주식옵션월물리스트를반환한다. strbaseassetgb 기초자산코드구분 18
월물리스트, 월물간구분은 ; Ex) openapi.getsactpricelist( 11 ); 40) GetSOptionCode BSTR GetSOptionCode(LPCTSTR strbaseassetgb, LPCTSTR stractprice, int ncp, LPCTSTR strmonth) 주식옵션코드를반환한다. strbaseassetgb 기초자산코드구분 stractprice 행사가 ncp 콜풋구분 strmonth 월물 주식옵션코드 Ex) openapi.getsoptioncode( 11, 1300000, 2, 1412 ); 41) GetSOptionCodeByMonth BSTR GetSOptionCodeByMonth(LPCTSTR strbaseassetgb, LPCTSTR strcode, int ncp, LPCTSTR strmonth) 입력한주식옵션코드에서월물만변경하여반환한다. strbaseassetgb 기초자산코드구분 strcode 종목코드 ncp 콜풋구분 strmonth 월물 주식옵션코드 Ex) openapi.getsoptioncodebymonth( 11, 211J8045, 2, 1412 ); 42) GetSOptionCodeByActPrice BSTR GetSOptionCodeByActPrice(LPCTSTR strbaseassetgb, LPCTSTR strcode, int ncp, int ntick) 입력한주식옵션코드에서행사가만변경하여반환한다. strbaseassetgb 기초자산코드구분 strcode 종목코드 ncp 콜풋구분 ntick 월물 주식옵션코드 Ex) openapi.getsoptioncodebyactprice( 11, 211J8045, 2, 4); 43) GetSFOBasisAssetList 19
BSTR GetSFOBasisAssetList() 주식선옵기초자산코드 / 종목명을반환한다. 기초자산코드 / 종목명, 코드와종목명구분은 코드간구분은 ; Ex) 211J8045 삼성전자 C 201408;212J8009 SK 텔레콤 C 201408 Ex) openapi.getsfobasisassetlist(); 44) GetOptionATM BSTR GetOptionATM() 지수옵션 ATM 을반환한다. ATM Ex) openapi.getoptionatm(); 45) GetSOptionATM BSTR GetSOptionATM(LPCTSTR strbaseassetgb) 주식옵션 ATM 을반환한다. ATM Ex) openapi.getsoptionatm( 11 ); 46) GetBranchCodeName BSTR GetBranchCodeName() 회원사코드와이름을반환합니다. 회원사코드 회원사명 ; 회원사코드 회원사명 ; Ex) openapi.getbranchcodename(); 47) CommInvestRqData BSTR CommINvestRqData(LPCTSTR smarketgb, LPCTSTR srqname, LPCTSTR sscreenno) 투자자정보조회를요청한다. smarketgb 시장구분 001: 코스피, 002: 코스닥, 003: 선물, 004: 콜옵션, 005: 풋옵션, 006: 스타선물 007: 주식선물, 008:3 년국채, 009:5 년국채, 010:10 년국채, 011: 달러선물, 012: 엔선물 013: 유로선물, 014: 미니금선물, 015: 금선물, 016: 돈육선물, 017: 달러콜옵션, 018: 달러풋옵션 srqname 사용자구분값 sscreenno 화면번호 20
통신결과 Ex) openapi.comminvestrqdata( T00108;T00109, 0, 2, RQ_1, 0101 ); 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 void OnReceiveRealData(LPCTSTR sjongmokcode, LPCTSTR srealtype, LPCTSTR srealdata) 실시간데이터를받은시점을알려준다. sjongmokcode 종목코드 srealtype 리얼타입 srealdata 실시간데이터전문 없음 3) OnReceiveMsg void OnReceiveMsg(LPCTSTR sscrno, LPCTSTR srqname, LPCTSTR strcode, LPCTSTR smsg) 21
서버통신후메시지를받은시점을알려준다. 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: 특이신호 sfidlist 데이터구분은 ; 이다. 5) OnEventConnect void OnEventConnect(LONG nerrcode); 서버접속관련이벤트 LONG nerrcode : 에러코드없음 nerrcode가 0이면로그인성공, 음수면실패음수인경우는에러코드참조 4. 에러코드표 OP_ERR_NONE 0 //" 정상처리 " 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 22
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% 를초과할수없습니다. 5. 실시간 5.1 주식시세 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 13 누적거래량, 누적첵ㄹ량 14 누적거래대금 16 시가 17 고가 18 저가 25 전일대비기호 26 전일거래량대비 ( 계약, 주 ) 29 거래대금증감 30 전일거래량대비 ( 비율 ) 31 거래회전율 32 거래비용 311 시가총액 ( 억 ) 5.2 주식체결 20 체결시간 (HHMMSS) 23
10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 15 거래량, 체결량 13 누적거래량, 누적체결량 14 누적거래대금 16 시가 17 고가 18 저가 25 전일대비기호 26 전일거래량대비 ( 계약, 주 ) 29 거래대금증감 30 전일거래량대비 ( 비율 ) 31 거래회전율 32 거래비용 228 체결강도 311 시가총액 ( 억 ) 290 장구분 691 K,O 접근도 (ELW조기종료발생기준가격, 지수 ) 5.3 주식우선호가 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 5.4 주식호가잔량 21 호가시간 41 매도호가1 61 매도호가수량1 81 매도호가직전대비1 51 매수호가1 71 매수호가수량1 91 매수호가직전대비1 42 매도호가1 24
62 매도호가수량2 82 매도호가직전대비2 52 매수호가2 72 매수호가수량2 92 매수호가직전대비2 43 매도호가3 63 매도호가수량3 83 매도호가직전대비3 53 매수호가3 73 매수호가수량3 93 매수호가직전대비3 44 매도호가4 64 매도호가수량4 84 매도호가직전대비4 54 매수호가4 74 매수호가수량4 94 매수호가직전대비4 45 매도호가5 65 매도호가수량5 85 매도호가직전대비5 55 매수호가5 75 매수호가수량5 95 매수호가직전대비5 46 매도호가6 66 매도호가수량6 86 매도호가직전대비6 56 매수호가6 76 매수호가수량6 96 매수호가직전대비6 47 매도호가7 67 매도호가수량7 87 매도호가직전대비7 57 매수호가7 77 매수호가수량7 97 매수호가직전대비7 48 매도호가8 68 매도호가수량8 25
88 매도호가직전대비8 58 매수호가8 78 매수호가수량8 98 매수호가직전대비8 49 매도호가9 69 매도호가수량9 89 매도호가직전대비9 59 매수호가9 79 매수호가수량9 99 매수호가직전대비9 50 매도호가10 70 매도호가수량10 90 매도호가직전대비10 60 매수호가10 80 매수호가수량10 100 매수호가직전대비10 121 매도호가총잔량 122 매도호가총잔량직전대비 125 매수호가총잔량 126 매수호가총잔량직전대비 23 예상체결가 24 예상체결수량 128 순매수잔량 ( 총매수잔량-총매도잔량 ) 129 매수비율 138 순매도잔량 ( 총매도잔량-총매수잔량 ) 139 매도비율 200 예상체결가전일종가대비 201 예상체결가전일종가대비등락율 238 예상체결가전일종가대비기호 291 예상체결가 292 예상체결량 293 예상체결가전일대비기호 294 예상체결가전일대비 295 예상체결가전일대비등락율 621 LP매도호가수량1 631 LP매수호가수량1 622 LP매도호가수량2 26
632 LP매수호가수량2 623 LP매도호가수량3 633 LP매수호가수량3 624 LP매도호가수량4 634 LP매수호가수량4 625 LP매도호가수량5 635 LP매수호가수량5 626 LP매도호가수량6 636 LP매수호가수량6 627 LP매도호가수량7 637 LP매수호가수량7 628 LP매도호가수량8 638 LP매수호가수량8 629 LP매도호가수량9 639 LP매수호가수량9 630 LP매도호가수량10 640 LP매수호가수량10 13 누적거래량, 누적체결량 299 전일거래량대비예상체결률 215 장운영구분 216 투자자별 ticker 5.5 선물시세 20 체결시간 (HHMMSS) 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 15 거래량, 체결량 13 누적거래량, 누적체결량 14 누적거래대금 16 시가 17 고가 18 저가 195 미결제약정 27
182 이론가 184 이론베이시스 183 시장베이시스 186 괴리율 181 미결제약정전일대비 185 괴리도 25 전일대비기호 197 KOSPI200 26 전일거래량대비 ( 계약, 주 ) 246 시초미결제약정수량 247 최고미결제약정수량 248 최저미결제약정수량 30 전일거래량대비 ( 비율 ) 196 미결제증감 5.6 선물호가잔량 21 호가시간 (HHMMSS) 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 41 매도호가1 61 매도호가수량1 81 매도호가직전대비1 101 매도호가건수1 51 매수호가1 71 매수호가수량1 91 매수호가직전대비1 111 매수호가건수1 42 매도호가2 62 매도호가수량1 82 매도호가직전대비2 102 매도호가건수2 52 매수호가2 72 매수호가수량2 92 매수호가직전대비2 112 매수호가건수2 43 매도호가3 28
63 매도호가수량3 83 매도호가직전대비3 103 매도호가건수3 53 매수호가3 73 매수호가수량3 93 매수호가직전대비3 113 매수호가건수3 44 매도호가4 64 매도호가수량4 84 매도호가직전대비4 104 매도호가건수4 54 매수호가4 74 매수호가수량4 94 매수호가직전대비4 114 매수호가건수4 45 매도호가5 65 매도호가수량5 85 매도호가직전대비5 105 매도호가건수5 55 매수호가5 75 매수호가수량5 95 매수호가직전대비5 115 매수호가건수5 121 매도호가총잔량 122 매도호가총잔량직전대비 123 매도호가총건수 125 매수호가총잔량 126 매수호가총잔량직전대비 127 매수호가총건수 137 호가순잔량 128 순매수잔량 ( 총매수잔량-총매도잔량 ) 13 누적거래량, 누적체결량 23 예상체결가 238 예상체결가전일종가대비기호 200 예상체결가전일종가대비 201 예상체결가전일종가대비등락율 291 예상체결가 29
293 예상체결가전일대비기호 294 예상체결가전일대비 295 예상체결가전일대비등락율 5.7 선물이론가 195 미결제약정 182 이론가 184 이론베이시스 183 시장베이시스 186 괴리율 181 미결제약정전일대비 185 괴리도 246 시초미결제약정수량 247 최고미결제약정수량 248 최저미결제약정수량 5.8 옵션시세 20 체결시간 (HHMMSS) 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 15 거래량, 체결량 13 누적거래량, 누적체결량 14 누적거래대금 16 시가 17 고가 18 저가 195 미결제약정 182 이론가 186 괴리율 190 델타 191 감마 193 세타 30
192 베가 194 로 181 미결제약정전일대비 25 전일대비기호 26 전일거래량대비 ( 계약, 주 ) 137 호가순잔량 187 내재가치 197 KOSPI200 246 시초미결제약정수량 247 최고미결제약정수량 248 최저미결제약정수량 219 선물최근월물지수 196 미결제증감 188 시간가치 189 내재변동성 (I.V.) 30 전일거래량대비 ( 비율 ) 391 기준가대비시고등락율 392 기준가대가등락율 393 기준가대비저가등락율 5.9 옵션호가잔량 21 호가시간 (HHMMSS) 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 41 매도호가1 61 매도호가수량1 81 매도호가직전대비1 101 매도호가건수1 51 매수호가1 71 매수호가수량1 91 매수호가직전대비1 111 매수호가건수1 42 매도호가2 62 매도호가수량1 82 매도호가직전대비2 102 매도호가건수2 31
52 매수호가2 72 매수호가수량2 92 매수호가직전대비2 112 매수호가건수2 43 매도호가3 63 매도호가수량3 83 매도호가직전대비3 103 매도호가건수3 53 매수호가3 73 매수호가수량3 93 매수호가직전대비3 113 매수호가건수3 44 매도호가4 64 매도호가수량4 84 매도호가직전대비4 104 매도호가건수4 54 매수호가4 74 매수호가수량4 94 매수호가직전대비4 114 매수호가건수4 45 매도호가5 65 매도호가수량5 85 매도호가직전대비5 105 매도호가건수5 55 매수호가5 75 매수호가수량5 95 매수호가직전대비5 115 매수호가건수5 121 매도호가총잔량 122 매도호가총잔량직전대비 123 매도호가총건수 125 매수호가총잔량 126 매수호가총잔량직전대비 127 매수호가총건수 137 호가순잔량 128 순매수잔량 ( 총매수잔량-총매도잔량 ) 13 누적거래량, 누적체결량 32
23 예상체결가 238 예상체결가전일종가대비기호 200 예상체결가전일종가대비 201 예상체결가전일종가대비등락율 291 예상체결가 293 예상체결가전일대비기호 294 예상체결가전일대비 295 예상체결가전일대비등락율 5.10 옵션이론가 195 미결제약정 182 이론가 186 괴리율 190 델타 191 감마 193 세타 192 베가 194 로 181 미결제약정전일대비 246 시초미결제약정수량 247 초고미결제약정수량 248 최저미결제약정수량 187 내재가치 188 시간가치 189 내재변동성 (I.V.) 5.11 주식옵션시세 20 체결시간 (HHMMS) 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 15 거래량, 체결량 13 누적거래량, 누적체결량 33
14 누적거래대금 16 시가 17 고가 18 저가 195 미결제약정 182 이론가 186 괴리율 190 델타 191 감마 193 세타 192 베가 194 로 181 미결제약정전일대비 25 전일대비기호 26 전일거래량대비 ( 계약, 주 ) 5.12 주식옵션호가잔량 21 호가시간 (YYYYMMDD) 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 41 매도호가1 42 매도호가2 43 매도호가3 44 매도호가4 45 매도호가5 61 매도호가수량1 62 매도호가수량2 63 매도호가수량3 64 매도호가수량4 65 매도호가수량5 101 매도호가건수1 102 매도호가건수2 103 매도호가건수3 104 매도호가건수4 105 매도호가건수5 51 매수호가1 34
52 매수호가2 53 매수호가3 54 매수호가4 55 매수호가5 71 매수호가수량1 72 매수호가수량2 73 매수호가수량3 74 매수호가수량4 75 매수호가수량5 111 매수호가건수1 112 매수호가건수2 113 매수호가건수3 114 매수호가건수4 115 매수호가건수5 121 매도호가총잔량 123 매도호가총건수 125 매수호가총잔량 127 매수호가총건수 23 예상체결가 238 예상체결가전일종가대비기호 200 예상체결가전일종가대비 201 예상체결가전일종가대비등락율 291 예상체결가 293 예상체결가전일대비기호 294 예상체결가전일대비 295 예상체결가전일대비등락율 5.13 주식옵션이론가 195 미결제약정 182 이론가 186 괴리율 190 델타 191 감마 193 세타 192 베가 194 로 35
181 미결제약정전일대비 5.14 주식옵션우선호가 10 현재가, 체결가, 실시간종가 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 5.15 업종지수 20 체결시간 (HHMMSS) 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 15 거래량, 체결량 13 누적거래량, 누적체결량 14 누적거래대금 16 시가 17 고가 18 저가 25 전일대비기호 26 전일거래량대비 ( 계약, 주 ) 5.16 업종등락 20 체결시간 (HHMMSS) 252 상승종목수 251 상한종목수 253 보합종목수 255 하락종목수 254 하한종목수 13 누적거래량, 누적체결량 14 누적거래대금 10 현재가, 체결가, 실시간종가 11 전일대비 12 등락율 256 거래형성종목수 36
257 거래형성비율 25 전일대비기호 5.17 장시작시간 215 장운영구분 (0: 장시작전, 2: 장종료전, 3: 장시작, 4,8: 장종료, 9: 장마감 ) 20 체결시간 (HHMMSS) 214 장시작예상잔여시간 5.18 투자자 ticker 216 투자자별 ticker 5.19 주문체결 9201 계좌번호 9203 주문번호 9205 관리자사번 9001 종목코드, 업종코드 912 주문업무분류 (JJ: 주식주문, FJ: 선물옵션, JG: 주식잔고, FG: 선물옵션잔고 ) 913 주문상태 (10: 원주문, 11: 정정주문, 12: 취소주문, 20: 주문확인, 21: 정정확인, 22: 취소확인, 90-92: 주문거부 ) 302 종목명 900 주문수량 901 주문가격 902 미체결수량 903 체결누계금액 904 원주문번호 905 주문구분 (+ 현금내수,-현금매도 ) 906 매매구분 ( 보통, 시장가 ) 907 매도수구분 (1: 매도,2: 매수 ) 908 주문 / 체결시간 (HHMMSSMS) 909 체결번호 910 체결가 911 체결량 10 현재가, 체결가, 실시간종가 27 ( 최우선 ) 매도호가 37
28 ( 최우선 ) 매수호가 914 단위체결가 915 단위체결량 938 당일매매수수료 939 당일매매세금 5.20 잔고 9201 계좌번호 9001 종목코드, 업종코드 302 종목명 10 현재가, 체결가, 실시간종가 930 보유수량 931 매입단가 932 총매입가 933 주문가능수량 945 당일순매수량 946 매도 / 매수구분 950 당일총매도손익 951 예수금 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 307 기준가 8019 손익율 397 주식옵션거래단위 5.21 신용잔고 9201 계좌번호 9001 종목코드, 업종코드 917 신용구분 916 대출일 302 종목명 10 현재가, 체결가, 실시간종가 930 보유수량 931 매입단가 932 총매입가 38
933 주문가능수량 945 당일순매수량 946 매도 / 매수구분 950 당일총매도손익 951 예수금 27 ( 최우선 ) 매도호가 28 ( 최우선 ) 매수호가 307 기준가 8019 손익율 957 신용금액 958 신용이자 918 만기일 990 당일실현손익 ( 유가 ) 991 당일실현손익률 ( 유가 ) 992 당일실현손익 ( 신용 ) 993 당일실현손익률 ( 신용 ) 959 담보대출수량 5.22 주식시간외호가 21 호가시간 (HHMMSS) 131 시간외매도호가총잔량 132 시간외매도호가총잔량직전대비 135 시간외매수호가총잔량 136 시간외매수호가총잔량직전대비 5.23 주식당일거래원 141 매도거래원1 161 매도거래원수량1 166 매도거래원별증감1 146 매도거래원코드1 271 매도거래원색깔1 151 매수거래원1 171 매수거래원수량1 176 매수거래원별증감1 156 매수거래원코드1 39
281 매수거래원색깔1 142 매도거래원2 162 매도거래원수량2 167 매도거래원별증감2 147 매도거래원코드2 272 매도거래원색깔2 152 매수거래원2 172 매수거래원수량2 177 매수거래원별증감2 157 매수거래원코드2 282 매수거래원색깔2 143 매도거래원3 163 매도거래원수량3 168 매도거래원별증감3 148 매도거래원코드3 273 매도거래원색깔3 153 매수거래원 173 매수거래원수량3 178 매수거래원별증감3 158 매수거래원코드3 183 매수거래원색깔3 144 매도거래원4 164 매도거래원수량4 169 매도거래원별증감4 149 매도거래원코드4 274 매도거래원색깔4 154 매수거래원4 174 매수거래원수량4 179 매수거래원별증감4 159 매수거래원코드4 284 매수거래원색깔4 145 매도거래원5 165 매도거래원수량5 170 매도거래원별증감5 150 매도거래원코드5 275 매도거래원색깔5 155 매수거래원5 40
175 매수거래원수량5 180 매수거래원별증감5 160 매수거래원코드5 285 매수거래원색깔5 261 외국계매도추정합 262 외국계매도추정합변동 263 외국계매수추정합 264 외국계매수추정합변동 267 외국계순매수추정합 268 외국계순매수변동 337 거래소구분 (1, KOSPI, 2:KOSDAQ, 3:OTCCBB, 4:KOSPI200선물, 5:KOSPI200옵션, 6: 개별 주식옵션, 7: 채권 ) 41