DevCenter를 이용하여 RES파일을 저장하면 xingAPI를 설치한 폴더의 Headr폴더에 저장이 된다고 메뉴얼에 적혀 있다. 하지만 실제로 사용하다보면 RES파일이 Header에 저장되지 않는 경우가 있다. ( 예로 들면 실시간 TR인 S3_ ) 그래서 RES파일을 얻는 다른 방법은 다음과 같다. DevCenter에서 TR과 실시간TR를 선택하면 xingAPI를 설치한 폴더의 Res폴더에 RES파일이 저장된다. 이렇게 만들어진 RES파일을 이용하면 된다. 그래서 RES파일을 등록할 때 Res폴더를 기준으로 RES파일을 등록하는게 편할 것 같다.
일반적인 조회는 요청(Request)시점에서의 데이터를 전송해 주므로 그 이후 변경된 데이터를 받지 못한다. 하지만 실시간 데이터 조회의 경우에는 요청 시점 이후에 데이터가 변경이 되면 그때 데이터를 전송해 준다. 요청을 해제하기 전까지 데이터가 변경이 될 때마다 데이터를 전송해 준다. 실시간 데이터 조회는 요청 시점 이후에 데이터가 변경되어야만 데이터를 보내기 때문에 요청 시점에서의 데이터는 전송해 주지 않는다. 그러므로 주식현재가를 구성하기 위해서는 단일 조회로 요청 시점의 데이터를 가져온 후에 실시간 데이터를 요청하여 그 이후 데이터를 실시간으로 받아야 한다. 실시간 데이터 조회 이 예제는 "연속 데이터 조회"를 이어서 프로그래밍한다. 여기서는 현재가를 실시간으로 얻을 수 있게, [S3_] KOSP..
연속 조회는 Occurs 데이터의 총 갯수가 너무 많아서 한번에 다 가져오지 못할 경우 여러번에 걸쳐서 가져오는 것을 의미한다. 즉 반복조회를 이어서 다음 반복조회를 하는 것과 같다. 연속 조회를 할 수 있는 TR은 TR Layout에 연속 조회를 위한 필드가 존재한다. 보통 연속데이터와 관련된 필드의 이름은 cts_로 시작한다. t1301의 TR Layout을 보면 cts_time이 있다. 연속 데이터 조회 과정 연속 데이터 조회 과정을 t1301을 이용해서 설명하겠다. (다른 TR의 연속 데이터 조회도 별 차이가 없을 것이다.) TR Query 객체를 생성 및 초기화 RES 파일 등록 ReceiveData 이벤트 메서드 등록 .SetFieldData()를 이용해서 TR 입력값 설정 .Request(f..
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이 자동으로 설치된다. 따라서..