05. 종목은 어떻게 고르는가 — 큐레이팅 시스템

종목은 어떻게 고르는가 — 큐레이팅 시스템

들어가며

1부에서 나는 ETF로 코어를 짰다. 분산되고, 자동으로 굴러가고, 마음 편한 코어. 그런데 사람 욕심이 참 무섭다. 코어가 안정되자마자 나는 개별 종목에 손을 뻗고 싶어졌다. 삼성전자, 엔비디아, 내가 직접 고른 우량주를 담아보고 싶었다.

문제는, 개별 종목 투자가 차원이 다르게 어렵다는 것이었다. 차트만 보고 사면 도박이 되고, 재무제표를 일일이 읽으려면 시간이 무한정 들었다. 한국 코스피와 미국 S&P500을 합치면 수백 개 종목인데, 퇴근하고 이걸 매일 분석하는 건 애초에 불가능했다.

그래서 나는 코인 봇을 만들던 그 손으로, 이번엔 다른 기계를 만들기로 했다. 종목 큐레이팅 시스템 — 좋은 기업을 미리 선별해두고, 좋은 타이밍이 올 때 나를 불러주는 소프트웨어. 이 글에서는 그 핵심 철학과 판단 로직을 다룬다. (코드와 LLM 에이전트 구조는 다음 두 편에서.)


1. 핵심 철학: 차트가 아니라 기업을 먼저 본다

내가 개인 투자자로서 가장 크게 실패했던 패턴은, 순서가 거꾸로였다는 것이다. 차트가 멋있어 보여서 사고, 나중에 그 회사가 뭐 하는 곳인지 알아봤다. 부끄럽지만 사실이다.

그래서 시스템만큼은 그 반대로 설계했다.

차트를 보고 매수하는 것이 아니라, 좋은 기업을 먼저 선별해두고 진입 타이밍이 올 때까지 기다린다.

이 철학을 나는 두 단계로 분리했다.

  • 1단계: 기업 선별 (Fundamental) — "이 회사가 좋은가?" → 재무제표·가치평가·뉴스 → 관심 종목 풀(Pool)
  • 2단계: 진입 타이밍 (Technical) — "지금 사도 되는가?" → 이동평균선 정배열 신호 → 매수 알림

좋은 기업이라도 아무 때나 사면 안 되고, 타이밍이 좋아도 나쁜 기업이면 안 된다. 두 관문을 모두 통과한 종목만 매수 후보가 된다. 이 분리가 시스템 전체 설계의 골격이 됐다.


2. 1단계 — 기업 선별 (Fundamental)

2.1 첫 번째 체: 시가총액

가장 먼저 거르는 기준으로 나는 시가총액을 골랐다.

조건 기준 이유
최소 시가총액 한국 10조 원 / 미국 $10B 이상 소형주는 이평선 매매가 안 통함

왜 작은 회사를 거를까? 시가총액이 작은 기업은 세력·테마·루머에 의한 급등락이 빈번해서 기술적 분석의 신뢰도가 무너진다. 변동성이 큰 자산일수록 추세 신호가 거짓을 더 자주 뱉는다는 걸, 나는 비싸게 배웠다. 반면 대형주는 시장 참여자가 많아 가격이 합리적으로 형성되고, 그래서 이동평균선 같은 추세 추종 전략이 효과적으로 작동한다.

2.2 두 번째 체: 가치평가 지표

대형주 중에서, 이번엔 "싸고 좋은가"를 본다.

지표 의미 좋은 신호
PER 주가 ÷ 주당순이익 업종 평균보다 낮으면 저평가
PBR 주가 ÷ 주당순자산 1 이하면 자산가치보다 주가가 쌈
PEG PER ÷ 이익성장률 0에 가까울수록 우량 (저PER+고성장)
ROE 순이익 ÷ 자기자본 높을수록 자본 효율이 좋음

이 중 내가 가장 신뢰하게 된 단일 지표는 PEG다. PER만 보면 "성장하는 회사는 원래 비싸다"는 걸 놓치는데, PEG는 성장률로 나눠주기 때문에 성장 대비 적정한 가격인지를 본다. 시스템에 이 컷오프를 넣고 나서 후보의 질이 눈에 띄게 좋아졌다.

PEG 구간 평가 대응
PEG < 0.5 성장 대비 매우 저평가 적극 관심
PEG 0.5~1 적정 수준 관심 종목 편입
PEG 1~2 다소 고평가 다른 지표와 종합 판단
PEG > 2 성장 대비 고평가 신규 편입 지양

2.3 진짜 분석: 5대 재무제표 크로스체크

PER·PEG 같은 지표는 사실 재무제표에서 파생된 가공품이라는 걸, 시스템을 만들며 절감했다. 더 깊이 보려면 원본인 5대 재무제표를 직접 읽어야 했다.

재무제표 핵심 질문 본다
재무상태표 (B/S) "뭘 갖고 있고 빚은 얼마?" 부채비율, 유동비율
포괄손익계산서 (I/S) "얼마나 버나?" 매출·영업이익 성장 추세
현금흐름표 (C/F) "실제 현금이 도나?" 영업현금흐름
자본변동표 "주주 몫이 느나?" 배당·자사주
결손금처리계산서 "적자면 어떻게 처리?" 위험 신호

여기서 내가 시스템의 가장 중요한 한 수라고 생각하는 게 나온다. 손익계산서와 현금흐름표의 크로스체크다.

  • ⚠ 위험 신호 — 손익계산서 "이익 발생 ✅" ↕ 불일치 ↕ 현금흐름표 "영업현금흐름 마이너스 ❌" → 매출채권만 쌓이고 진짜 현금은 안 들어옴 → 분식 또는 회수 리스크 의심
  • ✅ 건전한 기업 — 손익계산서 "이익 발생" ↕ 일치 ↕ 현금흐름표 "영업현금흐름 플러스" → 장부상 이익이 실제 현금으로 확인됨

"이익이 났다"는 손익계산서의 말을, "그 이익이 진짜 현금이냐"고 현금흐름표에 되묻는 것이다. 둘이 어긋나면 위험 신호. 이 한 가지 교차 검증만으로도 부실 기업을 상당수 걸러낸다는 걸, 실제 데이터를 돌려보며 확인했다.


3. 2단계 — 진입 타이밍 (Technical, SMA 정배열)

좋은 기업을 골라 "관심 종목 풀"에 넣었다면, 이제 언제 살지를 기다린다. 시스템은 단순이동평균선(SMA) 세 개를 쓴다. 코인 봇에서 쓰던 LSTM 같은 복잡한 모델 대신, 주식 추세에는 단순하고 검증된 SMA가 더 잘 맞았다.

이동평균선 기간 의미
SMA 5 5일(1주) 단기 추세
SMA 20 20일(1개월) 중기 추세
SMA 60 60일(3개월) 장기 추세

매수 신호: 정배열

정배열 조건: SMA 5 > SMA 20 > SMA 60 (위에서부터 SMA 5 → SMA 20 → SMA 60 순으로 모두 우상향)

세 선이 위에서부터 5 → 20 → 60 순으로 정렬되면 정배열이다. 단기·중기·장기가 모두 상승 추세라는 뜻이고, 이때가 매수 진입 타이밍이다.

매도 신호: SMA 5 이탈

매도 조건: SMA 5 < SMA 20 또는 SMA 5 < SMA 60 (단기선 SMA 5가 SMA 20·SMA 60 아래로 이탈)

단기선이 중·장기선 아래로 떨어지면 상승 모멘텀이 꺾인 것이다. 매도 판단은 성향에 따라 조절하게 만들었다.

성향 매도 기준
공격적 SMA 5 < SMA 20 즉시 매도 (손실 최소화 우선)
보통 SMA 5 < SMA 60 시 매도
보수적 SMA 20 < SMA 60 시 매도 (데드크로스 확인 후)

함정: 박스권

박스권 (횡보): 가격이 좁은 범위에서 오르내리며(↗↘↗↘) 이평선이 수렴해 거짓 신호가 빈발한다.

