시스템 03호2017. 12. 4. 18:00

 

 

 

 

 

Posted by 투자의神
시스템 02호2017. 12. 4. 17:30

 

 

 

 

 

Posted by 투자의神
시스템 01호2017. 12. 4. 17:00

 

 

 

 

 

Posted by 투자의神
증권사 API2017. 12. 4. 01:00

 

 

지난 5편에서 조회TR을 이용하는 것에 대해 알아보았고 금번 6편에서는 실시간TR을 다루는것에 대해 알아보겠습니다.

 

 

 

 

4편에서는 위 이미지중 1~4번의 과정까지 알아봤고 5편에서는 5~10번의 과정을 조회TR을 이용하여 알아봤습니다.

 

6편인 본편에서는 위 이미지중 5~10번의 과정을 실시간TR을 이용하여 알아보겠습니다.

 

 

 

조회TR을 이용하는 것은 증권사 서버에 저장되어 있는 데이터를 조회 하는 것이며 이러한 데이터들은 대체로 용량이 크지 않고 데이터의 수량이 많지 않기 때문에 일정기간 동안의 데이터는 증권사 서버에 저장되어 있습니다.

 

 

실시간TR을 이용하여 접근하는 데이터들은 대체로 용량이 크고 수량이 많기 때문에 증권사 서버에 저장되지 않는 경우가 대부분입니다.

 

 

두 TR의 특성중 또 다른점은 조회TR은 원하는 데이터를 형식에 맞게 조회 요청하면 원하는 데이터가 1회 전송됨으로써 모든 처리가 끝나지만 실시간TR은 데이터 전송 요청을 하면 요청 시점 이후에 주가가 바뀌었거나 거래량이 바뀌는등 데이터가 변경되면 변경된 데이터를 증권사 서버가 알아서 전송해주게 되며 사용자가 별도로 "데이터 전송 요청의 해제"를 하기 전까지는 증권사 서버가 계속 데이터를 보내줍니다.

 

 

조회TR은 과거의 특정 데이터를 수신받는데 유리한 구조이고 실시간TR은 언제 어떻게 바뀔지 모르는 데이터를 사용자가 매번 증권사 서버에게 "데이터 바뀌었니? 바뀌었으면 보내줘!"라고 요청하지 않아도 증권사 서버가 알아서 처리 해주므로 실시간 데이터 처리에 유리한 구조일 수 밖에 없습니다.

 

 

다만 실시간TR은 "요청 시점 이후"에 데이터가 변경되면 전송해 주기 때문에 요청 시점의 데이터는 전송해주지 않고 변경된 데이터가 없으면 전송해주는 데이터도 없습니다.

 

 

한 예로 필자가 개발해서 배포중인 뉴스 검색기 우측 현재가 조회 화면을 구성함에 있어 조회TR을 이용하면 TR조회제한(증권사 서버는 서버 부하를 낮추기 위해 조회TR의 단위 시간당 이용 가능 빈도를 회원 등급별로 차등 적용하고 있음)이 적용되기 때문에 실시간TR을 이용하여 실시간 시세를 받아서 처리하고 뉴스 본문은 실시간TR이 없고 조회TR을 이용해서 정보를 취할 수 있는 구조이기 때문에 각 사용자별 등급이 다름을 고려하여 1초당 1회에 한해 본문을 조회 하도록 설정하고 있습니다.

(사용자 등급이 높다면 VIP서버에 접속하여 무제한 또는 무제한에 가까운 TR조회제한을 적용받을 수 있음)

 

 

본격적으로 오늘 다룰 내용으로 넘어가겠습니다.

 

 

로그인은 XASession 객체를, 조회TR은 XAQuery 객체를 사용했었는데 실시간TR은 XAReal 객체를 사용하며 사용 방법은 XAQuery 객체의 사용 방법과 유사하기에 어렵지 않습니다.

 

 

S3_ 라는 실시간TR을 이용하여 예제를 보여드릴텐데 이 실시간TR을 이용하면 코스피 체결 데이터를 수신 받을 수 있습니다.

 

 

