AI 주식·시장 분석 자동화 구성하기
목표를 정확히 잡는 게 절반입니다. 만들 것은 "매일 아침 시장을 정리해 주는 분석 비서"이지, 돈을 대신 굴리는 기계가 아닙니다.
- 이 문서는 소프트웨어 구성 교육 자료입니다. 투자 자문이 아니며, 특정 종목·매매 시점을 추천하지 않습니다.
- 자동 주문 실행(자동 매매)은 다루지 않습니다. 매수·매도 결정과 실행은 항상 사람이 합니다.
- AI는 사실을 지어낼 수 있습니다(환각). 수치는 반드시 API 원본 데이터에서 오게 하고, AI에게는 해석만 맡기세요.
전체 그림 — 5단계 파이프라인
① 데이터 수집 → ② 지표 계산 → ③ AI 해석 → ④ 리포트 생성 → ⑤ 사람 확인
핵심 원칙: 숫자는 코드가, 해석은 AI가, 결정은 사람이. 각 단계는 실패해도 다음 실행에서 복구되도록 독립적으로 만듭니다.
① 데이터 수집 — 공식·1차 출처에서
유료 단말기 없이도 시작할 수 있습니다. 무료 축: yfinance(파이썬 라이브러리, 주가·지수·환율), 한국 시장은 KRX 정보데이터시스템·DART 전자공시(공식 API), 거시 지표는 FRED(미 연준 데이터, 무료 API). 수집 스크립트는 "원본 JSON을 날짜별 파일로 저장"까지만 담당하게 하세요 — 수집과 분석을 분리하면 장애 원인을 바로 찾을 수 있습니다.
② 지표 계산 — AI가 아니라 코드로
이동평균(MA20/60), 등락률, 거래량 변화, 52주 고점 대비 위치 같은 지표는 결정론적 코드로 계산합니다.
AI에게 "이 주식 20일 이동평균 구해줘"라고 시키는 것이 대표적 안티패턴입니다 — 느리고, 비싸고, 틀립니다.
계산 결과는 signal 필드(예: "MA20 상회", "거래량 급증")로 구조화해 두면 다음 단계가 깨끗해집니다.
③ AI 해석 — 구조화된 입력, 제한된 역할
AI에게 주는 것: 계산된 지표 JSON + 오늘의 주요 뉴스 헤드라인. AI에게 시키는 것:
- "강세/약세 신호가 몇 개 그룹에서 나타나는지 요약" — 집계·요약
- "어제 대비 달라진 점 3가지" — 변화 감지
- "이 지표 조합이 일반적으로 어떻게 해석되는지 교육적 설명" — 맥락 제공
금지: "살까요?", "목표가는?", "이 종목 어때요?" — 개인화 자문 요청은 파이프라인에 넣지 않습니다.
④ 리포트 생성 — 매일 같은 형식으로
마크다운 한 장(시장 요약 → 그룹별 지표 표 → 변화점 → 뉴스 3줄)으로 고정하세요. 형식이 고정돼야 "어제와 뭐가 다른가"가 눈에 들어오고, AI 출력 품질 저하도 바로 알아챕니다. OIYO는 이 방식으로 평일 아침 시장 리포트를 자동 생성해 대시보드와 알림으로 받습니다.
⑤ 사람 확인 — 유일하게 자동화하지 않는 단계
리포트는 참고 자료입니다. 결정(매수·매도·비중 조절)은 리포트를 읽은 사람이 자기 기준으로 합니다. 이 단계를 자동화하고 싶어지는 순간이 오는데, 그게 이 시스템의 사람 게이트입니다 — 넘지 마세요.
실제 크론 구성 예시 (OIYO 운영 중)
# 평일 아침 파이프라인 (로컬 맥 미니에서 실행) 07:00 stock_analysis.py # ①② 수집+지표 계산 → market-latest.json 07:30 watcher.py # 이상 신호 감시 (급락·데이터 누락 알림) 08:00 daily_briefing.mjs # ③④ AI 해석 + 리포트 생성 08:10 member_notify.mjs # 리포트 전달 (⑤ 사람이 읽음)
포인트: 각 단계가 별도 스크립트 = 하나가 죽어도 나머지는 돕니다. 실패는 조용히 넘기지 말고 알림으로.
시작 순서 (첫 주말 프로젝트)
- yfinance로 관심 지수·종목 10개의 종가·거래량을 JSON으로 저장하는 스크립트 (1시간)
- MA20·등락률 계산을 붙이고 signal 필드 생성 (1시간)
- Claude/ChatGPT API에 JSON을 주고 "3줄 요약 + 변화점" 프롬프트 고정 (1시간)
- cron(맥/리눅스) 또는 작업 스케줄러(윈도우)에 아침 실행 등록 (30분)
- 일주일 돌려보고 형식·프롬프트 다듬기