본문 바로가기

만들기

공짜 데이터 다섯 곳으로 실적 요약 메일까지|맥미니 한 대로 만든 주식 앱 5편

📌 AI랑 같이 만든 미국주식 현황판 '월가 작전실' 개발기 마지막 5편이에요. 실적 발표가 나오면 AI가 보고서를 써서 메일로 보내 주는 기능, 매주 월요일 신규 후보를 골라 주는 스크리너, 그리고 이 모든 걸 돌리는 무료 데이터 열세 곳을 정리했어요. 투자 권유가 아닙니다. 결론만 보실 분은 맨 아래 최종 요약으로 가세요.

지난 4편에서는 제 VIX 알림 규칙을 36년 치 과거에 돌려 봤다가 그냥 들고 있기한테 진 이야기를 했어요.

📎 궁금하신 분들은 지난 「내 VIX 매매 규칙, 36년 돌려 보니 그냥 들고 있기한테 졌다」 포스팅을 참고하세요 → 글 보러 가기

이번 편은 화면보다 뒤에서 혼자 도는 일 이야기예요. 제가 자는 동안 실적이 나오면 읽고, 요약하고, 아침에 메일함에 넣어 두는 것까지요.

1. 실적이 나오면 AI가 보고서를 쓴다

미국 회사는 실적을 발표하면 SEC에 공시(8-K, 외국 기업은 6-K)를 올려요. 앱이 하루 두 번, 아침 8시 30분과 밤 10시 30분에 이 공시를 확인하고, 새 실적이 있으면 Claude Sonnet에게 원문을 읽혀 보고서를 쓰게 해요. 대상은 제가 지켜보는 종목과, 요즘 뉴스에 자주 나오거나 시가총액이 큰 회사들이에요.

실적 보고서 예시(AMD 3분기). 추정치 대비 상회·하회를 막대로 보여 줘요

보고서 맨 위엔 한 줄 요약이 있고, 그 아래 EPS와 매출이 발표 전 애널리스트 추정치보다 높았는지 낮았는지가 나와요. 기준이 다르거나 확인이 안 되면 억지로 판정하지 않고 "확인 불가"라고 적어요.

  • 💰 비용: 한 건 실측이 입력 22,411토큰, 출력 11,977토큰, API 정가로 약 0.12달러였어요. 실적 시즌에 50건 넘게 나와도 몇 달러 수준이에요.
  • 🔁 실패하면: 로컬 모델로 만든 임시본을 먼저 보내고, 7일 안에 Claude로 최대 세 번 다시 써요.
  • 📊 지금까지: 10월 15일부터 11월 6일까지 정식 보고서 45건, 임시본 7건이 나왔어요.

숫자 하나 틀렸다고 통째로 버리던 AI

11월 4일, Claude 보고서 대신 임시본이 와 있는 걸 보고 이렇게 물었죠.

💬 "애들 실적발표 보고서가 왜 클로드가 실패했지? 토큰량도 충분했을텐데?"

원인은 한도가 아니었어요. 앱은 AI가 쓴 숫자가 공시 원문에 있는지 하나하나 대조하는데, AI가 직접 계산한 비율 하나가 원문에 없다는 이유로 보고서 전체를 버리고 있었어요. 지금은 마지막 시도에서 그 문장만 빼고, 빠진 내용은 '한계' 칸에 적어요.

나: 보고서 어디 갔어! / 검증기: 비율 하나가 원문에 없었음

추정치 대비 '상회·하회'를 가르는 기준도 바꿨어요. 언론과 집계 회사들이 어떤 기준으로 판정하는지 조사해서 그대로 따르게 했더니, 지난 보고서 38건을 다시 계산했을 때 EPS 판정이 나온 건이 12건에서 35건으로 늘었어요. 그림으로 된 실적 슬라이드는 맥에 들어 있는 글자 인식(Vision OCR)으로 읽고 SEC 분기 보고서와 대조해요. 처음엔 숫자 한 자리를 빠뜨려서 그림을 두 배로 키워 읽게 고쳤어요.

2. 메일 한 통에 묶어서 받기

처음엔 보고서가 나올 때마다 따로 왔어요. 실적 시즌엔 하루에 몇 통씩이라 정신이 없더라고요. 그래서 한 번에 묶어서 메일로 보내고, 본문엔 회사별 요약을 짧게 써 달라고 했어요.

  • 📬 제목은 '[실적 보고서] 아침/저녁 N종목' 식이고, 본문엔 회사마다 2~3줄 요약, 보고서는 전부 첨부로 붙어요.
  • 🧾 같은 보고서를 두 번 보내지 않게 보낸 기록을 남겨요.
  • 📈 첫 묶음 메일이 10월 19일에 왔고, 11월 6일까지 23번 받았어요(한 번에 1~6종목).