S3_의 구조를 한번 살펴보겠습니다.

 

 

 

▲ 메모장 등의 에디터로 S3_.res 파일을 열어보면 위와 같이 세부적인 내용을 보여줍니다.

 

 

 

▲ DevCenter를 통해 S3_를 보면 위와 같이 좀 더 보기 쉽게 표현되어 있습니다.

 

 

사용자인 독자분들이 하셔야 할 것은 XAReal 객체를 만들고 S3_.res 가 어디에 있는지 찾아주고 InBlock.shcode에 값을 입력하여 증권사 서버로 전달한 후 서버에서 데이터를 보내주면 받는게 전부입니다.

 

 

참 쉽지요?

 

 

코드부로 넘어 가보겠습니다.

 

 

 

  Dim WithEvents XAReal_S3_As XAReal Set XAReal_S3_

  = CreateObject("XA_DataSet.XAReal")

 

 

▲ S3_는 코스피 체결 데이터를 수신 받을 수 있는 실시간TR의 명칭입니다.

 

▲ XAReal 선언 및 생성하는 코드입니다.

 

▲ 두 줄이 아니라 한줄로 구성되어 있으며 블로그 화면 너비가 좁은 관계로 '=' 부분에서 개행처리 하였습니다.

 

 

 

 

  XAReal_S3_.ResFileName = "S3_.res")

 

 

▲ S3_.res 등록하는 코드입니다.

 

 

 

 

  XAReal_S3_.SetFieldData("InBlock","shcode", "005930") 

 

 

▲ S3_ 형식에 맞게 입력하는 코드이며 005930은 삼성전자의 종목코드로써 예를 위해 임의로 입력한 값입니다.

 

 

 

 

  XAReal_S3_.AdviseRealData()

 

 

▲ 조회TR에서는 Request 함수를 이용하여 서버에 전달하였는데 실시간TR은 AdviseRealData 함수를 이용합니다.

 

▲ 만약 여러 종목의 데이터를 동시에 받고 싶다면 하나의 종목의 값을 입력하고 서버에 전송한 뒤 동일 과정을 반복하면 됩니다.

  

 

 

 

  Sub XAReal_S3_ReceiveRealData(ByVal szTrCode)

      XAReal_S3_.GetFieldData("OutBlock","price")

  End Sub

 

 

▲ 서버로부터 새로운 데이터를 수신 받는 부분입니다.조회TR에서는 Request 함수를 이용하여 서버에 전달하였는데 실시간TR은 AdviseRealData 함수를 이용합니다.

 

▲ 만약 여러 종목의 데이터를 동시에 받고 싶다면 하나의 종목의 값을 입력하고 서버에 전송한 뒤 동일 과정을 반복하면 됩니다.

 

 

 

 

  XAReal_S3_.UnadviseRealData()

 

 

▲ 더 이상 실시간 데이터를 받고 싶지 않을때 서버에 등록한 "실시간 데이터 전송 요청"을 해제하기 위한 코드입니다.

 

 

 

 

  XAReal_S3_.UnadviseRealDataWithKey("005930")

 

 

▲ 더 이상 실시간 데이터를 받고 싶지 않은 종목을 특정할 경우에는 UnadviseRealDataWithKey 함수를 이용합니다.

 

 

 

 

  Dim WithEvents XAReal_S3_As XAReal Set XAReal_S3_
  = CreateObject("XA_DataSet.XAReal")

 

  XAReal_S3_.ResFileName = "S3_.res")

 

  XAReal_S3_.SetFieldData("InBlock","shcode", "005930")

 

  XAReal_S3_.AdviseRealData()

 

  Sub XAReal_S3_ReceiveRealData(ByVal szTrCode)

      XAReal_S3_.GetFieldData("OutBlock","price")

  End Sub

 

 

▲ 전체 코드를 정리 해보면 위와 같습니다.

 

 

