recipes.valuation.garpScreen Recipes Recipe unverified

GARP 스크리닝 (Lynch PEG 근사 + 부채 게이트)

Lynch GARP (Growth at Reasonable Price) — PEG = PER / 이익성장률 ≤ 1 을 dartlab 의 netProfitGrowth 로 근사하고 부채·매출성장 게이트 를 더해 성장+가치 결합 후보를 횡단으로 발굴하는 절차. 트리거 — 'GARP', 'PEG', 'Lynch 성장가치', 'PEG ≤ 1'.

이 스킬

GARP 스크리닝 (Lynch PEG 근사 + 부채 게이트)

Lynch GARP (Growth at Reasonable Price) — PEG = PER / 이익성장률 ≤ 1 을 dartlab 의 netProfitGrowth 로 근사하고 부채·매출성장 게이트 를 더해 성장+가치 결합 후보를 횡단으로 발굴하는 절차. 트리거 — 'GARP', 'PEG', 'Lynch 성장가치', 'PEG ≤ 1'.

Recipes unverified recipes.valuation.garpScreen

이어 가기

절차

실행 순서

  1. 1

    **PEG ratio** = PER / 이익성장률 (%). PEG ≤ 1 = 시장이 성장률을 미반영.

  2. 2

    핵심 발견: PER 단독 또는 성장률 단독 보다 두 결합이 sharpe ratio 우월.

  3. 3

    Lynch Magellan Fund (1977-1990): 연 29% 수익률 — 본 framework 의 실증.

  4. 4

    `stockCode`, `corpName`

  5. 5

    `finance.ratio.netProfitGrowth : float` — 순이익 YoY (%)

  6. 6

    `finance.ratio.revenueGrowth : float` — 매출 YoY (%)

  7. 7

    `finance.ratio.debtRatio : float` — 부채비율 (%)

  8. 8

    `per`, `pbr : float`

  9. 9

    `grade : str` — valuation grade

  10. 10

    `pegApprox : float` — PEG 근사 (낮을수록 저평가)

  11. 11

    **EPS 성장률 → netProfitGrowth 근사** — 자사주 매입 비중 큰 미국 기업에서 EPS 성장률 > netProfitGrowth (주식수 감소). 한국에서는 자사주 소각 부재로 두 값 거의 동일.

  12. 12

    **단일 연도 성장률 의존** — Lynch 원전은 5 년 평균 EPS 성장률 사용. 본 recipe 는 YoY 1 년 (분기/연간) 만. 5 년 일관성은 `recipes.screen.compounderCandidates` 로 보완.

예시

이런 질문이 들어오면 이 skill 을 쓴다

  • KR 시장 GARP 후보 횡단
  • PEG ≤ 1 + 부채 안정 + 성장
  • Lynch GARP 적용 KR
  • PEG + valuation band 결합

학술 근거

Peter Lynch, One Up On Wall Street (1989): GARP (Growth at Reasonable Price) — 가치투자 한정 저PER + 성장투자 한정 고성장 의 절충.

  • PEG ratio = PER / 이익성장률 (%). PEG ≤ 1 = 시장이 성장률을 미반영.
  • 핵심 발견: PER 단독 또는 성장률 단독 보다 두 결합이 sharpe ratio 우월.
  • Lynch Magellan Fund (1977-1990): 연 29% 수익률 — 본 framework 의 실증.

학술적 후속: Easton (2004) — implied growth rate 와 PER 결합. Bradshaw (2004) — 애널리스트 LTG (long-term growth) + PER 결합 모델 우월성.

dartlab 한계: EPS 직접 컬럼 X → netProfitGrowth 로 근사. EPS 성장률 ≈ 순이익 성장률 (자사주 매입·신주발행 비중 작은 시기) 이므로 합리적 근사.

공개 호출 방식

import dartlab
import polars as pl

# 1) 성장 게이트 — netProfitGrowth ≥ 15% + revenueGrowth ≥ 10% + debtRatio ≤ 100%
growth = dartlab.scan("screen", spec={"where": [
    {"field": "finance.ratio.netProfitGrowth", "op": ">=", "value": 15},
    {"field": "finance.ratio.revenueGrowth", "op": ">=", "value": 10},
    {"field": "finance.ratio.debtRatio", "op": "<=", "value": 100},
    {"field": "finance.ratio.netMargin", "op": ">", "value": 0},
]})

# 2) Valuation snapshot
value = dartlab.scan("valuation")

# 3) PEG 근사 = PER / netProfitGrowth, ≤ 1.5 추출
candidates = (
    growth.join(value.select(["stockCode", "per", "pbr", "grade"]), on="stockCode")
    .filter(pl.col("per") > 0)
    .with_columns(
        (pl.col("per") / pl.col("finance.ratio.netProfitGrowth")).alias("pegApprox")
    )
    .filter(pl.col("pegApprox") <= 1.5)
    .sort("pegApprox")
)

