대신증권 API 자바로 활용하기

대신증권 API는 C/C++, C#, 액셀,  VB 등 다양한 언어를 지원하지만 자바는 공식적으로 지원하지 않고 있다. 처음 시스템 트레이딩을 개발할 때는 C/C++을 활용했으나 자바가 인공지능 관련 오픈소스도 많고 개발하기도 용이해 자바로 대신증권 API를 활용할 수 있는 방법을 찾아보았다.

COM4J라는 컴포넌트 변환 자바 라이브러리를 알게 되었고 대신증권 API도 COM4J 활용 가능하다는 사실을 알게 되었다. 직접 시험해보기로 하였다.

사용법은 비교적 간단한다. COM4J 링크를 통해 다운로드 받은 다음 아래와 같은 콘솔 명령어로 원하는 대신증권의 DLL들을 자바로 변환하면 된다.

java -jar tlbimp.jar -o ds -p test.cp "C:DaiShincybosplusCpDib.dll" 
java -jar tlbimp.jar -o ds -p test.cp "C:DaiShincybosplusCpUtil.dll"

자바로 변환한 후에는 자바 Eclipse 환경에서 라이브러리를 등록하면 종목 검색과 매매 등을 자바로 프로그래밍 할 수 있다. 즉, 대신증권 API를 활용하여 자바 언어 기반 시스템 트레이딩할 수 있는 길이 열린 것이다.

다만 주의할 점은 64비트 운영체제 환경에서 사용하기 위해서는 자바 JDK와 Eclipse 개발 환경 모두 32비트 버전을 사용해야 한다. 필자는 참고로 64비트 윈도우10, 자바 32비트, Eclipse 32 비트 환경에서 테스트하였다.

대신증권 API와 COM4J를 활용하여 동작 검증한 간단한 샘플 코드를 아래 첨부한다. 종목 코드값에 대한 종목명을 확인하는 코드이다.

import DAISHINJ.*; //변환된 자바 클래스 경로
import DAISHINJ.CpUtil.ClassFactory; //CpUtil 패키지

public class CpDibTest {

   public static void main(String[] args) {
       //StockCode 객체 생성
       DAISHINJ.CpUtil.ICpStockCode icd = ClassFactory.createCpStockCode();
       //주식코드를 종목명으로 변환
       String strName = icd.codeToName("A056080");
       System.out.println(strName);
   }

}

“대신증권 API 자바로 활용하기”의 2개의 생각

  1. 안녕하세요. 포스팅 잘봤습니다. 제 화면에서는 클래스를 찾을 수 없다고 com4j Exception이 뜨는데 어떻게 해결해야할까요? 자바 32비트 이클립스 32비트 맞춰놓았고 윈도우는 10 입니다.
    혹시 위의 샘플코드를 진행하려면 로그인이 먼저 실행되고 되야해서 그런건가요?
    로그인할때는 공인인증번호까지 다 입력해야할까요?
    번잡스럽겠지만 답변 주시면 감사하겠습니다.

    좋아요

  2. 위 코드는 로그인까지는 필요 없습니다. 혹시 관리자 모드로 실행했나요? 정확히 기억은 안나는데 이클리스를 실행할 때 관리자 모드가 필요했던 거 같습니다.

    좋아요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중