요즘 대부분의 컴퓨터는 64비트 OS를 사용하고 있습니다. 저는 시스템 트레이딩을 하기 위해서 파이썬을 사용하고 있습니다. 제가 사용하는 이베스트 증권사에서는 xingAPI라고 하는 시스템 트레이딩 API를 제공해 주고 해당 프로그램을 사용하기 위해서는 파이썬 32비트 버전을 사용해야 합니다.

시스템 트레이딩에 32비트 파이썬이 필요하다고 해서 32비트 파이썬을 따로 설치하는 것은 조금 불편할 것입니다. 딥러닝 등에도 사용을 하므로 64bit 파이썬을 설치하고 추가로 32비트 환경도 설치하는 것이 바람직한 것으로 보입니다.

아래 포스팅에서 구글 텐서플로우 라이브러리를 사용하기 위하여 다른 파이썬 버전을 설치하는 방법을 소개한 적이 있습니다.

https://iamaman.tistory.com/2018

저는 주로 아나콘다를 설치해서 사용하고 있고 아나콘다를 사용하면 64비트 파이썬이 설치된 환경에서 다른 버전 또는 다른 비트의 파이썬 환경을 만들 수가 있습니다.

현재 제 컴퓨터는 윈도우 64비트이고 파이썬은 3.6, 64비트 버전이 설치가 되어 있습니다. 관리자 권한으로 cmd 또는 파워쉘을 실행한 이후에 아래와 같이 명령어를 작성해주면 32bit 파이썬이 추가로 설치가 됩니다.

set CONDA_FORCE_32BIT=1

conda create -n py36_32 python=3.6 anaconda

activate py36_32

새롭게 설치된 32비트 파이썬은 아나콘다가 설치된 파이썬 폴더 아래의 envs 폴더 이하에 설치 됩니다.

C:\Anaconda3\envs\py36_32\python.exe

향후 32비트 파이썬을 다시 사용하기 위해서는 이 주소의 실행 파일을 사용하시면 됩니다.



아래 포스팅에 이어서 오늘은 Autohotkey 로 이베스트증권 xingAPI 를 사용하여 주식 현재가를 가져 오는 방법에 대해서 소개하려 합니다. 아래 포스팅에 이은 소개이므로 해당 내용을 어느 정도 숙지하고 오셔야 이해가 될 것입니다.

http://iamaman.tistory.com/2224

아래 xingAPI 메뉴얼에 나와 있는 바와 같이 로그인이나 계좌 정보와 관련된 내용들은 XASession 을 사용하지만 조회를 하기 위해서는 XAQuery 를 사용해야 합니다. 또한 실시간 정보를 얻기 위해서는 XAReal 을 사용합니다.

http://www.ebestsec.co.kr/apiguide/guide.jsp?cno=100

또한 xingAPI 에는 TR 이라는 개념이 있는데~ xingAPI 를 사용할 때의 입출력 데이터 규격이라고 보시면 될 것 같습니다. TR 에 정의되어 있는 대로 입력을 넣어주면 증권사 서버에서 출력을 받을 수 있다는 것입니다. TR 은 파일로 되어 있는데 xingAPI 를 설치하면 DevCenter 라는 프로그램이 설치 되고 DevCenter 에서 아래와 같이 버튼을 누르면 한번에 다운로드 받을 수 있고 C:\eBEST\xingAPI\Res 폴더에 res 라는 확장자로 설치 됩니다. 각 TR 에 대한 입출력 정보는 DevCenter 에서 확인하실 수 있습니다.

주식 현재가 조회를 하기 위해서는 t1101 또는 t1102 TR 을 사용할 수 있습니다. 본 포스팅에서는 어떤 질문자 분이 계셔서 t1101 TR 을 사용해 보겠습니다. 해당 TR 의 res 파일 위치는 C:\eBEST\xingAPI\Res\t1101.res 이고~ 주식 현재가를 가져오기 위한 Autohotkey 코드는 아래와 같습니다.

아래 코드를 실행하기 전에 당연히 이전 포스팅에서 사용을 했던 로그인은 먼저 해야 되겠죠~

