BuyHigh - 무료 주식 분석 플랫폼(2)
무료 주식 AI 분석 플랫폼 | BuyHigh
코스피/코스닥 차트·밸류에이션 무료 AI 주식 분석 리포트를 제공하는 BuyHigh 플랫폼
buyhigh.cc
지난글에서, 수정한 내용을 몽땅 종합해서 2편을 올리겠다고 했었다.
그동안 수정/추가된 기능도 많고, 한번 정리할 타이밍이 된 것 같아서 2편을 작성한다.
미국장 추가
기존에는 코스피/코스닥만을 대상으로 했는데, 미국장을 추가했다.
주가 정보는 국장과 마찬가지로 한국투자증권 API를 사용하고, 이외 다른 지표들도 미국장 특성에 맞게 데이터 소스를 선별했다.
거래소는 나스닥/뉴욕거래소/아멕스 를 대상으로 한다.
미국장을 추가함에 따라 메인 UI를 대폭 수정했다.
처음에는 기존의 국장 버전을 그대로 유지하고 메인 헤더에 토글을 넣어 US 버전을 따로 구축하려고 했으나, 눈에 잘 안보이기도 하고 사용성이 매우 떨어질 것 같아서 통합하는 방향으로 수정했다.
때문에 리팩토링 규모가 매우 컸다.
기존 국장 전용 포맷에 맞춰 정제하고 저장하던 내용들을 모두 미국장에 맞게 범용화된 포맷으로 재구성 해야했다. 특히 레디스에 이미 저장되어있던 데이터들까지 고려해야했기 때문에 머리가 지끈거렸다.
당장 미국장을 추가할 예정이 아니었더라도, 국장만을 대상으로 개발할 때 이를 모두 고려했어야 했는데..
종목 검색의 편의성
증권사 앱을 이용하다보면 미국장의 경우 검색하는 것이 힘든 경우가 있다.
예를들어 국장의 경우 그냥 "삼성" 정도만 검색해도 삼성전자, 삼성생명 등 쉽게 검색할 수가 있는 반면, 미장의 구글인 경우 티커가 GOOGL/GOOG 이고 종목명도 알파벳A, 알파벳C 등 검색하기가 매우 까다롭다.
실제로 증권사를 밝히지 않겠으나 오래된 증권사의 경우 구글로 검색해도 검색이 안되는 경우가 있다.
이를 타개하기 위해서 모든 미장 종목에는 검색 도우미를 적용했다.
예를 들어 구글로 검색해도 알파벳A, C 티커가 뜨고, 마소로 검색해도 마이크로소프트 티커가 뜨도록 했다.
이를 받아오는 데이터 소스가 있다면 동적으로 관리하고 불러오는 것이 이상적이지만, 나에게는 AI가 존재하기 때문에 쉽게 하드코딩으로 진행할 수 있었다. 다만, 추가를 위해선 서버를 재배포 해야하는 점..

수급 데이터
국내장 종목은 종목의 상방/하방 압력을 체크해볼 때 필요한 지표가 수급이다.
기존에는 이 수급체크를 위해 개인/외국인/기관의 일별 수급 및 공매도 데이터를 가지고오고 있었고, 후술하겠지만 지표 추가를 진행하며 프로그램/대차/신용 지표를 적용했다.
하지만 미국장의 경우 국장과 같은 개념의 수급을 적용할 수가 없기에 상방/하방 압력에 대한 지표를 어떤걸로 사용할까 고민하다가 다음 지표를 사용하기로 했다.
1. 상대강도
나스닥 또는 해당 종목이 속한 섹터/테마 대비 1년 간의 상대강도를 활용한다.
2. 옵션
미국장은 옵션시장이 활발하기 때문에 수급 지표로 충분히 활용가능하다고 판단했다.
옵션 데이터는 CBOE(시카고옵션거래소)에서 제공해주는 공개 데이터를 사용한다.
만기 45일 이내의 데이터만 취급하도록 설계했다. 너무 짧아도 문제고 길어도 문제여서 그냥 45일정도로.. 했다..
3. 52주 위치
사실 차트만으로도 알 수 있는 데이터지만 지표로써 명확하게 추가하는게 낫다고 생각했다.
공매도 데이터는 국장처럼 사용하면 될것 같아서 FINRA(금융산업규제기구)에서 공개하고 있는 데이터를 사용한다.

