Skip to content

[Feat] 목표 기반 ETF 추천 로직 구현 #16

@slay1379

Description

@slay1379

어떤 기능인가요?

사용자가 목표 금액, 투자 기간, 월 납입액, 위험 성향을 입력하면 과거 5년 데이터를 기반으로 목표 달성 확률이 높은 ETF를 추천하는 기능을 구현했습니다.

작업 상세 내용

  • Goal Planner API 엔드포인트 구현 (POST /api/goal-planner)
  • 5년 제한 시뮬레이션 엔진 구현 (FiveYearEngine)
  • 히트율 계산 로직 구현 (목표 달성 확률)
  • 위험도 매칭 점수 계산 로직 구현
  • 목표 점수 계산 로직 구현 (히트율 70% + 위험도 매칭 30%)
  • 필요 CAGR 계산 로직 구현
  • 신뢰도 레벨 계산 로직 구현 (high/medium/low)
  • Strategy 패턴 적용으로 향후 확장 가능한 구조 설계
  • 입력 검증 로직 구현 (1~5년 제한, 금액 검증 등)
  • 성능 최적화 (상위 100개 ETF만 처리, 윈도우 개수 제한)

참고할만한 자료(선택)

  • 데이터베이스: prices_daily 테이블의 5년 가격 데이터 활용
  • 계산 공식:
    • 히트율 = (목표 달성한 윈도우 수 / 전체 윈도우 수) × 100
    • 위험도 매칭 = 가우시안 함수 기반 변동성 매칭
    • 목표 점수 = 히트율 × 0.7 + 위험도 매칭 × 0.3
  • API 응답 구조:
    {
      "recommendations": [
        {
          "etf_code": "0023A0",
          "etf_name": "SOL 미국양자컴퓨팅TOP10",
          "hit_rate": 100,
          "risk_match": 95.87,
          "goal_score": 98.76
        }
      ],
      "meta": {
        "reliability": "low",
        "requiredCAGR": 0,
        "windowCount": 1
      }
    }

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions