Occurs는 COBOL이라는 프로그램언어에서 나온 단어로 일련의 데이터가 반복해서 나오는 구조를 이야기 한다. xingAPI에서 Occurs의 의미는 시간대별 화면의 그리드처럼 일련의 데이터가 반복해서 나오는 경우는 의미한다. 프로그램언어에서의 배열(Array)와 같은 의미라고 볼 수 있다. TR이 반복 데이터인지 확인하는 방법 DevCenter의 TR Layout에서 Occurs여부 속성으로 확인 할 수 있다. 예로 들어 t1301OutBlock1을 선택하면 TR 속성창에 Occurs여부 속성이 ○로 되어 있으니, t1301OutBlock1은 반복데이터임을 알 수 있다. 반복 데이터 조회 이 예제는 "단일 데이터 조회"를 이어서 프로그래밍한다. 1. 디자인 연역에 아래와 같이 버튼을 추가한다. 2. ..
이 포스트는 "로그인하기"를 이어서 설명한다. xingAPI에서 데이터 조회는 미리 정해진 형식의 입력값을 서버로 전송하고 서버로부터 데이터를 받는 것을 의미한다. 한번의 전송으로 한번의 결과값을 받는다. 현재가를 예로 들면 종목 코드를 서버에 전송하면 그 당시의 현재가를 결과값으로 서버로부터 데이터를 받게 된다. 일반 데이터에 사용되는 용어와 개념은 다음과 같다. TR (Transaction) xingAPI에서 TR은 서버로부터 데이터를 주고 받는 행위를 의미한다. TR Code TR Code는 어떤 정보를 주고 받을 지를 정하는 값이다. TR Code는 5자리와 10자리가 2종류가 있다. 자세한 내용은 DevCenter를 이용하면 된다. 예로 들어 t1101은 현재가 등의 종목 시세 데이터를 가져오는..
이 예제는 "서버 접속하기"를 이어서 설명한다. 서버에 접속이 되었다면 로그인을 해야 한다. 로그인을 하지 않고는 어떠한 서비스도 사용할 수 없다. 로그인을 하기 위해서는 XASession 객체의 Login()메서드를 이용한다. 로그인하기 1. 디자인 영역을 다음과 같이 수정하고 각 속성을 수정한다. 만일 TextBox에 입력되는 값을 숨길려면 속성창 > PasswordChar에 *을 입력하자. 2. 아래와 같이 콤보박스를 선택하고 속성창에서 Items속성의 줄임표단추(...)을 클릭한다. 3. 문자열 컬렉션 편집기에 실서버 모의투자를 입력한다. 이렇게 입력하면 items[0]은 실서버, items[1]은 모의투자가 된다. 4. 아래와 같이 코드를 수정하자.using System; using System..
xingAPI를 사용하기 위해서는 먼저 서버를 연결해야 한다. 서버를 연결하기 위해서 XASession클래스의 ConnectionServer()메서드를 사용한다. 이 예제는 "COM을 등록하는 방법"을 이어서 설명하도록 하겠다. 서버 접속하기 1. 디자인 영역에 다음과 같이 Button과 ListBox를 추가하고 각각의 속성을 변경한다. 2. 디자인 영역에 "Form 1"의 회색 영역(로그인 버튼 아래 부분)을 더블클릭하여 load 이벤트 소스를 추가하고, "로그인 버튼"을 더블클릭하여 click 이벤트 소스를 생성한다. 3. 아래와 같이 코드를 수정한다. using System; using System.Windows.Forms; using XA_SESSIONLib; namespace XingAPI { ..
xingAPI를 사용하기 위해서 COM를 등록해야 한다. 나는 Visual Studio Community 2017에 C# WinForm을 이용하려고 한다. 1. Visual Studio 2017를 실행하고 파일 > 새로만들기 > 프로젝트 > WindoswForms 앱을 선택하고 프로젝트를 생성한다. (프로젝트 이름은 XingAPI로 하였다.) 2. 솔루션 탐색기에서 "참조"를 우클릭 후 참조 추가를 선택한다. 3. 참조 관리자에서 COM란에서 eBest Xing DataSet Lib와 eBest Xing Session Lib를 선택하고 확인을 누른다. 4. 아래와 같이 참조에 XA_DATASETLib와 XA_SESSIONLib가 추가된 것을 볼 수 있다. 5. 추가된 XA_DATASETLib와 XA_SE..
이베스트투자증권에서 XingAPI라는 증권 API를 제공한다. XingAPI는 COM과 DLL 2가지 버전으로 제공하는데, 나는 C#과 COM버전을 이용하려고 한다. 이 게시물은 이베스트투자증권에서 제공하는 가이드를 C#에 맞춰서 기록하려고 한다. 우선 XingAPI를 사용하기 위한 방법을 알아보자. 1. 이베스트투자증권 사이트에 접속한다. 2. 아래의 그리처럼 사이트 하단에 있는 매매시스템의 API를 클릭한다. 3. 사이트에서 설명된 신규고객 가이드의 순서대로 계좌개설과 API 사용등록, xingAPI를 다운로드하고 설치한다. 4. 가이드 바로가기를 선택하면 xingAPI를 사용한 개발가이드에 대한 문서를 얻을 수 있다. 이렇게 xingAPI를 설치하면 개발에 사용할 COM이 자동으로 설치된다. 따라서..
조회요청(조회처리) 조회요청은 키움OpenAPI가 제공하는 데이터를 서버에 요청해서 가져오는 것을 말한다. 조회요청은 TR(Transaction)이라는 단위로 처리된다. TR이란 서버와 데이터를 주고받을때 정의한 약속된 규약이며 입력부분(Input)과 데이터를 수신하는 출력부분(Output)을 가지고 있다. TR에 따라서 입력되는 값과 출력되는 값이 다르다. 그리고 TR의 출력되는 방식이 아래와 같이 3가지가 있다. 싱글데이터 멀티데이터 싱글데이터 + 멀티데이터 (예: OPT10081 : 주식일봉차트조회요청) 싱글데이터는 출력이 한번에 가능하지만, 멀티데이터는 여러번의 출력을 가진다. 키움OpenAPI가 제공하는 TR은 KOA Studio의 TR목록 탭에서 찾아볼 수 있고 각 TR별로 조회도 가능하다. ..
로그인 관련 함수를 이용해서 C#으로 예제 프로그램을 만들어보자. 1. Visual Studio를 실행하고 파일 > 새로만들기 > 프로젝트를 실행한다. 2. Visual C#에서 Windows Forms 앱을 선택하고 이름을 openAPI로 작성하고 확인을 누른다. (이름이 달라도 상관없다.) 3. 아래와 같이 디자인 영역에 Button, ListBox, KHOpenAPI Control을 추가하고 각각의 속성을 수정한다. 4. 로그인 버튼을 더블 클릭하여 클릭 이벤트 메서드(loginButton_Click)를 생성한다. 이 이벤트 메서드는 버튼을 클릭시 실행되는 이벤트 메서드가 된다. 이벤트 메서드 안에 다음과 같은 코드를 작성하자. private void loginButton_Click(object s..
로그인 개요 키움OpenAPI에서 로그인기능은 CommConnect()함수를 호출하면 된다. 그러면 로그인창이 열리고 운영서버(실제서버)와 모의투자 접속을 선택할 수있다. 그리고 자동로그인 설정을 통해서 자동로그인을 사용할 수 있다. 하지만 자동로그인은 버전업 처리가 되지 않는다. 수동 로그인 수동 로그인은 로그인창에 사용자가 직접 아이디와 비밀번호를 입력하는 방식입니다. 로그인시 버전처리내용이 있는 경우 버전처리도 함께 진행됩니다. 자동 로그인 로그인한 다음 계좌비밀번호 입력창을 통해 자동로그인을 설정할 수 있습니다. 트레이 메뉴(모니터 오른쪽 하단)에서 키움openAPI트레이 아이콘을 오른쪽 클릭하고 "계좌비밀번호 저장" 메뉴를 선택하면 계좌비밀번호 입력화면이 표시됩니다. 여기서 로그인 이후 사용할 ..
통신동작 키움 openAPI는 모두 비동식으로 동작합니다. 통신흐름 아래와 같습니다. 서버로 요청함수를 호출한다. 서버에서 요청함수에 대응하는 이벤트 함수를 발생시킨다. 이벤트 함수 안에서 데이터 획득 함수로 데이터를 얻는다. 데이터를 얻기 위해서는 반드시 이벤트 함수 안에서 얻어야 합니다. 아래와 같은 경우에는 데이터를 얻을 수 없게 됩니다. 이벤트 함수가 발생하기 전에 서버로 요청함수를 호출하는 경우 이벤트 함수가 발생하고 이벤트 함수를 벗어나는 경우 화면번호 openAPI함수를 이용하다보면 화면번호라는 설명이 나옵니다. 화면번호는 서버에 요청함수를 호출할 때 요청을 구분하기 위한 키값입니다. openAPI에는 서로 다른 요청함수를 호출시에도 같은 이벤트함수가 발생될 수 있기 때문에 화면번호로 어떤 ..