시스템 01호2017. 11. 22. 15:30

 

 

 

 

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 투자의神
프로그래밍 with C#2017. 10. 23. 16:00

 

 

지난 글에서 밝힌대로 여러 프로그래밍 언어에 대한 경험이 조금씩은 있고 현재는 C#을 이용해서 프로그램 개발을 하고 있지만 필자는 스스로가 프로그래머 혹은 개발자라는 생각은 추호도 갖고 있지 않습니다.

 

 

수익매매 로직을 가지고 있고 그것에 손매매가 더해져 수익을 내다가 조금 더 편하고 빠르고 효율적으로 처리하기 위해 필요한 범위만큼 프로그래밍 언어를 공부하여 말 그대로 필요한 것 정도는 구현할 수 있는 수준입니다.

 

 

전문 개발자들이 프로그램을 만드는것처럼 체계화 되어 있지 않고 전문 지식도 없기에 그동안 많은 우여곡절을 겪은적이 많기도 합니다.

 

 

때문에 본 카테고리에서 다룰 내용들은 전문 개발자의 수준의 내용은 아닐 수 있음을 미리 말씀드립니다.

 

 

본 블로그에서 얘기하는 많은 부분에 있어서 잘못 기입된 내용이 있으면 지적 해주세요.

최대한 빠르게 정확한 내용으로 수정하겠습니다.

 

 

 

C# 이라는 프로그램 개발 언어를 선택하기까지의 과정과 이유는 제 개인적으로는 나름 복잡했고 많은 고민을 했습니다.

 

 

과거 C계열 언어에 어느정도 익숙함이 있지만 Visual C++을 다시 공부하기에는 솔직히 자신이 없었고 Visual Basic은 처리 속도에 불만이 있었고 Delphi는 만져본지 너무 오래된 관계로 다른 무언가를 찾고 있었습니다.

 

 

이 때 조건으로 내건것이 상대적으로 진입장벽이 낮되 성능저하나 기타 이슈가 없을것인데요.

 

 

이미 하나 이상의 프로그래밍 언어에 숙달 된분은 상관없겠지만 새로운 출발을 해야 할 경우에는 진입장벽이 낮은 프로그래밍 언어를 선택하는게 좋습니다.

C 계열 언어를 다뤄본 경험이 있음에도 필요로 하는 프로그램을 원활하게 개발하는데 1년 이상의 시간이 소요되었는데 아무것도 모르는 상황에서 맨땅에 헤딩해야 되는 분들은 더 많은 시간이 걸릴 수 밖에 없을겁니다.

 

 

많은 자원들이 유한하다고 하지만 우리에게 제일 소중하고 희소성이 높은 자원은 "시간"이고 이는 곧 "비용"이기도 하기 때문에 가장 빨리 논리적 사고 체계를 갖출 수 있으면서도 결과물을 산출하는데 필요로 하는 시간이 짧을수록 유리합니다.

 

 

2014년 겨울 드디어 C#과 Python이 물망에 올랐습니다.

 

 

웹 서핑을 하면서 알아보던중 첫번째로 본 샘플이 Python이었기 때문에 그런지 Python에 조금 더 눈이 갔습니다.

무엇보다도 쉬워보였거든요.

