종목 추천 PRD

배경 (Background)

후보군(관심목록 + 큐레이션 대형주)을 시그널로 스코어링·랭킹한 추천 목록과 기술적 지지/되돌림 기반 진입가·시점을 제시한다. 더불어 백테스트로 시그널의 실측 한계를 정직하게 노출한다. 여전히 참고용이다.

요구사항

ID요구사항우선순위
R-01후보군(watchlist ∪ CURATED_SYMBOLS) 자동 스코어링·랭킹 추천 목록 제공높음
R-02지지/되돌림 기반 진입가·시점 제안높음
R-03워크포워드 백테스트로 시그널 edge 검증·노출높음
R-04추천 진입가로 알림 1클릭 등록중간
R-05watchlist 조회 실패 시 큐레이션만으로 graceful 동작높음

기대 효과

  • 종목 발굴 단계부터 보조 — 후보 선정·정렬을 자동화.
  • 진입가·시점 제안으로 추격매수 위험 완화.
  • 백테스트로 “참고용”의 한계를 데이터로 투명하게 제시.

경쟁사·동일 제품군 비교

토스증권 발견 탭 / 테마

  • 종목 발굴·테마 큐레이션 제공. 단 진입가·시점 제안·백테스트 미제공, 내부 로직 불투명.

알파스퀘어 / 퀀트킹 (국내 퀀트)

  • 정교한 팩터·백테스트. 단 학습 곡선·유료, 뉴스 감성 결합 약함.

Finviz / Seeking Alpha (US)

  • 스크리너·랭킹·분석. 단 US 중심, 한국 종목·한국어 감성·진입 타이밍 제안 부재.

비교 요약표

항목본 도구토스 발견알파스퀘어·퀀트킹Finviz·SA
감성+추세 종합 랭킹
진입가·시점 제안
백테스트(룩어헤드 배제)
한계 투명 공개
비용무료(자체)무료유료무료/유료

세부 정책

정책 1: 종목 추천 랭킹

유저 스토리

  • 사용자로서, 지금 볼 만한 종목을 점수순으로 추천받고 싶다.

UI / UX 주요 작업 포인트

  • 추천 탭: 카드 리스트(종목·종합 점수·라벨·진입가·시점·근거).

상세 정책

  • GET /recommendations?limit=. 후보 = watchlist(BE 조회) ∪ CURATED_SYMBOLS(KR 8 + US 4).
  • ThreadPoolExecutor(max_workers=5) 병렬 스코어링, 실패 종목 제외(부분 실패 허용).
  • 종합 점수 > 0.15 필터 → 내림차순 랭킹 → 상위 limit.
  • BE watchlist 조회 실패(timeout 5s) 시 큐레이션만으로 graceful.

마이그레이션 조건 (선택)

  • 해당 없음 (라우터 비활성으로 롤백).

정책 2: 진입가·시점 제안

유저 스토리

  • 사용자로서, 추천 종목을 언제 얼마에 들어갈지 가이드를 받고 싶다.

UI / UX 주요 작업 포인트

  • 카드에 진입가·시점·근거 텍스트, “이 진입가로 알림 등록” 버튼.

상세 정책

  • current ≤ MA20 → 진입가=현재가, “즉시 분할 매수 고려”.
  • current > MA20 → 진입가=max(MA20, 최근 저점), “눌림목(되돌림) 대기”.
  • 강세(종합 ≥ 0.5) → timing 접두사 “강세 —”.

마이그레이션 조건 (선택)

  • 해당 없음.

정책 3: 백테스트

유저 스토리

  • 사용자로서, 이 시그널이 과거에 실제로 통했는지 수치로 확인하고 싶다.

UI / UX 주요 작업 포인트

  • 백테스트 요약: overall/signal 승률·평균수익·edge, 감성 미포함 안내.

상세 정책

  • GET /backtest/{symbol}?horizon=5&lookback=120. 워크포워드(warmup 20, 시점 t까지 종가만 → 룩어헤드 배제).
  • edge = signal_avg_return − overall_avg_return.
  • 뉴스 감성 미포함(과거 헤드라인 시계열 복원 불가) — 기술 모멘텀만 검증임을 note에 명시. 실측 edge가 작다는 한계 노출.

마이그레이션 조건 (선택)

  • 해당 없음.

정책 4: 추천 → 알림 연계

유저 스토리

  • 사용자로서, 추천 진입가를 바로 목표가 알림으로 걸고 싶다.

UI / UX 주요 작업 포인트

  • 추천 카드 버튼 → 진입가 자동 채움(targetPrice=entry, direction=BELOW, note=“추천 진입가”).

상세 정책

  • 신규 BE 없이 POST /api/v1/alerts 재사용. 추천·알림 결합은 FE에서만 발생.

마이그레이션 조건 (선택)

  • 해당 없음.

사용자 시나리오

  1. 추천 탐색 → 알림 등록: 사용자가 추천 탭을 열면 watchlist + 큐레이션 후보가 자동 스코어링돼 카드 목록으로 표시된다. 관심 종목 카드에서 “이 진입가로 알림 등록” 버튼을 누르면 진입가(entry_price)가 자동 입력된 알림이 즉시 등록된다.
  2. 백테스트 확인: 추천 카드에서 백테스트 요약을 확인해 signal 승률·edge를 보고, 감성 미포함 안내를 통해 시그널의 실측 한계를 인지한 뒤 투자 판단을 내린다.

범위 외

  • 실제 주문·체결 연동.
  • 과거 뉴스 감성 백테스트(데이터 복원 불가).

관련 문서