한 번은 맥의 메일 앱이 응답하지 않아 "AppleEvent 시간이 초과되었습니다. (-1712)" 오류로 이틀 동안 10건이 안 나갔어요. 다행히 11월 3일 저녁 회차에 밀린 6종목이 한 통으로 묶여 자동으로 나갔어요.

3. 아침 뉴스는 세 줄 요약으로

종목 뉴스는 Finnhub에서 받아 종목마다 많아야 3건을 골라 한국어로 요약해요. 요약 모델을 고를 때 실제 뉴스 8건으로 세 모델을 비교해 봤어요.

모델 결과
Claude Sonnet 가장 정확, 8건에 0.043달러, 8.4초
Claude Haiku 0.090달러, 22.5초, 숫자 오류(1,500억을 150억으로)
Gemma(로컬) 무료, 3.3초, 중요도를 부풀림

싼 모델이 더 비싸게 나온 건 의외였어요. 그래서 Sonnet으로 정했고, 10월 5일부터 11월 8일까지 기사 22,985건을 읽었어요.

4. 매주 월요일, 신규 후보 고르기

S&P500과 나스닥100 종목, 그리고 제 관심 목록을 합쳐 매주 월요일에 한 번 걸러요. 조건은 셋 중 하나만 맞으면 통과예요. 매출 증가(흑자이면서 매출이 1년 전 같은 분기보다 많음), 흑자 전환, 적자 축소.

주간 신규 후보 페이지 위쪽. 기준을 맨 위에 쉬운 말로 적어 뒀어요

통과한 회사끼리는 성장, 수익성 개선, 테마, 추세, 밸류에이션, 재무건전성 6개 항목으로 점수를 매겨요. 제가 수익성 개선 비중을 높여 둬서 그 항목이 38%로 제일 커요.

11월 9일 결과. 517곳 중 399곳 통과

솔직히 399곳 통과는 너무 많아요. 걸러 준다기보다 점수 순서로 줄 세워 주는 쪽에 가까워요. 그래도 판정이 안 되는 51곳은 이유(자료가 늦게 올라옴, 영업이익 항목 없음 등)를 따로 보여 줘서 어디가 비었는지는 알 수 있어요.

시가총액이 1000배? 주식 수가 처음부터 틀려 있었다

함정도 있었어요. SEC 자료에서 한 회사의 주식 수가 1000배로 잘못 들어 있어서, 그걸로 시가총액을 계산하면 순위가 엉망이 됐어요. 그래서 SEC 자료로 만든 시가총액으로는 순위를 매기지 않게 했어요. 최근 분기 자료가 늦게 올라오는 문제도 SEC의 다른 묶음 자료로 채워서 '자료 정체'가 66곳에서 29곳으로 줄었어요.

5. 이 모든 걸 돌리는 공짜 데이터 열세 곳

1편에선 주요 출처 다섯 곳만 적었는데, 실제로 코드에서 부르는 곳을 세어 보니 열세 곳이었어요. 전부 무료로 쓰고 있어요.

출처 가져오는 것 조건 고른 이유(기록된 것만)
FRED·ALFRED(미국 연준 데이터) VIX, 금리, 환율, 물가 같은 거시 지표 무료 키 ALFRED는 "그날 처음 발표된 값"을 줘서 백테스트가 미래를 엿보지 않게 해 줘요
SEC EDGAR(미국 공시) 공시 목록, 분기 재무, 실적 발표 원문 키 없음, 초당 10회 실적·IR 원본은 SEC 공시만 쓰기로 했어요
야후 파이낸스(비공식) 시세, 배당, 애널리스트 추정치, 외국 기업 분기 재무 공식 한도 없음 Alpha Vantage 무료판은 수정 주가를 안 줘서 시세는 이쪽으로
Finnhub 종목 뉴스, 종가 대조 무료 분당 60회 구글·야후 RSS는 비공식이라 빼고 뉴스는 이곳
Alpha Vantage 실적 발표 예정일, EPS 이력 무료 하루 25회  
GNews 비상장 회사 뉴스 무료 하루 100회 다른 뉴스 API 세 곳과 비교해 고름
위키피디아 지수 구성 종목 목록 무료  
NY Fed·미 재무부·연준 CSV 기준금리, 순유동성, 경기침체 확률 키 없음 공식·무료·쉬운 것부터
WSTS 세계 반도체 매출 무료(재배포 금지) 공식·무료·쉬운 것부터
CNN 공포·탐욕 지수(비공식)·Cboe 공포·탐욕 지수와 그 재료 하루 1번 일단 붙여 보고 차이가 없으면 나중에 직접 계산