;~ ------------------------ 주식 현재가 가져오기 Start ----------------------------------------

instXAQueryT1102 := ComObjCreate("XA_DataSet.XAQuery")

ComObjConnect(instXAQueryT1102, "query_") ; event binding to query_ReceiveData

login_query := 0

instXAQueryT1102.ResFileName := "C:\\eBEST\\xingAPI\\Res\\t1101.res"

instXAQueryT1102.SetFieldData("t1101InBlock", "shcode", 0, "078020") ; 이베스트 투자 증권 코드

instXAQueryT1102.Request(0)

while login_query = 0 ; hold for ReceiveData event

{

}

name := instXAQueryT1102.GetFieldData("t1101OutBlock", "hname", 0)

price := instXAQueryT1102.GetFieldData("t1101OutBlock", "price", 0)

MsgBox %name% 종목의 현재 가격은 %price% 입니다.

;~ --------------------- 주식 현재가 가져오기 End ----------------------------------------

query_ReceiveData(code, msg)

{

global login_query:= 1

}

위 코드에서 입력으로 준 078020 은 이베스트 투자 증권의 코드 번호입니다. 정상적으로 동작을 하면 아래와 같이 이베스트투자증권의 현재 가격이 9770 원이라고 나오는 것을 확인할 수 있습니다.

위 코드의 동작중 중요한 부분에 대한 설명은 다음과 같습니다.

0. XAQuery 에 대해 ComObjCreate 를 하고 응답 함수를 ComObjConnect() 를 통해 binding 합니다.

1. SetFieldData 를 통해 t1101 TR 에 대한 입력값을 설정하고~

2. 서버에 Request 를 하고

3. whle 문을 통해 서버 응답을 기다립니다.

4. ReceiveData 함수를 통해 응답이 왔음을 확인하면 while 문을 빠져나가게 되고~

5. GetFieldData 를 통해 서버로부터 온 값 중 필요한 부분을 읽습니다.

혹시나 로그인을 안 한 상태로 위코드를 실행하고 안 돌아간다고 댓글 다실 분들을 위해 전체 코드를 첨부합니다. 아래 코드에서 증권사의 아이디,  패스워드,  공인인증서 비번은 본인의 것을 넣어야 된다는 설명은 굳이 안 해도 되겠죠?

위 코드의 동작만 확실히 이해하게 된다면 다른 대부분의 조회 TR도 이해할 수 있을 거라고 생각합니다.

Autohotkey 를 사용하여 이런것도 할 수 있다는 소개를 위해 작성해 봤는데~ 정말 Autohotkey 의 기능은 쓰면 쓸수록 무궁무진한 것 같습니다. 즐거운 Autohotkey 코딩 하시기 바랍니다.



  1. 이베스트 2018.10.09 14:31

    역시 남성 방장님의 친절한 답변에 감사합니다.열심히 연구 노력해보겠습니다.^^

  2. 키움 2019.04.07 21:31

    여기 글을 보고 키움증권 api를 통해 만들어 보려고 하는데 막히는 부분이 있어서 여쭙니다

    k1:=ComObjCreate("KHOPENAPI.KHOpenAPICtrl.1")
    k1.CommConnect() -> 여기서 오류가 납니다


    파이썬 코드를 보면
    self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
    self.kiwoom.dynamicCall("CommConnect()")


    혹시 해결방안에 대해 아시면 답해주시면 감사하겠습니다. ㅠㅠ

    • 남성 2019.04.07 22:33 신고

      글쎄요 제가 키움증권 API 를 사용하고 있지는 않아서.... Connect 부분에서 에러나는 거면 키움증권 API 관련 사이트에 질문 하면 쉽게 해결 될 수 있지 않을까 합니다.

  3. 2019.07.29 12:57

    비밀댓글입니다

    • 남성 2019.07.29 14:08 신고

      github 에 올려 놓은거라 복사됩니다. 위 코드의 아래 부분에 있는 view raw 라고 써 있는 부분을 클릭하면 새창에서 코드가 열리니 복사 하셔도 되고 그냥 파일로 받고 싶으면 그 옆에 파일명을 클릭하면 github 사이트로 넘어가서 다운로드 받을 수 있습니다. 방문해 주셔서 감사합니다. ^^

