오늘은 Autohotkey를 통해 증권사 API를 사용하는 방법에 대해 소개하려합니다. 일단 증권사 API를 사용하기 위해서는 증권사 API 의 설치나 TR과 같은 기본적인 개념에 대해 알아야 되겠고, 해당 내용들은 아래 주소의 ’파이썬으로 배우는 알고리즘 트레이딩’ 이나 증권사의 API 메뉴얼을 참조하시기 바랍니다.
파이썬으로 배우는 알고리즘 트레이딩: https://wikidocs.net/book/110
이베스트증권 API 메뉴얼: http://www.ebestsec.co.kr/apiguide/guide.jsp?cno=100
시스템 트레이딩을 위한 언어로 많은 분들이 C#, 파이썬, C/C++ 등을 사용하고 있는 것 같습니다. 보통 증권사의 시스템 트레이딩을 위한 API는 DLL 버전과 COM(Component Object Model) 버전을 제공해 주더군요. 저는 개인적으로 COM 버전이 사용하기가 쉬워서 COM 버전을 사용하고 있습니다. 시스템트레이딩을 위한 언어로는 파이썬을 사용하고 있고요.
Autohotkey 를 사용하여 시스템트레이딩을 한다고 하는 분은 지금까지 한번도 보지못했는데, COM 을 사용하다 보니 Autohotkey 를 사용해도 될 것 같다는 생각이 들었고, 시도해 보니 그리 어렵지 않게 이베스트증권 xingAPI 를 사용할 수 있었습니다.
Autohotkey 를 사용하여 시스템 트레이딩을 하기 위해서는 32비트 Autohotkey 를 설치해야 합니다. 저는 아래 주소에서 Autohotkey 를 다운로드 받았고 Windows는 64비트 이지만 유니코드 32비트 버전을 설치 했습니다. 이베스트증권의 xingAPI 가 32비트 버전이라 Autohotkey 도 그에 맞춰서 설치를 했습니다.
https://autohotkey.com/download/
xingAPI 의 기본적인 개념에 대해 안다는 가정하에, Autohotkey를 사용하여 이베스트증권에 로그인을 하고 계좌번호를 불러오는 방법에 대해서 소개해 보려 합니다.
Autohotkey 를 사용하여 이베스트증권에 로그인 하고 계좌번호를 불러오는 코드는 다음과 같습니다.
Autohotkey 에서 COM 객체를 만들기 위해서는 ComObjCreate() 라는 함수를 사용하고 xingAPI 가 event 방식으로 동작하므로 ComObjConnect() 라는 함수를 사용하여 세션 객체를 Login 이라는 이벤트에 연결 시켰습니다. 이렇게 연결을 해 놓은 상태에서 ID, 비밀번호, 공인 인증서 비밀번호를 넣고, COM 객체의 login() 함수를 통해 이베스트증권 서버에 로그인을 시도하면 Login 이라는 event 명으로 응답이 오게 됩니다.
Autohotkey 의 ComObjConnect() 라는 함수의 정의는 아래와 같은데 저는 Prefix 로써 session_ 이라는 글자를 넣어줬고 session_Login 이라는 event 를 받는 함수를 만들어 줬습니다.
https://autohotkey.com/docs/commands/ComObjConnect.htm
ComObjConnect(ComObject, Prefix)
로그인이 정상적으로 된 경우 Login event 의 argument 인 code 값으로 0000 이 전달 되게 되고 코드의 중간에 있는 while 루프는 증권사의 응답을 기다리기 위해 넣어놓은 것 입니다.
로그인이 완료 된 이후에는 xingAPISession 인스턴스의 GetAccountListCount() 함수를 사용하여 계좌의 개수를 알 수 있습니다. 이후 계좌의 갯수만큼 루프를 돌면서 GetAccountList() 함수를 통해 계좌 번호를 알아내게 됩니다. Autohotkey Loop 내의 인덱스의 A_Index 는 1 부터 시작하지만 GetAccountList() 함수는 0 인덱스부터 시작하기 때문에 -1 을 해 준 것입니다.
본인의 이베스트증권 ID, PASSWORD, 공인인증서 비밀번호를 넣고 위 코드를 실행시켜 보면 다음과 같이 로그인이 정상적으로 됐다는 message box 와 보유한 계좌번호에 대한 message box 를 아래와 같이 확인할 수 있습니다.
※ 로그인 성공
※ 보유한 계좌 개수
※ 계좌 번호
'programming language > Autohotkey' 카테고리의 다른 글
Autohotkey, Pulover's Macro Creator 를 사용해 보세요 (6) | 2018.06.07 |
---|---|
Autohotkey update to 1.1.29.01 (0) | 2018.06.04 |
Autohotkey 비활성 창에 메시지 보내기 ControlSend, ControlSendRaw (0) | 2018.06.02 |
SBS 뉴스토리 디지털 함정 인터넷 여론 조작에 나온 Autohotkey (0) | 2018.05.20 |
Autohotkey 를 사용하여 키코드 확인하는 방법 (0) | 2018.04.13 |
Powershell 를 사용하여 Program ID 찾는 방법 (Autohotkey 에서 COM 사용을 위해) (0) | 2018.04.10 |
Autohotkey 를 사용한 광클릭 스크립트 (0) | 2018.04.09 |
Autohotkey 를 사용하여 티스토리 글쓰기시 tag 쉽게 넣기 (0) | 2018.04.04 |
댓글