이로써 독자분들은 이베스트 투자증권 서버에 로그인하고 과거 데이터를 조회하거나 새로 발생할 데이터를 조회하는 방법까지 VBA 예제 코드와 함께 모두 알아 보았습니다.

 

 

얼마나 빠르고 정확한 처리를 할 것인가는 사용자별로 필요로 하는 정도에 따라 다를 것이고 그에 맞게 VBA를 사용하거나 C계열 혹은 JAVA, Python 등의 여러 프로그래밍 언어를 선택하면 됩니다.

 

 

겨우 몇편으로 알아본게 전부이고 코드가 몇줄 되지 않지만 VBA만 이용하더라도 증권사 서버에 로그인하여 계좌 정보를 조회하고 현재가 정보 등을 수신하여 주문을 넣고 실시간 데이터를 기반으로 차트를 그리거나 연산을 하는 등 자동매매 프로그램을 구현 해볼 수 있습니다.

 

 

처음부터 고급의 프로그래밍 언어를 선택하여 이해하기도 어렵고 진도는 안나가는 상황을 맞이하지 말고 우선은 개념을 조금 더 잡고 다양한 시도들을 손쉽고 빠르게 해볼 수 있도록 VBA로 시작하고 한계가 느껴지고 더욱 빠른 처리가 필요할 때에만 상위의 프로그래밍 언어로 넘어가는편이 좋습니다.

(필자도 동일한 과정을 거쳤습니다.)

 

 

이해가 안되는 부분은 Comment 남겨 주세요.

 

 

 

Posted by 투자의神
뉴스 검색기2017. 12. 3. 12:00

 

 

필자가 뉴스 검색기 프로그램을 개발하고 테스트하는 모든 과정은 Microsoft Windows 7 환경에서 이루어졌기 때문에 Windows 7 에서는 정상 작동이 가능합니다.

 

 

만약 이외 버전에서 사용하고자 하는분은 실행시 화면이 어떻게 될지 궁금할텐데 조금전 한 독자분의 컴퓨터에 관련 설정을 하다보니 Windows 10 이었고 이때 실행한 뉴스 검색기 화면을 캡쳐했으니 혹시 Windows 10 환경에서 사용하고자 하는분은 참고 하기 바랍니다.

 

 

 

 

▲ Windows 7 에서 실행한 뉴스 검색기 화면입니다.

 

 

 

 

▲ Windows 10 에서 실행한 뉴스 검색기 화면입니다.

 

 

 

두 운영체제(OS)간의 화면 비율 등이 다르기 때문에 Windows 10 에서는 우측과 하단 일부가 잘려 보이지만 사용하지 못할 수준은 아닌것 같습니다.

 

 

필자가 개발하고 테스트 하는 환경이 Windows 10이 아니므로 향후에도 개선되기 어려운 부분입니다.

 

만약 개발 환경이 Windows 10으로 변경된다면 기준이 Windows 10이 되겠지요.

 

 

약간의 추가 업데이트를 하면 공개 배포 할 예정이니 뉴스 검색기가 필요한 분은 Comment 남겨주세요.

 

오류점이나 개선점을 찾아내기 위해 충분한 테스트 인원이 채워지기 전까지는 필드 테스터를 모집할 예정이고 현재 5~6명이 사용중입니다.

 

 

이상입니다.

 

 

 

 

Posted by 투자의神
시뮬레이션2017. 12. 3. 04:30

 

 

독자 여러분의 머릿속에 어떠한 아이디어가 떠올랐습니다.

 

 

그것이 갑자기 번뜩이는 아이디어이든 혹은 오랜 시간동안 정리되고 다듬어진 것이든 말입니다.

 

 

아이디어 대로 거래를 하면 수익이 날까? 궁금하시죠?

 

 

아이디어 검증을 위한 시뮬레이션에 필요한 것들을 정리 해보는 시간을 가져보겠습니다.

 

 

필요한 것들은 아래와 같습니다.

 

▶ 아이디어의 요약 정리 (어떤 상황에서 거래를 할 것이며 거래 판단에 참고 할 추가 대상이 있는지 등의 정리)

 