차트 분석 수정
기존의 차트 분석은 지표들의 내용을 그대로 정리/해석만 하는 성격이 강했다.
때문에 사용자들이 근본적으로 궁금해하는 내용, "그래서 어디가 저항이야?", "어느 시점에 매수하면 돼?" 등의 실질적 물음에 대답해주기 어려운 분석 결과였다.
따라서 분석의 내용을 보다 사용자 친화적으로 바꾸려 노력했다.
지표 추가 - 수급
수급 지표를 추가했다.
미국장의 경우 위에서 설명했고, 국내장의 경우 기존에 존재하지 않던 프로그램/대차/신용 데이터를 추가했다.
이 데이터는 한국투자증권 API를 사용해 가져온다.

분석 수정
분석의 결과도 더욱 고도화했다.
기존 단순 지표 해석을 넘어서서, 어디가 지지와 저항이고 어떤 액션을 취해야하며 그에 대한 근거 해석을 제시한다.

밸류에이션 분석 수정
차트분석에 이어, 밸류에이션 분석도 고도화를 진행했다.
마찬가지로 기존의 밸류에이션 분석 또한 지표들의 해석을 나열함에 그쳤기에 사용자들이 어떤점을 근본적으로 궁금해하는지에 대한 초점을 맞췄다.
여기에 내가 내린 결론은, "그래서 종합적으로 기업이 어떤 상태인가?", "그래서 적정 주가는 얼마인가?" 등 이었다.
지표 추가 - 예상 실적
예상 실적 지표를 추가했다.
적정 주가를 판단하기 위해 기업의 예상 실적을 가져오기로 결정했다.
국내장은 한투증권API를 통해 쉽게 가져올 수 있었는데 미국장이 문제였다.
우선 국내 증권사에서 API로 제공해주는 곳은 없었고, 대부분의 공식 해외 API들은 유료였다.
크롤링은 대부분의 빡빡한 규제 때문에 프로덕션 환경에서 안정적으로 유지하기에 부적합해보였다.
국내장에 비해 미국장은 기업의 예상실적 데이터를 더욱 귀하게? 여기는 느낌이랄까..
한참을 찾다가 Alpha Vantage라는 곳을 알아냈다.
API로 쉽게 호출이 가능하고, 이를 이용해 서비스를 운영해도 괜찮기에 이 API가 가장 적합해보였다.
하지만 무료로는 일 25회정도만 호출이 가능하다는 제약이 있어서 여러 이메일로 여러 key를 받아 우회하려 했는데 IP 제한이 걸려있는 것 같았다.
결국, 미국장은 분석의 지표로는 예상 실적을 사용하긴 하지만 프론트에는 보여주지 않기로 했다.
분석에만 사용하면 일 25회정도는 충분하다고 판단했고, 예상 실적은 자주 바뀌지 않는 데이터이기 때문에 충분한 기간을 두고 캐싱하는 전략을 취했다.
아마 캐싱 데이터가 충분해지면 프론트에서도 선택적으로 보여줄 수 있을 것 같은데, 이건 나중에 고려하겠다.
다시 돌아와서, 아무튼 국장은 한투증권 API를 사용한다. 하지만 여기서도 예상 실적을 제공해주지 않는 종목이 몇개가 있어서 적정주가를 판단하는 로직을 조금 복잡하게 수정했다.
해당 종목의 실적/예상실적(존재하면)/PER/EPS 등을 비롯해서 관련된 섹터/테마의 종목들의 정보까지 모두 종합하여 계산한다.
다만 이 로직을 사용하면 요즘 반도체 사이클에서 삼성전자와 SK하이닉스 같이 예상실적이 매우 크게 잡히는 경우에는 적정 주가가 터무니없이 높게 잡힌다거나, 기존 실적과 예상 실적이 마이너스인 경우에는 터무니없이 낮게 잡히는 등의 현상이 있었다.
이를 해결하기 위해 적절한 방어 수단도 넣어 분석을 진행하고 있다.

지표추가 - 공시
기타 공시 데이터를 추가했다.
기존에 가져오던 재무제표 뿐만 아니라 내부자거래 및 자사주매입 등의 주가의 가치에 영향을 줄 수 있는 공시 데이터를 추가해서, AI Agent에게 폭 넓은 해석의 여지를 준다.
국내장의 경우 기존 재무제표에 사용하던 OpenDart를 그대로 이용하고, 미국장의 경우에도 재무제표에 사용하는 SEC EDGAR 데이터를 사용한다.

분석 수정
분석의 결과도 더욱 고도화했다.
기존 단순 지표 해석을 넘어서서, 기업의 종합 평가와 적정주가 및 그에 대한 근거 해석을 제시한다.

기타 수정
지수와 환율을 볼 수 있는 페이지를 추가했고 메인페이지도 미국장 추가에 따라 UI를 수정했다.
기존 메인페이에는 분석 페이지를 들어갈 수 있는 카드형 위젯만 있었는데, 이를 삭제하고 메인 페이지에서부터 분석 카드를 바로 볼 수 있도록 수정했다.

