시스템 01호2017. 11. 13. 16:00

 

 

 

 

Posted by 투자의神
아이디어, 알고리즘2017. 11. 13. 15:30

 

 

무엇이 인공지능이고 퀀트이며 시스템인지 개념을 잡기 위해 정리 해봅니다.

 

 

각 용어들은 무엇이 다르고 또 무엇이 같은지 어떻게 구분해야 하는지 설명 들어갑니다.

 

 

 

퀀트 (Quant)

수량을 뜻 하는 영어 단어인 Quantity, 계측을 뜻하는 영어 단어인 Quantiative 와 분석가 Analyst (애널리스트)의 합성어이며 컴퓨터 공학부터 수학, 물리학, 통계학 등의 지식을 바탕으로 주식시장 혹은 종목의 주가를 예측하는 사람을 뜻합니다.

 

 

어떠한 모델에 대해 입력값을 주면 연산을 통해 결과값이 나오게 되는데 입력값으로는 시장종류, 시가총액, 환율, 금리, 경제성장률, ROE, POE, PBR, 당기순이익, 영업이익, 주가, 매출액, 거래량 등 종류가 다양합니다.

 

 

이러한 값들을 넣은뒤 어떤 결과가 나오는지에 따라 투자 여부를 결정하는것이지요.

 

 

인공지능 (Artificial Intelligence)

사람과 같이 지능을 가졌으나 사람의 인체처럼 실제하지 않고 가상의 공간에서 존재하는 것을 뜻하며

최근에는 알파고와 이세돌의 바둑 대결에서 유명해졌지만 퀀트도 인공지능도 금융 시장을 대상으로 연구, 분석, 적용에 있어서 수십년 이상의 역사를 가지고 있습니다.

 

 

 

 

 

 

 

알고리즘 (Algorithm) 이하 위키백과 발췌

어떠한 문제를 해결하기 위한 여러 동작들의 모임이다.

유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다.

수학과 컴퓨터 과학에서 알고리즘이란 작동이 일어나게 내재하는 단계적 집합이다.

알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다.

알고리즘이라는 단어는 페르시아의 수학자이던 알콰리즈미의 이름에서 따온 것이다.

 

 

퀀트든 인공지능이든 어떤 문제를 풀기 위한 각자의 방법이 있을텐데 그 방법들을 알고리즘이라고 표현합니다.

 

 

둘의 공통점은 컴퓨터 하드웨어 이외에는 실물이 존재하지 않는다는 것이며 모든 연산을 컴퓨터나 서버 등을 이용하기 때문에 빠르고 정확하다는 것입니다.

 

또한 컴퓨터를 이용하며 내부적으로 알고리즘이라는 처리 체계를 가지기 때문에 이를 시스템이라는 단어를 붙여 퀀트 시스템, 인공지능 시스템이라고 표현하기도 합니다.

 

 

업계에서 로보 트레이더라던지 로보 어드바이저라고 하는것들도 퀀트나 인공지능의 범위에 포함됩니다.

 

 

필자의 경우에는 퀀트의 방법대로 입력값의 경우의 수와 상황을 달리하여 철저하게 계량 분석한 결과 데이터를 두고 성과가 좋은 것을 사용하는 퀀트라고도 할 수 있고 또 운용중인 여러 시스템중 일부는 각각 계량 분석한 결과에 기반하지만 그것들의 집단을 가지며 때에 따라 가장 최적화의 길을 선택하도록 퀀트와 인공지능의 조합으로 운용하기도 하는데 대표적인것이 본 블로그에 공개하고 있는 V2 로직입니다.

 

 

이렇게 글을 남기지만 필자도 그렇고 독자분들도 그렇고 심지어 제도권에서 근무하는 사람도 대체적으로는 시스템 트레이딩, 알고리즘 시스템 트레이딩, 알고리즘 트레이딩, 인공지능 시스템, 인공지능 알고리즘 시스템 등으로 각기 다른 용어를 혼용해서 사용하는게 일반적일 것입니다.

 

 

아무래도 외래어이고 또 경우에 따라서는 비슷한 영역도 있기 때문인데요.

 

 

사실 용어야 어떻든 사람 대신 알아서 최적의 거래를 하고 성과를 안겨준다면 최고 아닐까요?

 

 

이 부분에 대해 심도있게 연구 관찰하고 논문을 쓴 박사(Ph.D) 급이 아니라면 어떤 용어를 사용하더라도 크게 문제 없을 것 같습니다.

 

 

 