▶ 아이디어 검증을 위한 과거 시세 데이터 (예, 특정 종목 또는 전체 종목의 체결이나 호가 데이터, 거래원 데이터 등)

    시세데이터는 파일 형태로 보유해도 되고 데이터베이스의 형태로 보유해도 되지만 개인적으로 데이터베이스 추천

 

▶ 시뮬레이션 프로그램

 

▶ 컴퓨터 (데이터베이스에 저장된 데이터를 포함하며 시뮬레이션 프로그램이 실질적으로 구동되는 컴퓨터)

 

 

생각보다 간단합니다.

 

 

아주 간단합니다.

 

 

그러나 이 모든것은 생각외로 상당한 비용이 소요되는데요.

 

 

대체로 아이디어는 번뜩이는 아이디어보다는 오랜 시간 경험이 축적되며 올바른 방향의 거래를 하려는 습관의 보정이 된 상태에서 정리가 잘 되는 편이므로 시간 = 비용이라는 관점에서 상당한 비용이 소요되며 이론적 학습만이 아닌 실전적 거래를 하면서 습관의 보정이 이뤄지는 단계까지 감안한다면 매우 큰 비용이 소요 되는 셈입니다.

 

 

과거 시세 데이터는 보통 KOSKOM을 통해 구매하려면 1종목 1일분 체결 데이터가 약 2~3천원쯤 합니다.

 

 

전종목(약 2천여 종목) 1일분 체결 데이터라면 대략 400~600만원쯤 되겠네요.

 

 

물론 전종목의 범위내에서 등락이 별로 없는것도 있고 거래가 거의 없는것도 포함되어 있습니다.

 

 

1년치(약 250거래일) 데이터라면 대략 10억~15억원쯤 되겠네요.

 

 

만약 호가 데이터도 참조해야 한다면 대략 곱절만큼의 추가 비용이 발생합니다.

 

 

시세 데이터를 받아둔게 없다면 데이터 구매를 위해 상당한 비용이 발생되겠지요?

(개인간의 거래에서는 몇백~몇천만원선에서 거래되는 편입니다.)

 

 

체결이나 호가 데이터와 같은 실시간 데이터는 해당 데이터가 생성되고 전달될 수 있는 시점이 아니면 증권사를 통해 전송 받을 방법이 전혀 없기에 가격이 비싼편이고 월, 주, 일, 분 데이터는 어느정도의 기간동안 데이터는 증권사 서버에서 자체 보관하고 있기 때문에 가격이 상대적으로 저렴한편입니다.

 

 

시세 데이터를 직접 증권사로부터 받아서 처리 하려면 시세 데이터 받는 프로그램을 직접 개발하거나 외주 개발을 통해 만들고 1년을 기다리면 1년치 데이터가 만들어지게 되는데 이 경우 앞서 언급한대로 수십억원의 비용만큼은 아니지만 개발 비용과 더불어 프로그램이 오류없이 안정적으로 작동하여 시세 데이터를 잘 저장할 수 있는 단계까지 안정화 기간 동안의 시간 비용 그리고 1년을 기다려야 되는 시간 비용이 추가 됩니다.

 

 

시뮬레이션 프로그램은 자체 개발하더라도 프로그램 실행상의 오류가 없는지와 시뮬레이션 처리 과정에서 로직상의 오류가 없는지 검증하는 시간이 필요하고 외주 개발시에는 그 만큼의 비용이 추가 발생하는데 통상 몇백만원의 비용이 소요 됩니다.

(필자는 복잡한 구조가 아닐 경우에 한정하여 시뮬레이션 프로그램을 무료로 제작 해드리고 있습니다.)

 

 

시세 데이터를 데이터베이스에 저장 하고 시뮬레이션 프로그램이 구동될 컴퓨터는 독자분들이 흔히 사용하는 일반적인 PC부터 속도가 더 빠른 PC나 WorkStation, Server 등 어떤것을 선택해도 무방합니다.

 

 