저는 요즘 xingAPI 를 사용하여 특정 조건이 되었을 때 원하는 주식을 사고 팔도록 하는 프로그램을 작성해 보고 있습니다. 완벽하진 않지만 일종의 시스템 트레이딩이라고 할 수 있죠. 이런 프로그램을 만들기 위해서는 당연히 조건을 저장을 해 놔야 될 텐데 조건을 저장하기 위해서 json 이나 XML 과 같은 형태를 사용할까 하다가 데이터베이스를 사용하게 되었습니다. 데이터베이스로는 예전에 사용해 본 경험이 있고 서버가 없어도 동작 가능한 SQLite 를 사용하고 있습니다. 데이터베이스를 사용하는 경우 UI 가 있으면 편리한데 아래 주소에서 소개한 PyQt 를 사용할까 하다가 ….

https://wikidocs.net/4234

UI 만들기 귀찮아서 대신 사용할 SQLite 용 DB Browser 로 아래 주소의 sqlitebrowser 를 설치해서 사용하고 있습니다.

http://sqlitebrowser.org/

그냥 UI 에서 제가 작성한 조건만 볼 수 있으면 되는거라 이정도면 될 것 같네요.



오늘은 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 를 아래와 같이 확인할 수 있습니다.

※ 로그인 성공

※ 보유한 계좌 개수

※ 계좌 번호



  1. 이베스트 2018.10.06 22:40

    이베스트로 tr조회하려는데 도저희안되서그럽니다.혹시 뭐가 잘못되었는지 알수 있을까요?
    제공하신소스다음에 다음과 같이 했는데 안되서 그럽니다.뭐가 잘못된건지..알려주시면 감사하겟습니다.
    XAQuery_t1101 := ComObjCreate("XA_DAtaSet.XAQuery")
    XAQuery_t1101.ResFileName:="C:\eBest\xingAPI\Res\t1101.res"
    XAQuery_t1101.SetFieldData("t1101InBlock","shcode",0,"078020")
    XAQuery_t1101.Request(false)
    XAQuery_t1101_ReceiveData(szTrCode)
    {
    sName:=XAQuery_t1101.GetFieldData("t1101OutBlock","hname",0)
    }
    msgBox,%sName%
    하면 아무런 결과가 나오지를 않습니다.

    • 남성 2018.10.07 18:08 신고

      Request 를 한 이후에는 위 포스팅 내용처럼 while 문 등을 통해서 서버에서 응답이 올때까지 기다리게 해야 할 것입니다. 그리고 XAQuery_t1101_ReceiveData 함수는 ComObjConnect 를 통해 event binding 이 되어야 할 것입니다.

  2. 이베스트 2018.10.07 19:59

    정말 감사합니다.방장님. 죄송한데 코드를 조금만 고쳐주시면 안될까요? 초보라서 그런지 많이 어렵네요.ㅠ ㅠ 말씀하신대로 해봐도 안되네요.

요즘 시스템 트레이딩을 공부해 보고 있는데, 제가 돌리는 프로그램이 왠지 모르게 멈춰 있더군요, 처음에는 이유를 모르다보니 멀티 프로세스로 코딩 해야 하나…. 라는 생각까지 했었는데, 의외로 문제는 간단하더군요.

이베스트증권의 xingAPI 를 사용하는 경우 DevCenter 에서 TR 마다 다음과 같이 속성값이 있는데 ‘초당 전송수’가 적혀 있습니다.

TR 마다 시간 당 호출할 수 있는 횟수에 제한이 있어서 프로그램이 멈춘 것이더군요. 이런 경우엔 간단하게 time sleep 을 주면 해결이 됩니다. 물론 그만큼 주문 속도는 드리겠지만, 어쩔 수가 없는 거죠.