Posted by 투자의神
이런저런2017. 11. 12. 00:30

 

 

뉴스 검색기를 제작하는 중간에 HTS에서 뉴스 검색 기능을 활용할 수 있으면 좋겠다는 의견을 접수 받아 간단히 만들어서 배포한적이 있는 내용입니다.

 

 

이미지에 워터마크가 있는 것은 블로그에 올릴 용도로 만든것이 아니기에 그렇습니다.

 

 

저의 경우에는 아래 이미지의 설정대로 해보니 검색이 잘 되었지만 독자분중에는 그렇지 않다는 의견을 주신분이 계셔서 뉴스 검색기 제작을 속개하고 있습니다.

 

 

가급적 이베스트 투자증권 이외의 이야기들은 적어도 당분간은 다루지 않으려고 했으나 필요한 분이 계실까 싶어 올려봅니다.

 

 

타 증권사의 것에 대한 내용은 이베스트 투자증권의 API에 대해 얘기하는 카테고리가 있기에 다른 증권사 HTS나 API 얘기를 꺼냈을 때 독자분중 초보분들이 헛갈리실 것 같아 가급적 시기를 뒤로 미루고 있습니다.

 

 

 

 

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

 

 

뉴스 검색기를 기다리고 계실분도 많고 또 의견 주는분도 많기에 진행경과에 대해 안내 해드립니다.

 

 

 

▲ 전체 화면이며 앞선 글에서 말씀드린 로그인 화면은 변동사항이 없으므로 그대로 유지됩니다.

 

 

 

 

 

▲ 1. 로그인 버튼이며 클릭시 별도의 데이터를 전송받을 이베스트 투자증권 로그인 화면이 나타나게 됩니다.

 

▲ 2. 키워드를 등록할 수 있는 공간이며 주요 기능으로는 주식 종목과 종목코드를 기본으로 각 사용자들이 사용하는 모든 키워드에 대해 Data Pool 을 구성하여 일부 키워드만 입력하더라도 자동검색 또는 자동완성 될 수 있으며 아래 키워드 등록 버튼을 클릭하지 않고 키워드를 입력한 후 엔터키를 누르더라도 키워드 등록이 되도록 설정할 예정입니다. (일부 기능 미구현)

 

▲ 3. 키워드 등록 버튼을 클릭하여 원하는 키워드를 입력할 수 있습니다.

 

▲ 4. 등록된 키워드의 목록이 출력되며 한번 등록된 키워드는 필자의 서버에 각자의 사용자 파일에 저장되도록 하여 언제라도 프로그램을 실행하면 기존에 사용하던 키워드 목록을 불러오도록 처리 될 예정입니다.

 

▲ 5. 등록된 키워드의 목록중 선택한 항목에 대해 삭제처리 할 수 있는 버튼입니다.

 

 

아래 부분부터 각 독자님들의 의견이 상당히 달라지기 때문에 최대한의 의견을 수용하고자 선택적 수신 또는 제거가 가능하도록 처리 될 예정이며 추가 의견이 있다면 최대한 빨리 의견을 정리하여 본 글에 Comment 해주세요.

 

▲ 6. 수신되는 뉴스 및 공시의 제목, 내용을 선택하여 (중복 선택 가능) 제목, 내용, 제목+내용 중 선택적으로 필터링할 수 있도록 처리 될 예정입니다.

 

▲ 7. 키워드 등록 여부와 상관없이 모든 뉴스를 수신하되 소리 알람으로 사용자에게 알려주는 전체 수신,

키워드에 등록된 뉴스만 수신, 키워드에 등록된 뉴스는 수신하지 않도록 할 부분이며 중복 선택이 불가하며 3개의 옵션중 하나만 선택 할 수 있습니다.

이 부분은 6번 항목과 연동되어 필터링 될 예정입니다.

사용자들의 Needs를 최대한 수용하려다보니 경우의 수 많아지고 작업량이 많아질 수 있는 부분이라 시간을 제법 잡아먹는 부분이기도 합니다.

 

▲ 8. 뉴스 제목과 송고 언론사명이 표기 될 부분입니다.

만약 7번에서 키워드 뉴스 수신 또는 키워드 뉴스 제거를 선택한다면 키워드와 제목의 텍스트 또는 같이 수신되는 종목명, 종목코드와 연동되어 수신 또는 미수신의 기능으로 작동하게 됩니다.

 