NY Fed, 재무부, 연준 CSV를 따로 세고 CNN과 Cboe를 따로 세면 열세 곳이에요. 한국 데이터는 넣지 않았어요. 제가 "한국관련 데이터는 뺴도 될꺼같아"라고 해서 미국 데이터만 남겼어요.

관리 탭에 수집 주기도 적어 뒀어요. 평일 아침 8시 30분에 한 번 돌아요

⚠️ 비공식 출처가 둘 있어요: 야후 파이낸스와 CNN 공포·탐욕 지수는 공식 API가 아니라 언제든 막히거나 바뀔 수 있어요. 개인 용도로만 쓰고, 야후는 요청이 막히면 바로 멈추게 해 뒀어요.

⚠️ 약관을 꼭 확인하세요: SEC는 요청할 때 연락처를 밝히고 속도를 지켜야 하고, WSTS 자료는 다시 배포하면 안 돼요.

숫자로 본 한 달

항목 숫자
만든 기간 10월 4일 첫 커밋 ~ 11월 5일 마지막 커밋
작업 목록 284개 중 253개 완료
커밋 194개
자동 테스트 2,208개 통과
Claude 토큰(10/4~11/9) 약 38.5억 토큰, API 정가로 환산하면 약 1,436달러(구독이라 실제 낸 돈은 아님)

토큰의 대부분은 같은 내용을 다시 읽는 캐시 읽기예요. 그래도 정가로 치면 꽤 큰 숫자라, 구독 없이 API로만 했으면 엄두를 못 냈을 거예요.

⚠️ 주의사항

⚠️ AI 보고서는 틀릴 수 있어요: 원문 대조를 해도 해석까지 맞는다는 보장은 없어요. 중요한 숫자는 공시 원문을 직접 확인하세요.

⚠️ 스크리너 통과가 매수 추천이 아니에요: 실적 조건만 본 거라 주가가 비싼지, 앞으로 오를지는 따로 판단해야 해요.

⚠️ 투자 권유가 아니에요: 제가 공부하려고 만든 개인 도구 이야기예요.

마치며

다섯 편을 쓰고 나니 이 앱에서 제일 쓸모 있는 건 화려한 차트가 아니라 아침에 메일함에 와 있는 실적 요약이더라고요. 제가 자는 동안 공시를 읽고, 숫자를 대조하고, 틀린 문장은 빼고 보내 줘요. 한 달 전엔 생각도 못 하던 일을 퇴근 후 시간과 맥미니 한 대로 만들었다는 게 아직도 좀 신기해요.

월가 작전실 시리즈는 여기까지예요. 앞으로 기능이 크게 바뀌면 번외편으로 다시 들고 올게요.

최종 요약

✅ 결론만 보고 싶은 분

1. 실적 공시가 올라오면 하루 두 번 확인해 Claude Sonnet이 보고서를 쓰고, 묶어서 메일로 보내 줘요. 한 건에 약 0.12달러.

2. AI가 쓴 숫자는 원문과 대조하고, 안 맞는 문장만 빼요. 예전엔 숫자 하나 때문에 보고서 전체를 버렸어요.

3. 매주 월요일 517곳을 걸러 신규 후보를 점수 순으로 보여 줘요. 다만 통과가 너무 많아 줄 세우기에 가까워요.

4. 데이터는 전부 무료, 열세 곳. 그중 둘은 비공식이라 언제든 막힐 수 있어요.

짤 출처
· Woman Yelling at Cat: 방송 화면·고양이 사진 합성 밈(imgflip 템플릿)
· Always Has Been: imgflip 밈 템플릿

· · ·

무료 주식 데이터 쓰면서 막혔던 곳 있으면 같이 얘기해요. 저도 야후가 언제 막힐지 조마조마해요.

#월가작전실 #실적발표 #스크리너 #ClaudeCode #맥미니

퇴근 후 맥미니

애 둘 키우는 평범한 직장인 아빠. 퇴근 후 맥미니로 이것저것 만들다 막힌 걸 그대로 적습니다.

방명록에 질문 남기기