제가 알고 있기로는 증권사에 수수료 수익을 많이 벌어주는 해비 유저들의 경우 이런 제약이 없는 것도 같은데, 저는 그저 한낱 개미라서 증권사 API 의 제약 속에서 만들어 볼 수 밖에 없을 것 같습니다. 혹시 증권사 API를 사용하면서 초당 전송수에 대한 고려 없이 코딩 해서 문제가 발생 하시는 분들은 참조하시기 바랍니다.



아래 포스팅에서 Autohotkey 에서 Windows COM(Component Object Model) 을 사용한 사례에 대해서 소개를 한 적이 있습니다. Windows 컴퓨터 사용시 많이들 사용하는 Microsoft Office 제품을 사용할 때도 COM 을 사용하여 자동화를 할 수가 있습니다.

http://iamaman.tistory.com/1879

http://iamaman.tistory.com/461

http://iamaman.tistory.com/2001

http://iamaman.tistory.com/2021

Autohotkey 에서 COM 을 사용하기 위해서는 아래 메뉴얼 같이 COM object 를 만들어야 합니다.

https://autohotkey.com/docs/commands/ComObjCreate.htm

ComObjCreate의 입력값으로 CLSID 를 넣어줘야 하는데 CLSID 는 우리가 사용하고자 하는 COM 의 Program ID 입니다.

ComObject := ComObjCreate(CLSID [, IID])

탐색기 정보 등을 자동화 하고 싶으면 Shell.Application, Microsoft Word 를 자동화하고 싶으면 Word.application, Microsoft Powerpoint 를 자동화 하고 싶으면 PowerPoint.Application 을 넣어야 하는 식입니다.

COM 을 사용하기 위해서는 당연히 우리 컴퓨터에 사용할 수 있는 COM 이 어떤게 설치가 되어 있는지를 알아야 합니다. Microsoft Office 제품과 같이 우리가 설치한 경우에는 당연히 알 수 있겠지만 다른 프로그램들 같은 경우에는 어떤 이름을 사용해야 COM 을 사용할 수 있는 건지 잘 모르는 경우가 많습니다.

그래서 오늘은 Powershell 을 사용하여 우리 컴퓨터에 설치되어 있는 COM 을 검색하는 방법에 대해서 소개하려합니다. 해당 코드는 Powershell 코드이며 ‘개발자를 위한 Powershell’ 책의 예제에 있습니다.

책의 전체 소스 코드들은 아래 주소에서 다운로드 받을 수 있습니다.

https://github.com/dfinke/powershell-for-developers

그리고 아래 주소의 GetProgID 함수를 사용하면 우리 컴퓨터에 설치되어 있는 COM 을 검색할 수 있습니다.

https://github.com/dfinke/powershell-for-developers/blob/master/chapter10/GetProgID.ps1

Powershell 에서 다음과 같이 ps1 파일을 실행하면 되는데…..

.\GetProgID.ps1

내 컴퓨터에 몇 개의 COM 이 설치되어 있는지 확인을 해보려면 다음과 같이 명령어를 치면 됩니다. 제 컴퓨터에는 1800개 COM 이 있네요.

.\GetProgID.ps1 | measure


1800 개를 눈으로 확인하는 건 조금 불편 하니까 키워드로 검색하는 것이 좋습니다. 다음과 같이 word 를 검색해보면 Word.Application 뿐만 아니라 내가 잘 알지도 못하는 다양한 COM 들이 설치 되어 있다는 것을 알 수가 있습니다. 검색 되는 목록 중에서 Word.Application 을 사용 하면 되는 것이죠.

.\GetProgID.ps1 word


이베스트 xingAPI를 사용해서 시스템 트레이딩을 하시는 분들은 다음과 같이 검색해보시면 COM 이 나오는 것을 확인 하실수 있습니다. xingAPI 를 설치했으므로 검색이 되는 건 당연하겠죠.

.\GetProgID.ps1 XA_DataSet

.\GetProgID.ps1 XA_Session


저는 개인적으로 요즘 이베스트 xingAPI를 통해서 시스템 트레이딩을 조금씩 공부 해 보고 있는데, 컴퓨터 언어는 주로 파이썬을 사용하고 있습니다. 생각해보니 Autohotkey 나 Powershell 을 사용해서도 시스템 트레이딩이 가능할것도 같네요.



저는 시스템 트레이딩에 관심이 있어서 이베스트증권의 xingAPI 를사용해 보고 있습니다. 아직 제대로 된 로직을 완성한 것은 아니지만 생각나는 아이디어들을 코딩 해 보고 있습니다. 시스템 트레이딩을 이용하여 주식 투자를 하기 위해서는 호가를 계산할 수 있어야 합니다. 아래는 미래에셋증권 홈페이지에서 가져온 우리나라 주식 시장의 호가 가격 단위 입니다.

https://www.miraeassetdaewoo.com/hki/hki3061/n65.do

호가 가격 단위를 알아야 거래 하고자 하는 가격을 지정할 수 있고 주문을 넣을 수 있습니다. 물론 시장가로 주문을 한다면 거래 수량만 정하면 되기 때문에 이때는 필요 없을 겁니다. 호가 가격은 지정가 주문 거래시 꼭 필요한 정보입니다. 위에 표를 보시면 아시겠지만 거래소인지 코스닥인지, 기존가에 따라 호가 가격 단위가 달라집니다.

저는 현재 파이썬을 이용하고 있고, 호가를 계산하는 코드는 아래와 같습니다.

사용 방법은 위에 코드에 나와 있는 것처럼 다음과 같이 입력하면 됩니다.

hogaPriceReturn(기준가, 원하는 것과, 'kosdaq' or ‘kospi’)

ex) 코스닥, 현재가가 1만원인데 -2 호가의 가격, hogaPriceReturn(10000, -2, 'kosdaq')

위 코드를 돌려 보면 9980 이라는 결과를 얻을 수 있습니다.



저는 이베스트증권의 xingAPI 를 사용하여 종목을 검색하고 간단한 형태의 매매 프로그램을 만들어서 사용하고 있습니다. xingAPI에서는 KOSPI, KOSDAQ 에 따라 체결 정보를 가져오는 TR 이 구분 되어 있습니다. 예를 들어 삼성전자는 코스피이므로 스팸으로 S3_ TR 을 사용해야하며 셀트리온헬스케어는 코스닥이므로 K3_ TR 을 사용해야 합니다.

종목명을 넣었을 때 해당종목의 시장이 어딘지를 구분해주는 TR 이 무엇인지 모르겠더군요. 그래서 이베스트 홈페이지에서 고객센터에 문의를 해 봤습니다. xingAPI 사용 중에 모르는 부분들은 아래 고객센터에 문의해 보시기 바랍니다. 하루가 안 돼서 답변이 달리더군요.

문의결과 다음과 같은 답변을 받았습니다. t8430, t8436, t9945 TR 중 하나를 사용하면 되더군요.

종목마스터를 가져오는 TR이 있습니다. 해당 TR을 이용하시어 종목리스트를 가져와서 구분하셔야 할 것으로 판단됩니다.

t8430, t8436, t9945 중 하나를 사용하시면 됩니다.

t8430, t8436, t9945 TR 들은 시장의 모든 종목들을 가져오는 것이므로 처음 한 번만 데이터베이스에 저장해 놓고 사용하는게 좋을 것 같습니다.

일단은 DevCenter 에서 t8430, t8436, t9945 TR 을 확인해 보니 아래와 같이 제가 원하는 정보가 있었습니다. gubun 이라는 출력이 1 이면 코스피, 2 면 코스닥이더군요.

코딩을 하기 전에 ‘TR 확인 창’ 에서 t8430 TR 을 사용해 봤습니다. 입력에 전체를 의미하는 0 을 넣고 조회를 하니 아래와 같이 전 종목에 대한 정보가 나옵니다.

TR 을 알았으니 이제 천천히 코딩만 하면 되겠네요.



제 블로그를 보신 분들은 아시겠지만  저는 소프트웨어 뿐만이 아니라 주식이나 펀드 매매에도 관심이 있습니다. 소프트웨어 개발 경력이 있다보니 자연스럽게 시스템트레이딩에 관심을 갖게 되었습니다. 예전부터 관심이 있었지만  4~5 년 전에는 일반인들이 시스템트레이딩을 접하기가 그렇게 쉽지 않았습니다. 시스템 트레이딩을 하기 위해서는 증권사 API(Application Programming Interface)가 필요한데 예전에는 이런 API 들이 조금 미흡한 편이었습니다. 하지만 최근에는  증권사 API들이 잘 갖추어지고 있고 제가 알고 있기로는 키움, 대신, 이베스트, 미래에셋대우 증권 등에서 API를 제공해 주는 것으로 알고 있습니다.


시스템트레이딩을 하기 위해서는 소프트웨어 코딩 기술 뿐만이 아니라  수익 전략이 필요합니다. 수익 전략은 일종의 트레이딩 알고리즘이라고 보시면 될 겁니다. 소프트웨어 코딩 기술보다 수익  전략을 만들어내는 것이 훨씬 더 어려운 부분이라고 할 수 있습니다. 저는 아직까지도 수익 전략이 없어서 증권사 API를 사용하여 실 투자를 하고 있지는 않습니다.


하지만 매일매일의 종목 검색이나 계좌 내역을 정리하는데  증권사 API를 사용하고 있습니다. 실제 투자를 할 때는 ‘서버 자동 매수 매도’ 기능을 자주 사용하고 있고  증권사 HTS 비교 결과 이베스트증권의 해당 기능이 조금 더 괜찮은 거 같아서 이베스트증권을 사용하고 있습니다.  이베스트증권에서 '서버 자동 매수 매도 기능'은 ‘[5220] 주식스탑로스(자동주문)’ 창을 사용하시면 됩니다.


증권사 API에 대해서 공부하기 위해서 제가 참조한 사이트들을 몇 가지 정리해 보고자 합니다.


첫 번째로 굉장히 도움이 많이 됐던 사이트로 WikiDocs 의 ‘파이썬으로 배우는 알고리즘 트레이딩’ 이 있습니다.  주소는 아래와 같습니다.


https://wikidocs.net/book/110


위 사이트에서는 증권사 API 사용을 위한기본적인  파이썬 언어의 문법과 프로그램 설치 방법 간단한 API 사용 예 등을 알 수 있습니다.  처음 시작하는데 매우 도움이 됐던 사이트입니다.


두 번째로 도움이 됐던 사이트로 아래 블로그 들이 있습니다. 아래 블로그에서는 초기 API 사용 시 샘플코드들을 볼 수가 있었고 리눅스에서도 API 제공이 되는지에 대한 궁금증을 해결할 수가 있었습니다.


http://freeprog.tistory.com/344


http://systemtraders.tistory.com


마지막으로 매우 당연하지만 xingAPI 도움말입니다.


http://www.ebestsec.co.kr/apiguide/guide.jsp?cno=100


엑셀을 샘플로 한 설명이지만 이베스트증권 xingAPI 에서  어떤 기능들이 있는지를 확인할 수 있고 xingAPI 를 설치하시면 아래 주소에서 엑셀 파일 샘플들을 확인할 수 있습니다.


C:\eBEST\xingAPI\샘플


최근에는 e종목검색 기능이 추가 됐고 종목검색 전략을 API에서 사용할 수 있도록 해  준다는 것을 알 수 있었습니다.


  1. 박아지 2019.05.11 16:29

    pkc1@naver.com
    선물.옵션 자동매매 프로그램을 의뢰하면 비용이 얼마나 드나요 (ebest 증권 선호하나 관계 없음.)
    source code 를 받고 싶습니다 . 최소한 매매 로직을 수정할 수 있어야 합니다
    파이썬이나 비베 같은 쉬운 프로그램이면 좋을 것 같아요
    효율이 있으면 상업화 의사도 있습니다.
    핸드폰 or 문자 가 편합니다 anytime 9787 8753

    • 남성 2019.05.11 20:38 신고

      증권사 API 관련 게시판에 문의 하시는게 더 좋을것 같네요. 거기에 문의 하면 아마도 원하시는 답변 얻을 수 있을 겁니다.

+ Recent posts