ing API를 이용한 주식자동매매 프로그램(1) > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

ing API를 이용한 주식자동매매 프로그램(1) 정보

기타 ing API를 이용한 주식자동매매 프로그램(1)

본문

- 오래된 자료이긴 한데 필요하신분 공부용으로 쓰면 좋을거 같네요

 

http://sjp007.mireene.com/tc/entry/xing-API%B8%A6-%C0%CC%BF%EB%C7%D1-%C1%D6%BD%C4%C0%DA%B5%BF%B8%C5%B8%C5-%C7%C1%B7%CE%B1%D7%B7%A51

 

            

주식에서 투자자별 매매현황 같은걸 보게 되면 기관, 외국인 등등 뿐만 아니라 프로그램이라는 투자자가 있다. 이건 말그대로 프로그램이 주식 매매를 자동으로 한다는 것이다. 실제로 외국에서는 오히려 사람보다 프로그램이 더 많다고 한다. 우리나라에서는 그렇게 널리 알려진거 같진 않지만 주식자동매매 프로그램이 매리트가 있는진 몰라도 각 증권사에서 하나씩 API 를 제공하고 있다. 따라서 공부도 할겸해서 플렉스로 주식 자동매매프로그램을 만들어 보기로 하였다.

일단 여러증권사가 있지만 HTS 를 키움을 쓰다가 이트레이드 증권사의 xingQ 마스터를 쓰게됐는데 UI 가 플렉스로 만든 느낌도 나고 모든기능이 마음에 들었다. 따라서 API는 이트레이드의 xing API 를 이용하기로 하겠다.

일단 사이트를 들어가게 되면 API 메뉴가 잘 정리되어 있다.

이트레이드 xing API

1082594414.png


일단 API 를 사용하기 위해서는 사이트의 계좌회원이든 프리회원이든 가입되어있어야 하고, 두번째 메뉴의 xingAPI 사용등록을 하여야 한다.

그럼 이제 API를 사용할 준비가 끝난건데 나처럼 UI 를 플렉스로 할려면 넘어야 할 산이 많다.
일단 API는 델파이, 비쥬얼 씨뿔뿔 전용이다. 그러나 다행이 COM(Component Object Model) 버젼이 있긴하다.
아직 JAVA 버젼은 없다. 관리자에게 문의하였어도 앞으로도 당분간은 JAVA 버젼은 없을듯 하다.

어찌됐든 난 서버단을 JAVA 를 UI 는 FLEX 를 사용하기로 마음먹었기 때문에 저 COM 버젼을 구워 삶든 하여야한다.
그래서 처음시도한게 dll을 JNA 라이브러리를 이용하여 하기로 했으나 이게 dll 파일을 로드하여 함수를 사용할려구 하는데 그함수를 사용하는 객체가 따로 존재하는것이다. 하지만 그 API에서는 그 객체를 생성하는 함수를 제공하지 않고 있다. 관리자에게 객체하나만 리턴해주는 함수 만들어주라고 부탁하였으나 돌아오는 대답은 귀찮은것인지 잘 모르는건지 몰라도 자기는 JAVA 는 모른다는 대답뿐이다. 결국 JNA를 이용하는건 포기해야만 했다.

다음으로 COM4J 로 애초에 dll을 자바파일로 변환하여 사용하기로 하였다. xing API 가 업데이트 되면 또 변환해야 한다는 단점이 있으나 공부할겸이기 때문에 그냥 일단 사용하기로 하였다.

일단 xingAPI 다운로드 메뉴의 xingAPI 최신버젼다운로드를 클릭하면 다음과 같은 화면이 나온다.

1042052723.png


두번째의 xingAPI 프로그램(2012.10.08)을 선택하면 다음과 같은 화면이 나온다.

1332200167.png

내용에 나와있듯이 debug 버젼은 필요없고 xingAPI Program(2012.10.08).zip 파일만 받으면 된다.
받은 파일의 압축을 풀면 다음과 같은 파일들이 보인다.

1131116553.png

저기에서 SKComd~ 시작되는 아이들은 공인인증서와 관련된 것들이고 실제로 저기에서 사용할 파일은 로그인과 같은 세션 관련 파일 XA_Session.dll 과 단순조회, 실시간 조회등과 관련된 XA_DataSet.dll 이다.

이제 저 dll 파일들을 JAVA 파일로 변환하기 위해 com4j를 다운받는다. 파일은 네이버 블로그에 올려 놓았다.
com4j 다운로드

압축을 풀고 먼저 XA_Session.dll 을 JAVA 파일로 변환해 보겠다.
튜토리얼은 여기에 잘나와있다.

java -jar tlbimp.jar -o 생성폴더명 -p 생성패키명 변환시킬dll파일
일단 윈도우키+R을 눌러 cmd 를 입력하고 엔터를 치면 커맨드창이 뜬다. 압축을 푼 폴더로 옮긴다음 package 를 auto.stock.session 으로 하고 XA_Session.dll 이 있는 경로를 지정해 주면 된다. 전체 command 는 다음과 같다.

1363698396.png

그럼 현재 폴더에 session이라는 이름의 폴더가 생성된것을 확인할 수 있다. 폴더에 들어가 보면 다음과 같다.

1257450176.png

XA_Session.dll 파일을 변환시킨 파일들이다.
xingAPI 게시판 > xing API 공지사항의 X-ing API COM 버젼개요를 클릭하면 다음과 같은 COM 버젼의 API 를 볼수 있다.

1259140380.png

오른쪽 파라미터 값들이 짤려있을게다. 관리자님 정말 서운하게 com 버젼은 신경 안쓴다.
하다보면 대충 추측이 가능하므로 크게 상관은 없다.

대충 비교해보자면 변환된 파일 IXASession.java 에 메소들과 프로퍼티 들이 event 폴더에 Event 들이 정의 되어있다.

이정도면 대충 개발을 하기 위한 환경이 준비되었다. 다음 포스팅에 xing API를 이용하여 개발을 할건데 그전에 플렉스, 이클립스 등등 개발환경 셋팅이 되어있다고 가정한다. 또한 구조는 spring+flex+mybatis (MyBatis 는 아직 쓸일은 없지만 나중에 통계를 보던지 필요할 수도 있을것 같아서 같이 셋팅)를 쓸건데 자세한 사항은 다음 링크를 참조하면 된다.

spring+flex+mybatis 셋팅

XADataSet.dll 파일도 dataset 으로 이름을 지어 변환시켜 놓는다.

다음 시간에는 이모든게 셋팅 되어있다고 가정하고 포스팅 하겠다.

추천
0

댓글 0개

전체 1,262
개발자팁 내용 검색 기타에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT