증권사 API2017. 11. 15. 05:39

 

 

2017년 11월 9일에 초보 개발자 또는 API 입문자들을 위해

이베스트 투자증권에 등록되어 있는 각종 메뉴얼, 가이드, 샘플 등에 등을 설명 및 교육 목적 등으로

사용 및 블로그에 포스팅 해도 되겠는지에 대해 문의 하였고 이 글을 작성하고 있는 2017년 11월 10일에 공식적인 답변을 받았습니다.

 

 

결과는 Okay 였습니다.

 

 

예비 알고리즘 자동매매 시스테머를 위한 데이터를 조금 더 올려드릴 수 있을 것 같습니다.

 

 

다만, 당분간 일정중에 소화할 수 있는 시간이 없기에 약 1~2주의 시간동안 어떤 커리큘럼으로 갈 것인가에 대해 고민 해보고 이후 시간이 나는대로 포스팅하도록 하겠습니다.

 

 

필자의 블로그를 찾는분은 크게 세 부류라고 볼 수 있는데요.

 

 

첫번째, API를 다루는등 알고리즘 자동매매 시스템을 구축 해보고 싶은분

 

두번째, 필자의 것 뿐만 아니라 성과가 좋은 여러 시스템을 물색하여 투자를 생각하고 있는분

 

세번째, 뉴스 검색기에 관심이 있으신분

 

 

두번째는 성과를 공개하고 있고 세번째는 어느정도 진행이 되고 있지만 API에 대해 조금 더 다뤄주기를 바라는분의 Needs도 충족할 수 있지 않을까 싶습니다.

 

 

메뉴얼대로 정주행 한번 하고 다양한 샘플 자료를 만들어서 예제를 만드는 방향을 현재 우선시 하고 있으며 한번의 정주행이 끝나고 나서 시간이 되면 다른 증권사(현재 요청이 가장 많은 증권사가 키움증권 OpenAPI, 대신증권 사이보스 등)의 API도 다뤄보는 시간을 가져볼 계획이긴 합니다.

 

 

다만 API를 이용해서 뭔가를 해봄에 있어서 "기존 사용 증권사로 유지" 하는 항목은 그리 중요하지 않다고 봅니다.

 

 

어차피 제공되는 데이터는 오십보 백보이고 TR조회 제한도 비슷한 실정입니다.

 

 

가장 중요한것은 문의점이나 문제점에 대해 증권사측에 문의하고 또 피드백을 받음에 있어 빠르고 정확한가가 두번째이고 첫번째는 서버의 성능 및 안정성입니다.

 

 

흔히들 삼성증권 미래에셋대우증권 같은 대형 증권사가 당연히 서버도 크고 성능도 안정성도 좋을리라 생각하지만 작금의 현실은 IT업계와 엔지니어에 대해 제대로 된 대접을 해주지 않기에 (중요성은 인지하면서도 왜 이런 푸대접인지 이해가 안됩니다.) 어느 증권사나 도진개진이니 가장 중요한것은 어쩌면 사용 메뉴얼이 얼마나 쉽고 편리하게 되어 있는지일런지도 모르겠습니다.

 

 

각설하고,

당분간 증권사 API 카테고리에는 추가 포스팅이 이뤄지지 않을 예정이니 시간을 갖고 기다려 주시기 바라며 혹시라도 "이런 기능을 구현 해보고 싶은데"라거나 "이런 데이터는 어떻게 처리해야 하나"는 궁금증이 생긴다면 아래에 Comment 남겨 주시면 내용을 정리하여 올려드리겠습니다.

 

 

Posted by 투자의神
증권사 API2017. 11. 9. 06:38

 

 

주가란 이유가 없이 상승하기도 하고 이유가 분명하여 상승하기도 합니다.

 

 

개인적으로는 전자의 경우를 더 선호하는데 주가는 기대감을 먹고 크는 존재이기 때문입니다.

 

 

후자의 경우에는 기대감은 사라지지만 분명한 재료로써 상승하는 경우인데 약간은 case by case인 주가 흐름을 보여주기 때문에 대응에 어려움이 있을 수 있어 개인적으로는 선호하지 않습니다.

 

 

필자는 직접적으로 뉴스나 공시를 전혀 보지 않고 재료매매 자체에 대해 선호하지 않는편이지만 얼마전 어떤분의 아이디어에서 출발해 "뉴스 필터링"이라는 프로그램을 개발했던적이 있기에 증권사 API를 이용하여 재료 매매를 하는 방법에 대해 간략히 적어보겠습니다.

 

 

우선 재료 매매는 대체로 모종의 정보원으로부터 정보를 받아서 거래하는 매매부터 증권가 찌라시를 이용하는 경우도 있고 실적에 직접적인 이슈가 될만한 정보들을 모아두고 적절한 조정기에 매수하여 재료가 대중에게 노출되는 시점에 적당히 매도하여 차익을 남기는 매매까지 다양합니다.

 

 

이중 맨 뒤의 경우에 대해 말씀 드리겠습니다.

 

 

필자가 직접 이런 매매를 한다면 이라는 가정하에 생각해보니 데이터를 최대한 수집하는게 우선일거라는 생각이 들었습니다.

(올 여름경 지인이 연락해와 특정 업체에 대해 알아봐달라고 했는데 그 업체가 바로 필자 거주지 부근의 업체였으며 1개월 단위부터 12개월(연간) 단위까지의 증시 일정을 총 정리해서 전지 크기로 인쇄하여 판매하는 업체였는데 생각해보니 이런것을 참고하여 매매하는 사람이 많기는 한가 봅니다.)

 

 

실적발표일,

대통령의 해외 순방 일정 (동행인에 대한 정보도 같이 수집),

영화 개봉일,

임상실험 개시일,

발명 및 특허 정보,

신규 상장 또는 유/무상 증자 정보,

아이돌 그룹의 앨범 출시일 또는 공연 정보,

장차관급 회의 일정,

한국 금융 통화 위원회 일정,

미국 연방준비 위원회 일정,

게임 신규 출시일,

보호예수 만료 일정,

각종 규제 관련 위원회 일정,

게임 영화 등 심의위원회 일정,

TV 드라마 방영일정,

국제 엑스포 일정

 

등 다양한 정보들을 HTS나 각종 뉴스, 홈페이지 등을 통해 데이터 수집해야 할 것입니다.

 

 

이러한 모든 정보들이 돈이 되기 때문에 최대한의 데이터를 수집하는게 중요합니다.

(데이터는 새로운 석유다. (Data is new oil) 편 참조 : http://systemtraders.tistory.com/111)

 

 

그리고 각 해당 일정들에 대한 자세한 정보가 시장에 노출되기 전까지 남은 기간동안 주가의 조정기를 기다렸다가 조금씩 분할 매수한 뒤 해당 재료가 노출되는 시점부터 분할 매도로 수익을 챙겨나갈 것 같습니다.

 

 

아마도 많은분들이 직접 일일이 정보를 찾아 다닐것으로 생각되는데 이는 참으로 비 효율적인 방법입니다.

재료는 매번 바뀌고 일정 역시 마찬가지이기 때문이지요.

 

 

필자라면 웹 크롤링 기술을 접목하여 각종 키워드에 맞는 뉴스는 인터넷에 올라오면 바로 가져오고 API를 이용해 HTS 에 노출되는 데이터들도 모두 가져와서 데이터베이스에 쌓아두고 이를 프로그램상에서 자동으로 정리해서 간략하게 볼 것 같습니다.

 

 

실제로 얼마전 별도의 프로그램을 만들어 API에서 하루중 얼만큼의 뉴스가 노출되는지 발생 빈도를 측정 해보니 중복 뉴스를 포함하여 1일 5~7천건이 발생되었고 중복 뉴스와 광고성 스팸 뉴스를 제외하니 상당히 압축되었습니다.

 

 

API의 많고 많은 기능들중 뉴스 정보를 수신하고 조회하는 2개의 TR을 사용하고 웹 크롤링을 더한다면 취하지 못할 정보가 없습니다.

(2016년 여름경 필자에게 투자(펀딩)를 제안한 회사가 있었는데 부산에서 활동하고 있으며 여러 개발자가 합심하여 웹 크롤링 기술로써 실시간으로 정보를 수집하고 매매하는게 주요 알고리즘이었는데 시장 수익률 대비의 성과도 제법 괜찮았습니다.)

 

 

웹 크롤링 부분은 증권사API 카테고리에서 다룰 내용이 아니므로 추후 기회가 되면 별도로 글을 적도록 하고 우선 API를 살펴보겠습니다.

 

 

 

 

▲ 이베스트투자증권에서 API를 통해 제공하는 NWS 리얼TR입니다.

 

 

▲ 24시간 구동되는 프로그램을 켜놓고 있으면 뉴스가 발생될 때마다 증권사 서버에서 해당 프로그램으로 자동으로 뉴스 데이터를 전송해줍니다.

 

 

▲ 본 TR은 크게 3개로 구성되어 있다고 할 수 있는데 뉴스 및 공시의 제목, 종목코드, 본문 조회를 위해 필요한 키값입니다.

 

 

▲ 본문까지 한번에 조회하지 못하는 이유는 전국의 수많은 사용자에게 모든 데이터를 전송하게 되면 경우에 따라 특정 정보는 필요로 하지 않는 사용자가 있을 수 있고 또한 많은 데이터를 전송함으로써 발생할 수 있는 증권사 서버의 부하를 낮추기 위함입니다.

 

 

 

 

 

▲ t3102 조회TR입니다.

 

 

▲ NWS에서 받아온 키값을 t3102InBlock의 sNewsno (뉴스번호)에 입력하면 뉴스의 본문 모두를 조회 할 수 있습니다.

 

 

▲ 본 TR은 조회TR로써 단위 시간당 조회 가능 횟수가 제한되어 있으며 이베스트투자증권의 '일반'등급 회원은 초당 1회 조회 가능하며 위 캡쳐에서 1초당 10건으로 표기되는 이유는 필자는 이베스트투자증권의 'VIP' 등급이기 때문입니다.

(VIP등급은 일반적인 서버를 사용하는게 아니라 별도의 VIP전용 서버를 통하기 때문에 사실상 무제한에 가까운 조회가 가능합니다.)

 

 

▲ 매매시 발생하는 세금을 제외한 수수료가 월 일정 금액 이상되면 등급이 상향 될 수 있으며 필자의 경우 통상 월 수수료로 600~1000만원 가량 발생하고 있습니다.

 

 

 

위에 소개한 2개의 TR(NWS, t3102)를 이용하면 HTS에서 볼 수 있는 모든 뉴스를 매번 클릭하지 않고도 실시간으로 수신하여 데이터베이스 서버에 저장 해두고 언제든 필요할 때 확인하거나 실시간 거래 모듈과 연동하여 편리하게 매매도 할 수 있습니다.

 

 

같은 알고리즘의 매매를 하더라도 손으로 매매하던 시대는 지나가고 있습니다.

 

 

컴퓨터 프로그램을 이용하는 편이 빠르고 정확하며 편리합니다.

 

 

현재 필자가 운영하고 있는 여러 알고리즘 자동매매 시스템중에는 NWS를 이용해 특정 키워드가 발생하면 특정 종목을 매매하는 경우가 있는데요.

 

 

1년에 몇번만 발생하는 경우이지만 해당 키워드로 인해 뉴스가 나오면 강력한 시세가 분출되는 경우이기 때문에 제법 성과가 좋습니다. (키워드는 공개 불가)

 

 

스텔스 전투기와 돌맹이를 든 사나이의 예를 든적이 있는데요.

 

 

당장은 어렵고 힘들더라도 스텔스 전투기를 직접 만들거나 스텔스 전투기를 만드는 회사에 투자하는 편이 언제까지나 돌맹이만 들고 우두커니 서 있는것보다 나은 선택이리라는게 필자의 개인적인 생각합니다.

 

 

독자분들의 선택은 어떠하십니까?

 

 

호가창에서 뵙겠습니다.

 

 

Posted by 투자의神
증권사 API2017. 11. 6. 00:30

 

 

거래를 하다보면 의미가 있을것으로 추정되는 호가 잔량이나 체결량이 있습니다.

 

 

또 허수 주문인지 궁금한 호가 잔량도 있는데 이를 가장 빠르게 확인할 수 있는 방법은 실제 해당 호가에서의 체결량과 이전 호가 잔량을 체크 해보는 방법 그리고 특이 체결량이 발생하는 순간 거래원을 확인하는 방법이 있습니다.

 

 

이때 필요한 데이터를 수신할 수 있는 TR은 DevCenter의 Real목록에서 찾을 수 있는데 아래 나열하겠습니다.

 

 

H1_ : KOSPI호가잔량

HA_ : KOSDAQ호가잔량

 

S3_ : KOSPI체결

K3_ : KOSDAQ체결

 

K1_ : KOSPI거래원

QK : KOSDAQ 거래원

 

 

이렇게 6개를 사용하면 되고 Real TR이기 때문에 프로그램 구동시 최초로 한번만 등록 해두면 장중 실시간 데이터가 발생할 때마다 증권사 서버에서 알아서 데이터를 내려주게 됩니다.

 

 

KOSPI와 KOSDAQ 전 종목의 실시간 호가 데이터는 1일간 약 1000~1500만건정도 수신되며, 체결은 약 300~600만건정도 수신됩니다.

 

 

모든 필드의 데이터를 저장하기 위해서는 상당히 많은 공간이 필요로 하지만 추후 어떤 아이디어에 의해 무슨 데이터가 필요로 하게 될지 모르므로 가급적이면 모두 저장 해두는편이 좋습니다.

 

 

 

 

▲ KOSPI호가잔량 데이터를 수신 받을 수 있는 Real TR의 상세 내용입니다.

 

 

▲ 각 호가별로 잔량 수량과 호가 가격 그리고 총 매수/매도 호가 잔량 등의 데이터를 수신 받을 수 있습니다.

 

 

▲ 특이 호가 잔량이 있는 경우 데이터가 수신되자마자 곧바로 프로그램 내에서 분석에 이용할 수 있습니다.

 

 

▲ KOSDAQ호가잔량 데이터를 수신 받을 수 있는 Real TR은 HA_ 이며 내용이 동일하므로 생략합니다.

 

 

 

 

▲ KOSPI체결 데이터를 수신 받을 수 있는 Real TR의 상세 내용입니다.

 

 

▲ HTS, MTS 등에서 눈으로만 보던 데이터를 나열 해두니 생각보다 많은 정보들이 실시간으로 우리 눈을 통해 입력되고 있음을 느낄 수 있습니다.

 

 

▲  특이 체결량이 있거나 갑자기 대량 거래량이 발생되거나 특정 가격대를 돌파 또는 이탈 하는 모습을 실시간 데이터를 이용해서 곧바로 알 수 있고 아주 빠른 시간내에 매수 또는 매도 주문을 처리할 수 있으므로 HTS를 이용한 투자자보다 속도전에서부터 유리한 조건을 확보할 수 있습니다.

 

 

▲ KOSDAQ체결 데이터를 수신 받을 수 있는 Real TR은 K3_ 이며 내용이 동일하므로 생략합니다.

 

 

 

 

▲ KOSPI거래원 데이터를 수신 받을 수 있는 Real TR의 상세 내용입니다.

 

 

▲ HTS에서 각 거래원들의 매매 규모 증감 여부를 확인하기에는 무리가 있을 정도로 많은 정보들이 실시간으로 수신되고 있습니다.

 

 

▲  특정 종목에서 특정 거래원의 대량 거래가 있다면 HTS를 이용하는 독자들은 한참이 지나서 알거나 알지 못하는 경우가 많지만 이렇게 실시간 데이터를 모두 수신하는 경우에는 놓치지 않고 빠르게 알 수 있습니다.

 

 

▲ KOSDAQ거래원 데이터를 수신 받을 수 있는 Real TR은 QK_ 이며 내용이 동일하므로 생략합니다.

 

 

 

다른 정보들보다도 장중에 가장 중요하게 참고하고 있는 데이터에 대해서 알아봤는데요.

 

 

HTS를 이용하더라도 이미 충분하리만큼의 성과를 거두고 있는분께는 어쩌면 필요하지 않는 정보일지 모르겠습니다만 제 아무리 고수라 하더라도 모든 정보들을 실시간으로 체크하기에는 어려움이 있기 때문에 주로 참고하는 데이터들의 유형을 정리하고 이것들을 빠르고 보기 쉽게 정리해주는 보조 프로그램을 이용한다면 더욱 좋은 성과를 달성할 수 있습니다.

 

 

아직까지 마땅한 수익 로직이 없거나 시계열 데이터 분석에 관심이 있는 독자분이라면 더욱 관심을 가질만한 데이터들이고 또 필요한 데이터이기도 합니다.

 

 

상대방은 최신예 스텔스기를 타고 적진을 침투하고 있는데 손에 돌멩이 하나만 쥐고 있으면 결과는 뻔하겠지요.

 

 

호가창에서 뵙겠습니다.

 

 

Posted by 투자의神
증권사 API2017. 10. 31. 12:17

 

 

이전 글에서 이베스트투자증권의 DevCenter를 통하면 API를 통해 어떤 정보들을 수신할 수 있는지와 또 수신한 데이터를 활용할 수 있는 방법에 대해 알려드렸습니다.

 

 

그런데 혹자는 "나는 단타 안해", "나는 차트등을 분석하는 기술적 분석이 아니라 기업의 내재 가치를 분석하는 기본적 분석을 할거야"라고 하는분들도 계실겁니다.

 

 

API를 통해 데이터의 수집과 분석 그리고 매매에 이르기까지 빠르게 처리할 수 있는 장점이 있다고 말씀 해드렸었는데요.

 

 

이는 단기 매매자에게만 적용하는것이 아닙니다.

 

 

우리가 추구해야 할 방향점은,

쉽고 편하고 빠르게 데이터의 수집과 분석 그리고 매매를 가능하게 하고 무엇보다 자동화 한다는게 중요합니다.

 

 

눈으로 일일이 데이터를 조회 해보고 마우스를 클릭하면 얼마나 더디겠습니까?

 

 

매일 같이 혹은 매일은 아니더라도 주기적으로 기업의 내용을 마우스 클릭으로 일일이 찾아 보십니까?

 

 

그 자체만으로도 경쟁력이 떨어지는 것입니다.

 

 

HTS의 조건검색식을 통하면 보다 편리하기는 하겠지만 그래도 일일이 들여다 봐야 하는 번거로움이 없어지는 것은 아닙니다.

 

 

우선 종목의 과거 또는 현재의 주가가 어느정도의 범위에 있는지 혹은 기간내 저가 또는 고가대비 어느정도의 위치에 있는 종목을 선정할것인지를 결정하고 또 이중 기업이 부실한 경우(관리종목, 불성실공시법인,투자유의,투자경고,매매정지,정리매매)를 제외한 후 종목 압축에 들어갑니다.

 

 

그 과정을 API로 보여주기에는 무리가 있으니 DevCenter를 통해 간략히 보여드리겠습니다.

 

 

우선 DevCenter를 실행하고 TR목록에서 t1404 (관리/불성실/투자유의조회) TR을 선택합니다.

 

 

 

 

▲ t1404 TR의 구성요소(이름, 데이터타입, 데이터크기, 필드(항목)설명) 등에 대해 자세히 보여지게 됩니다.

 

 

▲ t1404InBlock (인블럭)에는 사용자가 조회를 원하는 데이터 값을 넣으면 되고, t1404Out (아웃블럭)에는 이베스트투자증권 API 서버에서 내려주는 데이터의 구성요소에 대해 보여지게 됩니다.

 

 

▲ t1404InBlock의 gubun 필드를 선택하니 우측 하단에 어떤 값을 입력해야 되는지 친절하게 안내되고 있습니다.

 

 

 

▲ t1404InBlock의 jongchk 필드를 선택 해봤습니다.

 

 

▲ 우측 하단을 보면 t1404InBlock의 jongchk 필드에는 어떤 값을 넣어야 되는지 안내되고 있습니다.

 

 

▲ t1404의 jongchk에 입력할 수 있는 값은 관리종목/불성실공시종목/투자유의종목/투자환기종목의 범위에서 선택할 수 있습니다.

 

 

▲  jongchk 아래에 있는 cts_shcode는 우선 생략하고 다음번에 다루기로 합니다.

 

 

 

 

▲ t1405 (투자경고/매매정지/정리매매조회) TR을 선택하면 위와 같이 출력됩니다.

 

 

▲ t1404와 t1405는 입력 필드중 gubun의 형식은 동일합니다.

 

 

 

 

▲ t1405의 jongchk는 투자경고/매매정지/정리매매/투자주의/투자위험/위험예고/단기과열지정/단기과열지정예고중 선택할 수 있게 되어 있습니다.

 

 

 

▲ 원하는 TR을 선택한 후 아무곳에서나 마우스 우측 버튼을 클릭(우클릭)하면 보여지는 화면인데 DevCenter 에서는 모의실행 기능을 제공하고 있습니다.

 

 

▲ 모의실행 기능은 "TR 목록"에서 선택한 경우에만 가능하고 "Real 목록"에서 선택한 경우에는 불가능합니다.

 

 

▲ TR 모의실행을 위해 값을 채워넣고 진행해볼텐데요 코스피와 코스닥 모두를 대상으로 검색하려면 0을 입력하면 되고 jongchk는 투자경고에 해당하는 1을 입력해보겠습니다.

 

 

 

 

▲ 위 이미지의 상단을 보면 gubun 은 0(전체 = 코스피+코스닥), jongchk 는 1 (투자경고) 에 해당하는 데이터를 조회하고 있음을 알 수 있습니다.

 

 

▲ 서버에서 내려준 데이터를 보면 열제목이 영어로 되어 있는데 이 부분은 아래 이미지를 보면 이해가 쉽게 될 것입니다.

 

 

▲  코스피와 코스닥 모든 종목에서 투자경고가 내려진 종목이 40개나 검색되었습니다.

 

 

 

 

▲ 빨간색 사각형 표시한 곳을 보면 위에서 조회한 데이터의 열제목이 각각 어떤 값을 가지는지 쉽게 알 수 있습니다.

 

 

▲ t1404OutBlock1 - OCCURS 라고 된 부분에서 OCCURS 는 연속 데이터가 조회 될 수 있는 항목들을 묶어둔 것입니다.

 

 

▲ t1404OutBlock1 - reason 에서는 우리가 조회한 종목들이 어떤 사유로 투자경고가 내려졌는지 상세하게 설명되어 있습니다.

 

 

 

여기까지 DevCenter 를 통해 데이터를 조회하는 방법에 대해 알아봤습니다.

 

 

생각보다 상당히 쉽게 되어 있죠?

 

 

눈에 익숙치 않은분들은 손으로 일일이 하나씩 눌러보고 설명도 읽어보면 시간이 조금 걸릴 수 있겠지만 제가 운용하고 있는 알고리즘 자동매매 시스템에서는 아주 짧은 시간내에 어떤 종목이 어떤 사유로 투자경고 등의 주의가 발동되었는지 조회할 수 있습니다.

 

 

기본적 분석을 통해 또는 기업의 내재 가치를 분석해서 내실은 탄탄하지만 아직까지 주가에 반영되지 않아 향후 추가 상승의 가능성이 높은 종목을 찾기 위해 일부 종목들을 소거하였고 나머지 종목들에 대해서 분석을 시작 해봐야할텐데요 각자가 보는 "내실이 탄탄, 우량한 기업"의 조건은 다르므로 이 부분에 대해서 본문에서는 굳이 언급하지 않겠습니다.

 

 

PER, ROE, EPS, BPS, PBR, PEG 등의 지표를 중시하는 분도 계실테고 매출이나 이익의 증가 규모 혹은 부채의 가감 추이를 보는분도 계실것이라 경우의 수가 너무 많기 때문이고 추후 기회가 되면 별도로 다루도록 하겠습니다만 조회가 가능한 TR은 소개 해드리겠습니다.

 

 

 

 

▲ t3341 재무순위종합 조회 TR입니다.

 

 

▲ 기업의 기본적 분석에 필요한 정보들을 조회할 수 있습니다.

 

 

▲ 독자분들이 원하는 특정 조건에 맞는 종목을 보다 쉽고 빠르게 조회 할 수 있습니다.

 

 

 

오늘 준비한 내용은 여기까지이며 왜 API를 이용해야 되는지 간단히 추가 설명 드리고 마치겠습니다.

 

 

만약 독자분들이 오전 9시에 마우스 클릭을 1번 해야 되는 상황이라면 그냥 손으로 해도 됩니다.

 

 

그런데 매일 동일한 조건에 동일 작업을 수행해야 한다면 독자분들은 9시 전후한 시간에 아무일도 하지 못하고 그것에만 집중할 수 밖에 없을 것입니다.

 

 

또한 클릭의 횟수가 만약 1초 내에 10번을 해야 한다거나 혹은 10초내에 100번을 매일 해야 한다면 엄청난 스트레스를 받게 될지도 모를 일입니다.

 

 

API를 통한 자동화 구현은 독자분들이 원하는 투자 자료의 수집과 분석 그리고 매매 판단까지 아주 쉽고 빠르게 처리할 수 있습니다.

 

 

삽질도 삽질 나름이어야 합니다.

 

 

언제까지 삽을 이용해서 산을 옮기겠습니까?

 

 

포크레인이 있고 불도저가 있는데 말입니다.

 

 

 

그럼 호가창에서 뵙겠습니다.

 

 

 

Posted by 투자의神
증권사 API2017. 10. 25. 08:11

 

 

DevCenter를 통하면 이베스트투자증권 xing API에서 얼마나 많은 정보들을 제공하고 있는지 알 수 있으며 지난 시간에는 조회TR과 RealTR 목록을 보여드렸습니다.

 

 

이번에는 조금 더 들어가보겠습니다.

 

 

 

 

DevCenter를 우선 실행하고 좌측 하단의 TR목록 선택 탭에서 RealTR을 선택하고 S3_ 라는 TR을 클릭 해보겠습니다.

 

 

S3_는 코스피에 속한 종목의 체결 정보를 수신할 수 있는 TR입니다.

 

 

 

 

위 이미지처럼 하나의 TR안에서도 상당히 많은 데이터들이 제공되고 있습니다.

 

 

종목코드를 입력하면 체결시간, 전일대비구분, 전일대비, 등락율, 현재가, 시가시간, 시가, 고가시간, 고가, 저가시간, 저가, 체결구분, 체결량, 누적거래량, 누적거래대금, 매도누적체결량, 매도누적체결건수, 매수누적체결량, 매수누적체결건수, 체결강도, 가중평균가, 매도호가, 매수호가, 장정보, 전이동시간대거래량, 단축코드 등의 정보를 수신받을 수 있습니다.

 

 

이중 체결구분 필드를 선택해보면 아래와 같이 나옵니다.

 

 

 

체결구분의 필드 속성에서 수신되는 값이 +로 나오면 매수체결, -로 나오면 매도체결임을 알 수 있게 됩니다.

 

 

 

 

status (장정보) 필드를 선택 해보았습니다.

 

 

0이 수신되면 장중 체결로 수신된 데이터임을 구분할 수 있고 4는 장후 시간외, 10은 장전시간외로 구분할 수 있습니다.

 

 

필드 속성값을 별도로 가지지 않는 필드들도 있는데요.

 

 

S3_ 에서는 chetime (체결시간), price (현재가) 등은 별도의 필드 속성값을 가지지 않고 수신된 값 그 자체만 보아도 됩니다.

 

 

필드 속성값을 가지는 이유는 처리 용량과 시간등을 위해 일종의 정형화된 압축이라고 보면 됩니다.

 

 

이번에는 다른 TR을 선택 해볼까요?

SC0 주식주문접수 RealTR을 선택 해보겠습니다.

SC0은 사용자 본인이 주문한 주문에 대해서만 응답이 내려오는 RealTR입니다.

 

 

 

 

SC0은 앞서 소개한 S3_ 보다 훨씬 더 많은 데이터를 수신할 수 있네요.

 

 

위 TR은 알고리즘 자동매매 프로그램을 통해 주문한 내용이 증권사 서버에 정상적으로 접수 되었는지 확인하기 위한 Real TR입니다.

 

 

만약 삼성전자(005930)를 100만원에 10주 매수하겠다고 주문 넣었는데 엉뚱한 값이 수신된다면 99.99%는 사용자가 개발한 프로그램의 오류로 잘못된 주문이 접수 된 것이겠고 아주 미약한 확률은 증권사 서버의 문제일수도 있습니다.

 

 

다만 증권사의 주문처리 서버는 아주 오랜시간동안 검증이 되어왔고 전문 인력이 관리하고 있기 때문에 시스템 장애 등의 경우가 아니라면 이런 일은 거의 없습니다.

 

 

 

 

SC0 에서는 gmhogagb (공매도호가구분) 등의 필드가 속성값을 가지며 나머지 대부분의 TR은 필드의 값 그 자체로 보고 이해하면 됩니다.

 

 

 

 

 

이번에는 OK_ (코스닥거래원) TR입니다.

 

 

독자분들이 HTS를 통해 조회해볼 수 있는 "종목별거래원" 등의 데이터가 API에서는 이런식으로 수신됩니다.

 

 

어떤 증권사에서 어떤 종목을 얼만큼 사고 팔았는지 그 증권사가 국내 증권사인지 외국계증권사인지 실시간으로 알 수 있기 때문에 투자 주체별 매매 규모가 매매 로직에 있어서 중요한 분들께는 아주 유용한 데이터가 되겠죠.

 

 

 

 

위 이미지를 보면 무엇이 먼저 떠오르시나요?

 

 

전 편인 " DevCenter에서 제공하는 데이터의 종류 "에서 언급한 북한 미사일 관련 예시가 먼저 떠오른다면 정독하고 계시다고 보여집니다.

 

 

NWS 는 RealTR로써 시장에 뉴스가 발생하면 실시간으로 데이터를 내려줍니다.

 

 

 

 

NWS 에서 id 필드를 보면 각 신문사 등이 나오고 중간에 15:공시가 나오죠?

 

 

실시간 뉴스와 실시간 공시가 바로 수신됨을 알 수 있으며 뉴스만 보겠다는 분도 계실테고 나는 공시만 빨리 보면된다는 분도 계시고 둘다 볼 수도 있겠죠?

 

 

선택적으로 각종 뉴스와 공시를 수신할 수 있습니다.

 

 

단 NWS에서 수신한 데이터는 뉴스 또는 공시의 제목만 보여줍니다.

 

 

제목만 봐도 되면 여기까지만 봐도 되고 자세한 내용을 모두 보고 싶으면 realkey 필드의 값을 이용할 수 있습니다.

 

 

조금 더 나아가서는 code 필드에서 수신한 종목코드가 내가 모니터링하는 종목에 포함될 때만 본문을 볼 수도 있고요.

 

 

 

 

실시간으로 수신한 뉴스의 키값 (NWS TR의 realkey 필드)을 t3102에 넣으면 뉴스 본문 전문을 조회할 수 있습니다.

 

 

제목과 본문을 분리하는 이유는 한꺼번에 모든 데이터를 송수신하면 이베스트 투자증권 서버도 부담을 받고 독자분들의 서버나 PC도 부담이 될 수 있기 때문에 필요에 따라 선택적으로 송수신이 용이하게 하는 목적으로 분리 서비스 하고 있습니다.

 

 

NWS로 수신받은 종목코드와 realkey 값으로 t3102을 수신하는 테스트 프로그램을 만들어서 작동시켜 보니 0.018초만에 뉴스 본문까지 모두 수신이 되었습니다.

 

 

이 과정을 조금 더 풀어보면,

 

 

1. 제 서버의 테스트 프로그램에서 NWS 데이터 패킷 수신

2. t3102에 원하는 realkey 값을 넣고 데이터 조회 요청

3. 이베스트 서버에서 데이터 조회 요청을 접수

4. 이베스트 서버에서 제 서버로 데이터 송신

5. 제 서버에서 데이터 수신

 

 

이 정도로 축약해볼 수 있습니다.

 

 

이 모든 과정이 0.018초 만에 이뤄진다니 놀랍지 않으십니까?

 

 

뉴스에 따라 반응하는 알고리즘 자동매매 프로그램의 경우에도 NWS 데이터 패킷을 수신받고 실제 주문을 넣기까지 약 0.1초가 채 걸리지 않았습니다.

 

 

21세기 정보화 시대라는 말은 많이 들어봤어도 이 정도일줄은 상상도 못한분이 다수 일텐데요.

 

 

필자의 알고리즘 자동매매 프로그램과 독자분이 HTS 호가창에서 만나면 독자분들은 백전백패 할 수 밖에 없습니다.

 

 

손매매는 빨리 버릴수록 좋습니다.

 

 

그럼 호가창에서 뵙겠습니다.^^

 

 

 

Posted by 투자의神
증권사 API2017. 10. 24. 07:00

 

 

지난 시간에는 필자가 사용하고 있는 이베스트 투자증권에서 제공하는 API에 대해서 개략적으로 알아보았습니다.

 

 

이번 시간에는 지난 글에서 언급했던 DevCenter 에 대해서 소개하려고 합니다.

 

 

DevCenter는 불과 몇년전에 api와 연동하여 개발하는 것에 비해서 개발환경이 매우 좋아졌기에 소개하지 않을수가 없네요.

 

 

실제 주변에서 이베스트 xing api를 이용하여 프로그램을 개발하는 개발자들중에서도 DevCenter의 존재를 전혀 모르거나 알고는 있지만 참고하지 않고 개발하는 분들이 계신것을 보았는데 이 글을 읽는 독자분들이 초보자라면 반드시 참고해야 할 참고서 수준의 것이니 꼭 알아두셔야 합니다.

 

 

우선 이미지를 2개 보겠습니다.

(퍼온 이미지가 아니라 필자가 직접 본 블로그를 위해 캡쳐한 화면이나 비상업적인 용도라면 출처를 밝히고 사용하셔도 됩니다. 대단한 워터마크를 넣지는 않았지만 특정 픽셀에 필자만이 알 수 있는 표기가 되어 있는점 참고하세요.)

 

 

 

 

 

DevCenter (데브센터)를 실행한 후 캡쳐한 조회TR목록(TR목록)과 리얼(Real)TR목록(Real목록) 입니다.

 

 

위 캡쳐 이미지에서 보듯 기본적으로 API에서 상당히 많은 기능들을 제공하고 있습니다.

 

 

각종 데이터를 조회 해볼 수 있는가 하면 조건 검색식을 적용할 수도 있고 심지어 주문까지 할 수 있지요.

 

 

필자의 경우 여러 프로그램을 동시에 구동하다보니 아이디를 여러개 사용하고 있는데요.

 

 

위 이미지를 캡쳐한 아이디 말고 다른 아이디에서는 해외선물에 대한 데이터까지 조회 해볼 수 있습니다.

 

 

DevCenter 또는 각자가 개발한 API 연동 자동매매 또는 조회 프로그램에서는 HTS, MTS와 같은 데이터를 조회 해볼수가 있으며 입맛대로 작성한 자동매매 로직이 있다면 컴퓨터 프로그램이 빠르고 정확하게 연산하여 진입과 청산까지 모두 처리 해주므로 사람의 손매매는 갈수록 설 자리가 좁아질 수 밖에 없는 형편입니다.

 

 

손매매로써 확실한 수익 로직을 가지고 있던 아니던 데이터의 수신과 분석 그리고 주문은 프로그램을 거치지 않고는 갈수록 힘든 싸움이 될 것은 자명한 일입니다.

 

 

한 예로써, [NWS] 실시간 뉴스 제목 패킷 TR과 [t3102] 뉴스본문 TR을 이용하여 특정 뉴스를 필터링하고

해당 뉴스 내용에 따라 반응하는 일종의 "조건 반응형 자동매매 프로그램"을 개발해둔채 검색 키워드로써 "북한", "미사일", "발사", "동해", "오늘" 을 등록 해뒀다면, 독자들은 북한의 미사일 발사로 지수가 급락하고 있는 상황에서도 빠르게 뉴스를 접하지 못한분들은 어리둥절 하다가 당할 수 밖에 없습니다.

 

 

제 프로그램에서는 뉴스가 나오자마자 0.01초 ~ 0.1초 사이에 이미 북한이 미사일을 발사했다는 소식이 접수되고 보유종목의 비중이 큰 것들은 비중을 축소하거나 아니면 북한 리스크 관련 이슈로 수혜를 받는 방위산업체 주식을 매수할 것입니다.

 

 

이 모든 과정이 최초의 뉴스가 나온지 1초가 채 걸리지 않습니다.

 

 

독자분들이 아무리 빠른 손놀림으로 뉴스를 확인하고 종목을 매매 하더라도 프로그램의 정확도와 속도를 도저히 따라갈 수 없는 상황이지요.

 

 

시장을 관찰하고 매매하는 것은 프로그램이 자동으로 처리 할테니 제가 하고 싶은 무엇이라도 하면서 북한이 미사일 실험 발사를 했는지 인지조차 하지 못해도 되는 상황인것이죠.

 

 

또한 투자라는것이 모름지기 심법으로부터 완성된다는 말이 있을정도로 심리상태의 변화가 투자 성과에 아주 강한 영향력을 행사하지만 저는 프로그램을 실행해둠으로써 심리적인 동요와 갈등이 없게 됩니다.

 

 

뒤늦게 막차를 타고 후회하시겠습니까? 아니면 남들보다 앞서 진입하시겠습니까?

 

 

결정은 독자분들이 하는것입니다.

 

 

DevCenter에 대한 추가적인 내용은 앞으로 몇회에 걸쳐 연재 할 계획이니 천천히 따라 와도 되고 이런게 있구나 정도면 오늘은 충분할 것 같습니다.

 

 

그럼 호가창에서 뵙겠습니다.!

 

 

Posted by 투자의神
증권사 API2017. 10. 20. 08:59

 

 

제가 현재 사용하고 있는 이베스트 투자증권의 Xing API에 대해서 소개 해보려고 합니다.

 

 

이미 동 증권사 API를 사용중이라면 패스하셔도 될 부분이니 참고하세요.

 

 

앞서 API가 무엇인지 간략하게 설명을 드렸었는데요.

아무래도 글로만 적다보니 감이 잘 오지 않을 수 있기에 오늘은 이베스트에서 API를 이용해서 할 수 있는 것들에 대해

소개한 페이지 캡쳐까지 곁들여 보겠습니다.

 

 

 

 

증권사에서 제공하는 Xing API의 구성에 대해서 우선 보겠습니다.

 

첫번째로 가장 중요한 Xing API가 있고 DevCenter, xingACE, ChartData 등이 있다고 적혀 있군요.

 

 

 

 

Xing API는,

고객이 직접 작성한 '트레이딩(자동매매/신호포착 시스템 등) 프로그램'이 이베스트 투자증권의 서버를 통하여

데이터를 주고 받거나 매매가 가능하도록 해주는 통신연결 프로그램입니다. 라고 친절히 설명 해놨습니다.

 

 

더불어 xing API는 별도의 트레이딩툴(HTS/MTS 등)을 제공하지 않으며 프로그래밍이 가능하고 이베스트 투자증권 계좌를 보유하고 계시는 고객이라면 누구든지 사용 가능하다고도 합니다.

 

 

여기에서 중요한 점!

API는 저를 비롯해 각 트레이더가 사용하는 컴퓨터 또는 서버와 증권사 서버를 연결해주는 통신 프로그램이기 때문에

이 연결 프로그램을 통해 어떤 데이터를 주고 받으며 또 어떤 처리를 할 것인지에 대한 부분은 각자가

직접 프로그램을 개발하여 처리해야 될 부분입니다.

 


저의 경우 Microsoft 에서 만든 C#이라는 프로그래밍 언어를 주로 다루며 이를 통해 Microsoft Windows 기반의

프로그램을 만들었습니다.

또한 각종 시세 데이터의 실시간 데이터를 제 서버로 내려 받고 데이터베이스에 모두 저장 하고 있기도 합니다.

 

C#이 아니더라도 엑셀 프로그래밍(VBA), Visual Basic, Delphi, Python, C, C++, Visual C++ 등 다양한 종류의

프로그래밍 언어를 지원하고 운영체제는 Microsoft Windows는 물론 Linux 도 지원하고 있습니다.

 

 

 

DevCenter는,

'API 이용 프로그램' 개발 시에 함께 사용하는 'API 전용 개발보조도구'라고 설명되어 있지요?

 

 

위 설명대로 프로그램 개발을 위한 보조도구도 함께 제공해주고 있는데요.

실제로 저도 이 프로그램을 많이 사용했고 또 지금도 사용하고 있는 아주 편리한 프로그램이며,

"특허출원"이라고 마크도 달아놨네요.

 

 

이 프로그램의 상세한 부분에 대해서는 추후 다시 포스팅 하겠으니 우선은 가볍게 넘어갑니다.

 

 

 

 

XingACE입니다.

이쯤되면 뭔가 많은 것들을 제공하고 있구나 싶으실텐데요.

 

 

예전부터 증권사들간의 수수료 경쟁이 심화되다보니 이제는 '네가 죽는지 내가 죽는지 한판 붙어보자' 라는 식으로

수수료를 하락시켜 경쟁에 참여 하기 보다는 이런 부가 서비스(또는 프로그램)를 제공하는 경향이 강하고

간혹 주식수수료 무료, 선물수수료 무료 등의 이벤트도 곁들이기도 하는 편입니다.

 

 

XingACE는 저처럼 C#등의 언어로 개발한 프로그램을 '가상 테스트'하기 위한 가상거래소 프로그램으로 편리하다고는

합니다만 저는 개인적으로 사용해보지 않았습니다.

 

 

이유는 앞서 말씀드린대로 별도의 데이터베이스 서버에 상당히 많은 분량의 시세 데이터를 저장하고 있기 때문입니다.

 

 

 

 

ChartData 부분인데요.

여러가지 부가 기능을 제공하고 있다 정도로만 보시면 되고,

위 이미지 중단이하의 내용은 추후 별도로 언급할 DevCenter 라는 프로그램을 통해 이뤄지고 있음을 알 수 있습니다.

 

 

여기까지 이베스트 투자증권에서 XingAPI 를 통해 다양한 서비스를 제공하고 있는 모습에 대해 알아봤습니다.

 

 

"시스템 트레이딩은 사람보다 빠르고 정확합니다." 라고 블로그 메인에 적어둔 글이 허언이 아님을 느끼실겁니다.

정말 빠르고 정확합니다.

 

 

누군가는 빠르고 정확한 API를 통해 매매 수익을 거두는가 하면

또 누군가는 9시가 되고 땡하면 매수, 매도 할거라고 HTS앞에서 눈에 불을켜고 앉아 있겠지요.

 

 

저처럼 API서비스를 이용하고 또 자동매매 프로그램을 만들어서 사냥하는 사람이 있는가 하면

석기 시대도 아닌데 여전히 돌도끼를 들고 사냥하는 사람이 있겠지요.

 

 

IBM에서 만든 인공지능 왓슨이 암진단을 하고 알파고가 바둑 랭커들에게 압승하는 시대입니다.

 

 

"마음을 추수르고 다시 해보자! 그러면 잘 될거야!" 라고 자기 암시 해봐야 이미 시작부터 틀렸습니다.

자동매매 시스템은 그 시작부터 "심리"라는 것이 없기 때문에 애초에 마음을 추스를 필요가 없기 때문입니다.

 

 

서두르셔야 합니다.

지금이 아니면 더 늦습니다.

제2의 알파고가 어딘가에서 나타나서 시장을 점령한다면 말이지요.

 

 

감사합니다.

Posted by 투자의神
증권사 API2017. 10. 19. 13:46

 

 

API란?

구글에서 "API"를 키워드로 검색하면,

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

라고 친절히 안내 해줍니다.

 

 

증권사 API란?

주식, 선물, 옵션 투자를 위해 많은 사람들이 사용하고 있는 HTS, MTS와 같이 시세와 관련된 데이터를 보관하고 있는

증권사 서버에 접속하여 데이터를 조회하거나 주문을 내거나 잔고 조회를 할 수 있는 일종의 커스터마이징 형태의

"증권사 서버 접속 모듈 프로그램"이라고 이해하면 쉽습니다.

 

 

이러한 API를 이용하는 이유는,

HTS, MTS로 시세 데이터를 조회하고 주문을 내기까지 여러 프로세서들을 거치게 되는데요.

사람의 눈을 통해 직관적으로 데이터를 조회하고 해당 데이터(차트, 거래량, 주가, 뉴스, 공시 등 많은 정보)를 기초로

매매 판단을 하기까지 시간이 많이 걸리므로 중요한 진입과 청산의 타점에서는 수익이 감소할 수 밖에 없습니다.

 

 

때문에 미리 입력된 일정의 알고리즘을 통해 컴퓨터 프로그램이 스스로 증권사 서버에 접속하여 데이터를 주고 받고

빠르고 정확하게 진입과 청산하여 보다 높은 수익을 얻기 위함입니다.

 

 

현재 제가 사용하고 있는 증권사는 eBest(이베스트)투자증권이며 접속서버는 일반서버가 아니라 VIP고객에게만

공개되는 VIP서버입니다.

 

 

이베스트투자증권 이외에도 현존하는 대부분의 국내 증권사에서도 API서비스를 제공하고 있습니다.

 

 

오늘은 블로그 첫 개설일이자 본 글이 첫 포스팅이므로 간략하게 적도록 하고

이베스트투자증권의 API에 대한 자세한 내용은 다음 기회에 포스팅 하겠습니다.

 

 

Posted by 투자의神