증권사 API2017. 11. 26. 08:00

 

 

지난 1~3편을 통해 이베스트투자증권(이하 이베스트) xingAPI의 각 개념들과 구성 등에 대해 알아보고 Microsoft Excel에서 VBA를 사용할 수 있도록 이베스트에서 제공하는 API 모듈을 '참조'하는 방법까지 진행했으니 이제 이베스트 서버에 접속하고 로그인을 하는 등의 실전편에 대해 기술하겠습니다.

 

 

지난 시간에 알려드린 내용중 일부를 다시 가져오겠습니다.

 

 

 

 

서두에 말씀드린것의 전체 처리 과정은 아래와 같습니다.

 

 

 

 

1. 참조한 내용을 가져다 쓰겠다고 프로그램에 알려주는 부분입니다.

 

2. XaSession 은 서버연결, 로그인등에 필요한 것이므로 이것을 하겠다고 프로그램에 알려주는 부분입니다.

 

3. 실제 이베스트 서버에 연결하는 과정입니다.

 

4. 실제 이베스트 서버에 연결한 후 로그인을 하는 과정입니다.

 

5. XaQuery 는 이베스트 서버에 저장되어 있는 내용을 조회하기 위해 프로그램에 알려주는 부분입니다.

 

6. Res 등록은 "C:/eBEST/xingAPI/Res" 경로에 저장되어 있는 여러 TR(각 TR은 맡은 기능이 제각각이며 보통 하나의 프로그램을 만들게 되면 적게는 몇개에서 많게는 수십개 이상의 TR을 사용함)들을 사용하겠다고 프로그램에 알려주는 부분입니다.

 

7. 6번에서 미리 등록한 TR중 (복수개 등록 가능) 사용할 TR의 입력 형식에 맞게 값을 입력하는 부분입니다.

 

8. 6번에서 등록하고 7번에서 등록한 내용을 실제 이베스트 서버로 전달하는 과정입니다.

 

9. 조회 요청이 성공하면 이베스트 서버에서 데이터가 내려옵니다.

 

10. 원하는 데이터를 얻었고 이를 프로그램 내에서 다양하게 활용할 수 있습니다.

 

 

위 과정을 글과 그림으로 표현했지만 컴퓨터 프로그램은 이를 인지하지 못하기 때문에 프로그램 코드를 입력해줘야 정상 작동하므로 다음으로는 코드로써 설명하겠습니다.

 

 

2번 XaSession 을 선언하는 부분을 VBA 코드로 적어보면 아래와 같습니다.

 

 

 

  Dim WithEvents XASession_Excel As XASession

 

  Set XASession_Excel = CreateObject("XA_Session.XASession")

 

 

 

API 구성 파일중 XA_Session.dll 에 등록되어 있는 XASession 을 사용할건데 현재 프로그램 코드에서는 XASession_Excel 이라는 이름으로 쓰겠다고 알려주는 부분이며 "XASession_Excel" 은 이 프로그램 내에서 사용자가 이름을 다른것으로 얼마든지 변경할 수 있습니다.

 

 

3번 서버에 연결하는 과정은 아래와 같습니다.

 

 

  bConnect = XASession_Excel.ConnectServer("hts.ebestsec.co.kr", 20001) 

 

 

"bConnect"는 이 프로그램 내에서 사용자가 이름을 다른것으로 변경할 수 있습니다.

(이하 사용자가 변경할 수 있는 이름에 대해서는 (변수)라고 단순 기입하여 대체합니다.)

 

"hts.ebestsec.co.kr"은 이베스트 서버의 도메인 주소인데 독자분들이 다음이나 네이버에 접속할 때 daum.net이나 naver.com 이라고 입력하는 인터넷 도메인 주소이며 "20001"은 해당 도메인의 20001번지에 연결하겠다는 뜻으로 이해하면 됩니다.

 

 

4번 로그인하는 과정은 아래와 같습니다.

 

 

  bLogic = XASession_Excel.Login(아이디, 접속비밀번호, 공인인증비밀번호, 0, False)

 

 

bLogin(변수),

이베스트에 회원가입할 당시의 아이디, 접속비밀번호, 공인인증비밀번호를 적고 0, False는 손대지 말고 그대로 두세요.

 

입력이 완성된 코드의 예제는,

 

bLogic = XASession_Excel.Login(cool, coolman, coolman1234 0, False)

 

의 형태가 됩니다.

 

 

로그인이 성공했는지 실패했는지 알기 위한 방법이 여러가지가 있겠지만 메시지 박스로 알림을 하겠다면 코드는 아래와 같습니다.

 

 

  Private Sub XASession_Excel_Login(ByVal szCode As String, ByVal szMsg As String)
      if szCode = “0000” then MsgBox “로그인 성공”
      else MsgBox “”로그인 실패 : “ & “[" & szCode & "] " & szMsg
      end if
  End Sub

 

 

만약 로그인이 성공하면 "로그인 성공"이라고 출력하게 되며, 실패한 경우에는 "로그인 실패 : "와 더불어 로그인에 실패하게 된 에러 코드를 같이 출력하여 어떤 문제가 있는지 확인할 수 있습니다.

 

 

위 과정까지 전부 하게 되면 아래와 같은 코드가 완성 됩니다.

 

 

위 이미지는 이베스트에 사전 허락을 받고 증권사에서 제공하는 샘플 및 가이드에서 가져온 것인데 이베스트 투자증권이 과거에는 이트레이드 증권 이었고 당시 제작된 것이라 접속 주소가 etrade.co.kr 로 되어 있으나 현재는 ebestsec.co.kr 이 맞는 주소입니다.

(이외 이베스트에서 가져온 자료는 사전 승낙을 받고 사용하고 있음을 알립니다.)

 

 

demo.ebestsec.co.kr 는 모의서버입니다.

 

 

hts.ebestsec.co.kr 는 HTS서버입니다.

 

 

초보자의 경우 복잡하게 보이고 이해하기 어려울 수 있는 부분이 있으나 하나씩 순서대로 따라오다보면 어느순간 이해가 되게 될 것입니다.

 

 

모든것을 다 이해하려고 할 필요 없다는 뜻이지요.

 

 

이번편에서는 로그인하는 과정까지만 하고 다음편에서 5번부터 다시 이어 가겠습니다.

 

 

<자료 출처 : 이베스트투자증권 (http://ebestsec.co.kr)>

 

 

Posted by 투자의神