▲ 9. 뉴스 본문이 출력되며 역시 8번과 마찬가지로 작동되며 뉴스 본문의 경우

순수 텍스트만 수신 받는 경우, HTML TAG가 포함된 텍스트를 수신 받는 경우, web-page를 수신받는 경우로 나누어지며 순수 텍스트만 수신되는 경우가 아니라면 (이 부분은 사용자가 선택할 수 있는 옵션이 없으며 뉴스를 제공하는 언론사가 어떤 데이터를 보내냐에 따라 결정됨) 키워드에 등록되어 있더라도 원하는 기능으로 동작하지 않을 수 있습니다.

 

▲ 10. 뉴스 검색기 메인 화면 우측의 공간을 펼치거나 접을 수 있도록 하는 버튼이며 휴장일이거나 장중 시간이 아니면 비활성화됩니다.

 

▲ 11. 우측 공간이 펼쳐진 경우에 6번 7번과 연동되어 처리 될 부분이며 종목명, 현재가, 등락율이 출력되고 종목명을 클릭하면 해당 종목의 포털 사이트 페이지가 인터넷 창을 통해 열리게 될 부분입니다.

 

▲ 12. 소리 알람 on/off 기능을 담당하게 될 버튼입니다.

 

▲ 13. 프로그램 종료 여부를 결정할 수 있도록 하며 클릭시 미스 클릭을 방지하고자 종료 여부를 묻는 팝업창이 하나 뜨고 여기에서 "예"를 클릭하면 최종 종료되게 됩니다.

 

 

현재까지 프로그램의 주요 모습과 기능들에 대해 안내 해드렸고 일부 독자분들의 의견이 나뉘는 부분에 대해 중론을 모으는 과정도 필요하고 11월말까지 개인적으로 활용할 수 있는 시간이 많이 없다보니 작업이 지연될 수 있음을 미리 알려드리며 양해를 당부 드립니다.



의견을 모아야 될 부분중 하나가,

매일 7시경 증권사 서버 점검을 실시하는데 이때 프로그램을 재시작할 것인지 아니면 재접속 알림 메시지를 출력하는게 나을지 의견 주시기 바랍니다.

 

 

개진된 의견은 언제나 환영하오니 Comment 바랍니다.

 

 

Posted by 투자의神
뉴스 검색기2017. 11. 10. 10:36

 

 

우선 프로그램의 명칭이 "뉴스 필터링"에서 "뉴스 검색기"로 변경되었음을 알려 드립니다.

 

 

뉴스 검색기를 찾는분이 많아짐에 따라 별도의 카테고리를 신설하였습니다.

 

 

앞으로 뉴스 검색기와 관련된 모든 내용은 본 카테고리에 등재될 예정이며 독자분들께서도 관련 Comment는 본 카테고리의 해당 게시물을 Comment 작성란을 이용해주세요.

 

 

 

Posted by 투자의神
개발의뢰2017. 11. 9. 13:30

 

 

 

 

얼마전 한분의 의견에서 시작된 뉴스 필터링 프로그램에 대한 다양한 의견과 피드백을 받기 위해 본 글을 작성합니다.

 

 

아직은 배포의 단계는 아니고 배포가 될 정도로 완성도가 높아진후 배포가 되더라도 제한된 인원에게만 배포 예정입니다.

 

 

현재 구현된 기능은

> 실시간으로 뉴스 데이터를 수신하고,

> TR조회 제한을 회피하여 뉴스 본문을 조회하는 부분,

> 검색어로 등록된 키워드에 맞는 뉴스가 수신되면 소리 알람,

> 소리 알람의 on/off 기능

 

 

향후 예상되는 추가 작업 및 기능은 아래와 같습니다.

> 프로그램의 크기 변경

> 프로그램 실행 및 종료시 본 블로그 방문 기능

> 뉴스 본문 이외에 뉴스 제목과 검색 키워드 연결

 

 

본 글에 의견을 남겨 주시면 최대한 반영토록 하겠으며

아이디가 없는 독자분께서는 임시로 "방명록"에 [뉴스필터링] 이라는 말머리를 달아 글 남겨 주시면 확인하겠습니다.

 

 

티스토리에 회원가입하기 위해서는 초대장이 필요한데 공개적으로 초대장으로 배포하는곳도 있으니

그곳을 통하셔도 되고 필자의 블로그에서는 매월 중~하순경 초대장이 배포될 예정이니 참고 해주세요.

 

 

 

 

 

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