여담
토스증권 OpenAPI
얼마전에 토스증권 OpenAPI가 등장했다.
기존에 사전신청을 했어서, 이를 미국장 개발에 사용하려고 했었는데 API 종류가 많지 않아서 + 일반 서비스에 사용할 수 없는 약관을 가지고 있어서 채택하지 않았다.
출시 초기여서 그런지 아직 많은 기능이 있는 것 같지는 않다.
최근에는 buylow라는 트레이딩 매매 프로그램을 개발하고 있는데, 여기에는 토스증권도 사용가능하도록 붙여놓긴 했다.
GitHub - JeongSeongMok/buylow: 한국 주식(KOSPI·KOSDAQ) 알고리즘 자동매매 전략을 코드 없이 구성·백테스
한국 주식(KOSPI·KOSDAQ) 알고리즘 자동매매 전략을 코드 없이 구성·백테스트·실거래하는 개인용 툴킷 (personal algorithmic trading toolkit for Korean equities). QuantConnect LEAN 엔진 기반으로 백테스트=라이브
github.com
이 BuyHigh 플랫폼에 한국투자증권 API를 붙이면서 가장 좋았던 점은 한투증권 공식 MCP Server를 제공해주는 것이다.
KIS Developers
한국투자증권 Open API 포탈
apiportal.koreainvestment.com
이 한투증권의 MCP Server를 편하게 사용했던 좋은 기억이 있어서 토스증권 OpenAPI를 연동할 때 찾아봤었는데 아직 제공해주지 않는 것 같았다.
그래서 내가 만들었다.
https://github.com/JeongSeongMok/tossinvest-openapi-mcp
GitHub - JeongSeongMok/tossinvest-openapi-mcp: 토스증권 Open API(Toss Securities Open API)를 AI 에이전트가 쉽게 탐
토스증권 Open API(Toss Securities Open API)를 AI 에이전트가 쉽게 탐색·연동하도록 돕는 MCP 서버 (stdio). Claude·Cursor·Codex 지원. - JeongSeongMok/tossinvest-openapi-mcp
github.com
실제로 buylow 프로그램 제작할 때 이 MCP Server 사용해서 토스증권 연동 개발을 딸깍으로 끝냈다.
쉽게 설치 가능하도록 NPM 레포지토리 에도 배포해놨고, awesome-mcp-servers라는 mcp server 모음 오픈소스에도 적용해놨다. 생각보다 절차가 까다로웠다.
https://github.com/punkpeye/awesome-mcp-servers/pull/7377
Add tossinvest-openapi-mcp (Toss Securities Open API) to Finance & Fintech by JeongSeongMok · Pull Request #7377 · punkpeye/aw
Adds tossinvest-openapi-mcp to the Finance & Fintech category. An MCP server (stdio) that helps developers and AI agents explore and integrate the Toss Securities (토스증권) Open API — browse endpo...
github.com
구글 애널리틱스
GA를 연동했다.
플랫폼을 만들어놓긴 했는데, 실제로 어느정도의 유입이 발생하는지 궁금해졌다.
클라우드 플레어 콘솔은 너무 노이즈한 데이터가 많아보여서 적절한 분석 플랫폼을 찾다가 GA를 연동했다.
아직 연동한지는 2주정도 밖에 안됐는데, 보고있으면 괜히 뿌듯하고 재밌다.
아직은 뭐.. 사용자가 있다고 하기에도 부끄러운 숫자이지만 점점 더 늘어나지 않을까 생각한다.
사실 플랫폼을 제작한 이유가 나와 가족/친지 등에게 제공할 목적으로 만든거고, 이를 통해 돈을 벌려는 것도 아니기 때문에 사용자가 적거나 많거나 크게 상관은 없긴 하지만.. 높은 숫자가 찍혀있으면 괜히 기분이 좋긴 할 것 같다.
해외에서의 트래픽도 잡히는데, 이런 노이즈한 데이터를 필터링해서 보기 위해 GA를 연동한건데 모두 필터링 할수는 없나보다.

이후 피쳐
대부분의 추가피쳐들은 개발이 끝났다.
생각만 하고 있는 아이템들은 좀 있는데, 급하지도 않고 작업량도 매우 커서 일단 설계부터 하고.. 시간이 나면 진행하려고 한다.
당분간은 buylow 매매 프로그램 개발에 집중하려고 한다.
코인 시장이나 야간 선물 데이터 등 국내/미국장에 영향을 줄수 있는 데이터를 추가할까 고민하고 있기도 하다.
아무튼 나중에 또 고도화 작업이 진행되면 수정사항을 몽땅 3편에 올리도록 하겠다.