단, 느린 컴퓨터를 사용하게 되면 시뮬레이션 수행 속도가 느리므로 최종 결과를 보기 위해서는 인내의 시간(=비용)이 필요하고 빠른 처리를 위해서는 장비 도입(구매) 비용이 필요한데 적게는 200~400만원에서 많게는 1천만원을 넘는 비용이 필요로 합니다.

 

 

 

컴퓨터를 이용해 가상의 주식시장을 개설하고 과거 데이터를 기반으로 시뮬레이션 해보는것이 얼마나 효율적인지에 대해 의구심을 가지는분도 계실텐데요.

 

 

한 사람을 소개 해봅니다.

이름 : 제임스 사이먼스 (짐 사이먼스)

직업 : 前 수학자, 現 르네상스 테크놀로지 회장

연봉 : 2~3조 (억이 아니라 조)

기타 : 르네상스 테크놀로지는 설립된지 약 35년쯤 되었는데 직원수는 약 200명이며 경영관련 직원을 제외하고는 대부분 수학, 물리학, 통계학 박사급이며 운용 자산은 수십조 이상인데 과거 데이터를 기반으로 수리적 모델을 설계하여 수익 모델을 창출하는 퀀트(=필자도 같은 방식을 채용)를 통해 컴퓨터 프로그램에 의해서만 자산을 운용

 

 

이 정도면 과거 데이터 기반의 시뮬레이션이 왜 중요한지 모두 설명이 충분할 것이라 생각합니다.

 

 

물론 어떤 아이디어를 기준으로 시뮬레이션 했느냐도 중요하지만 우선은 컴퓨터를 이요한 시뮬레이션만 두고 보면 당연히 필요할 수 밖에 없습니다.

 

 

우리가 다루고 처리 해야 할 데이터와 경우의 수는 너무나도 많기 때문에 일일이 사람의 손을 빌려 처리 할 수 없습니다.

 

 

먹지도 않고 자지도 않고 평생 수동으로(손으로) 계산해봐야 컴퓨터가 몇시간 처리 할 양에도 못 미칠것입니다.

 

 

필자처럼 전문적으로 하기 위해서는 이 분야에 대한 이해도도 충분히 높아야 하겠지만 전반적인 처리(아이디어 구상 > 시뮬레이션 > 채택 여부 결정)가 빨라야 하기 때문에 장기적으로 본다면 어느정도 비용을 들여 관련 시스템을 구축하는것을 권합니다.

 

 

물론 아이디어가 아주 간단하고 분, 일, 주, 월의 체결 데이터만을 참고하는 아이디어라면 위에 언급한 여러 비용들을 거의 들이지 않고도 시뮬레이션을 할 수 있습니다.

 

 

필자가 시뮬레이터를 무료로 제작 해드리는 이유는 지금껏 20년 가까이 시장에 몸담고 있는 필자가 이제는 무언가 돌려주고 물려줄 때가 되었다고 생각하기에 시간이 허락하는 범위 내에서 소소한 봉사를 하고자 함이며 이는 뉴스 검색기 제작 및 배포와 맥을 같이 합니다.

 

 

시뮬레이터 제작 도움이 필요한 분은 비용을 전혀 받지 않으니 상담이나 시뮬레이터 관련해서 언제든 Comment 남겨주세요. (내용이 외부에 공개되는것이 싫은분은 비밀댓글로 남겨주셔도 됩니다.)

 

 

 

Posted by 투자의神
증권사 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 투자의神
시세데이터2017. 11. 8. 08:30

 

 

석유, 석탄, 천연가스와 같은 화석자원의 매장량은 한정적이고 언제고 고갈될 수 있기 때문에 화석자원을 대체할 수 있는 에너지원을 만들자는 취지로 시작된 연구를 통해 풍력, 지열, 태양열, 태양광, 조력을 이용한 각종 발전과 활용이 이루어지고 있습니다.

 

 

그러나 최근 15년 이상 포춘, 이코노미스트, 포브스 (Fortune, Economist, Forbes) 등 세계적으로 권위를 인정받는 경제지에서는 Data is new oil 이라고 외쳐왔습니다.

 

 

한국의 많은 사람들이 학창시절, 인간이 살아가면서 가장 필요한 3대 요소를 의.식.주라고 배워왔지만 지나고 생각해보면 그것은 필수적으로 갖춰야 할 3대 요소이고 인간의 삶을 더욱 편리하고 행복하고 윤택하게 하기 위해서는 다른 무언가가 추가 되어야 한다는 것입니다.

 

 

의식주만 겨우 해결하는 사람과 +@ (알파)가 더해진 사람을 상대 비교 해보면 생활 양식이 다를뿐만 아니라 삶에 대한 만족도에서도 크게 차이가 납니다.

 

 

그렇기에 인간을 더욱 인간답게 만들어줄 무엇인가를 만들고 개발하기 위해서는 데이터 (Data)가 필수이기 마련인데요.

 

 

데이터가 단순히 많다고 해서 좋은것은 아닙니다.

 

 

필요한 목적에 맞게 정리정돈 되어 있어야 하는데요.

 

 

특성에 맞는 카테고리로 묶여있거나 혹은 시간순서로 정렬되어 있거나 언어별로 정리되어 있어야 합니다.

 

 

그러다보니 자연스럽게 발전하게 된것이 데이터베이스 (Database)이고 이를 잘 다룰줄 아는 기술자 (DBA : Database administrator)가 필요하게 되었습니다.

 

 

실제 얼마전 포브스에서 발표하는 세계 부자 순위에서 기업용 데이터베이스용 프로그램을 개발, 판매하는 회사인 오라클(Oracle)의 창업자이자 영화 아이언맨의 실제 모델이기도 한 래리 엘리슨이 세계 부자 순위 5위에 랭크 되기도 했습니다.

 

 

어떤 정보이든 흘려 보내고 나면 아무것도 아닌것이 있겠지만 중요한 정보는 그것을 가지고 해낼 수 있는 일들이 엄청나게 많습니다.

 

 

일전에 필자가 시뮬레이션을 하면서 경험한 것인데요.

1GB의 주간 옵션 체결 데이터만 가지고 여러가지의 매매 로직을 대입하여 얻은 결과물이 무려 600GB에 달했습니다.

 

 

이러한 시뮬레이션 결과 데이터중 실제 현재 알고리즘 자동매매 시스템으로 구현되고 있는것도 있고요.

 

 

어떻게 활용하느냐에 따라 데이터가 그냥 흘러 지나가기도 하고 새로운 수익을 창출할 수 있는 시스템을 만들어 내기도 합니다.

 

 

필자가 가지고 있는 보유 데이터가 약 60TB쯤 되니 이를 이용해서 해볼 수 있는것들이 엄청나게 많을 것이고 또 각종 시뮬레이션을 통해 만들어낼 수 있는 결과물의 크기는 가히 상상을 초월하는 규모가 될 수 있을것입니다.

 

 

인터넷이 보급, 발달되면서 인터넷에 많은 데이터가 저장되어 있고 언제든 열람 해볼 수 있다고는 하지만 "주식 시세 데이터"와 같은 특성을 가진 데이터는 그 양이 너무 방대하기 때문에 모두 저장해둘 수 없기에 (1일 약 3천만건 이상의 데이터가 발생됨) 한번 흘러가면 다시는 찾아볼 수 없고 필요하다면 아주 비싼 값에 구매해야만 취할 수 있는 정보들입니다.

 

 

정보를 가지는 그 자체만으로도 자산을 보유하는 것만큼 부유해질 수 있고 또 그것을 알고리즘 자동매매 시스템의 개발이라는 새로운 수익원으로 창출 해낼 수 있는 시대가 되었습니다.

 

 

독자 여러분들은 어떻습니까?

 

 

매일같이 쏟아지는 돈을 버리고 계십니까?

 

 

아니면 취하고 있으며 날로 부유해지고 계십니까?

 

 

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 투자의神