(나중에 안 사실이지만 C#으로는 수십줄 이상의 코드로 구현될 것이 Python에서는 단 몇줄로 가능하기도 했습니다.)

(위 첫번째로 본 샘플은 https://wikidocs.net/book/110 입니다.)

 

 

그렇지만 Visual Studio의 편리함을 익히 알고 있기에 최종적으로 C#을 선택하게 되었고 오랜만에 뭔가 새로운걸 시작하려니 흥분 상태에 빠지기도 했습니다.

 

 

2014년 12월말경 3권의 C#책을 구매하고 2015년 1월 2일인가 3일쯤으로 기억되는 날부터 파고들기 시작했습니다.

 

 

명절에도 사무실에 앉아 책을 볼 정도로 파고 들었죠.

 

 

이후 서너권의 책을 더 사기도 했고 웹 서핑 등을 통해 많은 정보를 얻으면서 지금껏 약 34개월간 수십개 이상의 프로그램을 만들어오고 있습니다.

 

 

그중에는 각종 데이터들을 수집하는 프로그램부터 이렇게 모은 데이터들을 효율적으로 백업하고 관리하는 프로그램도 있고 각종 조건값에 따라 시뮬레이션하는 프로그램 그리고 실제 거래를 하는 프로그램과 거래 결과에 대해 성과 분석하는 프로그램까지 다양하게 갖추게 되었습니다.

 

 

이 글을 적다보니 지난 34개월의 시간이 주마등처럼 스쳐가네요.

 

 

프로그램 자동매매를 계획하고 있고 뭔가 해보고자 한다면 저처럼 너무 고민하지 말고 일단 시작하세요.

 

 

C#을 이용하는 분이라면 제가 도울 수 있는 범위내에서는 돕도록 하겠습니다.

 

 

Posted by 투자의神
개발의뢰2017. 10. 23. 15:30

 

 

안녕하세요.

 

 

이곳은 개발의뢰 카테고리입니다.

 

 

제가 전문 개발자도 아니거니와 취미 생활인 목공과 낚시에 푹 빠져 지낼 예정이므로 시간적 여유가 많지는 않습니다만 여유 시간들을 보다 알차게 보내고 또 뜻깊은 일을 하고 싶은 마음에 직접적으로 자동매매 시뮬레이터 또는 실거래 자동매매 프로그램을 개발하기 어려운 분들을 위해 도움을 드리고자 합니다.

 

 

아주 간단한것은 금방 진행이 될 수도 있고 무상(FREE)으로 개발 해드리겠습니다.

 

 

필요한 시뮬레이터나 자동매매 프로그램이 있다면 우선 기본적인 상담을 위해 연락처(휴대전화 또는 이메일)를 비밀댓글로 남겨 주시면 연락드리겠습니다.

 

 

감사합니다.

 

 

덧1)

시세데이터, 개발의뢰 카테고리 관련 안내
http://systemtraders.tistory.com/notice/989

 

 

Posted by 투자의神
프로그래밍 with C#2017. 10. 19. 19:08

 

 

때는 11년전...

 

 

프로그래밍에 있어서 공백기가 있던 시기였습니다.

 

 

아이디어와 시뮬레이션 결과 그리고 좋은 수익 모델까지 확보가 된 상태였습니다만,

직접 개발하기에는 개발면에서 신기술을 쫓아가지 못하는 상황이었고 맡기자니 비용을 감당하기 어려운 수준(억단위)이었기에 장고의 시간을 가지고 있었습니다.

 

 

그러다가 우연히 알게된 프리랜서 개발자에게 보다 짧은 기간(6개월짜리 프로젝트를 4개월)에,

억단위 프로젝트를 under 1억에 진행해준다기에 덜컥 맡기게 되었습니다.

 

 

그렇게 하게 된 이유가 무엇보다 실력이 있고 인성이 좋아 보였기 때문입니다.

 

 

시간이 흐르고 흘러,

프로젝트는 예상보다 충분하고도 충분한 시간과 비용이 더 들었으나 완성되었기에 이제 시장의 돈을 쓸어 담기만 하면 되는 수순만 남은 상태였는데요.

 

 

결과적으로 그렇게 되지 못했습니다.

 

 

이유는,

제 유일의 수익 로직을 프리랜서 개발자가 제 3자 다수에게 판매하여 부당 이득을 취하였고 그로 인해 제 수익 로직은

너덜너덜 누더기 옷보다도 못한 신세가 되었기 때문입니다.

 

 

그 뒤로 다시 손매매로 몇년의 시간을 보내다가 직접 프로그램 개발에 다시 참여하게 된 것입니다.

 

 

세상에 싸고 좋은 것은 없습니다.

그리고 아무도 믿지 마시고요.

 

 

무언가를 얻고자 한다면 충분한 댓가를 치뤄야 한다는 점 또한 꼭 기억 하시기 바랍니다.

 

 

감사합니다.

 

 

 

Posted by 투자의神