주가가 좁은 범위에서 오르내리는 박스권에서는 이동평균선이 뒤엉켜 거짓 신호(whipsaw) 가 쏟아진다. 이 구간에서는 매매를 자제하고, 박스 상단을 돌파하며 정배열이 형성될 때 진입한다. 시스템도 박스권 여부를 별도로 판별해 신호를 거르게 했다. 이걸 안 넣었을 때 가짜 신호에 휘둘리던 걸 보고 추가한 장치다.


4. 분산이라는 안전벨트 — 포트폴리오 리스크 관리

좋은 기업을 좋은 타이밍에 샀다 해도, 한 종목에 몰빵하면 그 종목의 악재 하나로 포트폴리오 전체가 무너진다. 이건 한 번 크게 데여보면 평생 잊지 못하는 교훈이라, 시스템에 비중 상한을 아예 강제로 박았다.

규칙 기준
종목당 최대 비중 총자산의 10%
절대 초과 금지선 총자산의 20%

이상적 구성:

항목 비중
종목 A 10%
종목 B 10%
종목 C 10%
종목 D 10%
종목 E 10%
현금 나머지
  • 최소 5~10개 종목 이상으로 분산
  • 업종도 분산 (IT·금융·바이오 등 한쪽 편중 방지)
  • 현금 비중을 항상 확보 — 추가 매수 기회(폭락장)에 쓸 실탄

1편의 "감정을 시스템으로 대체한다"가 여기서도 작동한다. "이 종목은 확신하니까 30% 넣자" 같은 감정적 판단을, 코드가 10% 선에서 기계적으로 막는다. 나 자신을 못 믿어서, 나를 막는 장치를 코드에 넣은 셈이다.


5. 매매 체크리스트 — 시스템이 자동으로 검사하는 것

지금까지의 모든 판단을, 시스템은 종목마다 이 체크리스트로 자동 검사한다. 내가 사람으로서 늘 빠뜨리던 항목들을, 기계는 한 번도 빠뜨리지 않는다.

  • 1. 시가총액 충족? (KR 10조 / US $10B 이상)

  • 2. PEG ≤ 1 인가? (가급적 0.5 이하)

  • 3. 손익 ↔ 현금흐름 일치? (5대 재무제표 크로스체크)

  • 4. 매출·영업이익 성장 추세? (최근 3~5년)

  • 5. 치명적 악재 없는가? (뉴스·공시 분석)

  • 6. SMA 5 > SMA 20 > SMA 60 정배열?

  • 7. 매수 후 비중 10% 이내?

  • 8. 박스권이 아닌 추세 구간?

  • 모두 충족 시 → 매수 진입

  • SMA 5가 20/60 아래로 이탈 시 → 매도 검토

그런데 만들면서 벽에 부딪혔다. 이 검사를 수백 개 종목에 대해 매일 해야 한다는 것. 1·2·6·7·8번은 규칙 기반이라 코드로 계산하면 됐다. 하지만 3번(재무제표 해석)과 5번(뉴스 판단)은 단순 계산으로 안 됐다 — 읽고 이해하고 판단해야 했다.

바로 여기에서 내가 코인 때는 쓸 수 없었던 새 무기가 등장한다. LLM이다. 다음 편에서는, 이 "읽고 판단하는" 작업을 어떻게 여러 LLM 에이전트의 협업으로 자동화했는지 — 투자 회사의 팀 구조를 코드로 복제한 멀티 에이전트 시스템을 해부한다.


정리

  • 철학: 차트가 아니라 기업을 먼저 본다 (선별 → 타이밍)
  • 1단계 선별: 시총 → 가치평가(PEG) → 5대 재무제표 크로스체크
  • 핵심 한 수: 손익 ↔ 현금흐름 교차 검증으로 부실 감지
  • 2단계 타이밍: SMA 5>20>60 정배열 매수, 이탈 시 매도
  • 박스권에서는 매매 자제 (거짓 신호)
  • 분산: 종목당 10% 상한 + 현금 확보
  • 규칙은 코드로, 판단(재무·뉴스)은 LLM으로 → 다음 편