호출 동작

  1. scan("screen", spec=...) — 4 게이트 (이익성장 15%, 매출성장 10%, 부채 100%, 흑자) 동시 통과.
  2. scan("valuation") — KR snapshot.
  3. PEG 근사 = per / netProfitGrowth 계산.
  4. PEG ≤ 1.5 (Lynch 의 1.0 보다 약간 완화) 만 추출.
  5. PEG 오름차순 정렬 — 가장 저평가된 성장주 우선.

대표 반환 형태

candidates : pl.DataFrame — 컬럼:

  • stockCode, corpName
  • finance.ratio.netProfitGrowth : float — 순이익 YoY (%)
  • finance.ratio.revenueGrowth : float — 매출 YoY (%)
  • finance.ratio.debtRatio : float — 부채비율 (%)
  • per, pbr : float
  • grade : str — valuation grade
  • pegApprox : float — PEG 근사 (낮을수록 저평가)

한계

  • EPS 성장률 → netProfitGrowth 근사 — 자사주 매입 비중 큰 미국 기업에서 EPS 성장률 > netProfitGrowth (주식수 감소). 한국에서는 자사주 소각 부재로 두 값 거의 동일.
  • 단일 연도 성장률 의존 — Lynch 원전은 5 년 평균 EPS 성장률 사용. 본 recipe 는 YoY 1 년 (분기/연간) 만. 5 년 일관성은 recipes.screen.compounderCandidates 로 보완.
  • PEG 1.5 임계는 한국 KOSPI 분포 기반 — 미국은 1.0 표준. 시장별 조정 필요.
  • 성장률 음수 종목 자동 제외 — netProfitGrowth ≤ 0 이면 PEG 음수 → 무의미. 흑자 게이트 (netMargin > 0) 필수.
  • 고성장 + 고PER 조합도 통과 — 예: PER 50, growth 40 → PEG 1.25. 절대 PER 게이트 추가 권장 (PER ≤ 30).

한국 / 미국 시장 차이

  • 한국: 자사주 매입·소각 미발달로 EPS 성장률 ≈ netProfitGrowth. 단 한국 IPO·주식분할 빈도 낮아 분모 안정. KOSPI 성장주 풀 작아 임계 (15%/10%) 달성 종목 수 100~200 개.
  • 미국: 자사주 매입 비중 커 EPS > 순이익 성장률 (1-3%p). 본 recipe 보수적 근사. S&P 500 성장 임계 보통 10%/5% 정도로 완화.

연계 절차

  1. 본 recipe 로 후보 발굴 → tableRef 에 PEG 분포.
  2. PEG ≤ 1.0 종목 (강한 신호) 에 대해 recipes.screen.compounderCandidates 로 5 년 일관성 추가 검증.
  3. recipes.credit.distressFilter 로 부도 위험 종목 제외 (성장률 통과해도 부채 급증 종목 위험).
  4. engines.analysis.valuation — DCF + valuation band 단일 회사 심층.
  5. engines.story 로 narrative 생성 — 성장 동력 (제품·시장점유·신규사업) 까지 묶어 보고.

기본 검증

  • 후보 수 — 30~80 개가 정상 (KOSPI 1-3%). 200 개 초과 = 게이트 너무 느슨.
  • PEG 분포 — 중앙값 0.8-1.2, 하위 25 percentile 0.5 미만이어야 강한 신호 군집.
  • 단일 연도 성장률은 base effect (전년 일회성 손실 등) 영향 큼 — 분기 시계열 추가 점검 필수.
  • 성장 catalyst 명시 — 단순 숫자 통과 X. 신규 제품·M&A·시장점유 변화 등 정성 근거 함께.
  • “PEG = 0.5 = 매수” 단정 X — 성장 지속 가능성 (moat·산업 사이클) 별도 검증.

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python supported
Server supported
MCPunknown
Web AIunknown
Pyodide limited
  • 브라우저 안에서는 valuation snapshot prebuild 의존

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • 성장률 추정의 윈도우 (1Y vs 5Y) 별 PEG 변동
  • 사이클성 종목의 분기별 성장률 변동성 무시
  • PER 의 분모 (TTM EPS vs 컨센서스 EPS) 차이"
  • 부채 게이트 (부채비율 200% 이하) 의 산업 / size 차이 무시
  • 매출성장 게이트 (5% 이상) 의 KR 시장 적합성"
절대 금지
  • PEG (PER / 성장률) 단일 게이트만으로 GARP 단정 금지 — 부채 / 매출성장 게이트 동반.
  • 성장률 정의 (netProfit vs OP vs revenue) 명시 없이 PEG 인용 금지.
  • 일회성 성장 (M&A / 자산매각) 영향 미보정으로 PEG 단정 금지.
  • PEG ≤ 1 결과를 자동 매수 추천으로 단정 금지.