피터 린치 실적 폭발 GARP 공식: 10배 오를 저평가 성장주 10초 스크리닝

유튜브 숏폼에서 소개한 '피터 린치 GARP(합리적 가격의 성장주) 퀀트 판정 파이썬 코드'입니다. 단순히 싼 주식(저PER)에 물리지 않고, 연간 이익 성장률 대비 극단적 저평가(PEG < 1.0) 상태에 놓인 알짜 종목을 10초 만에 판별하는 공식을 공개합니다.

배포일: 2026년 9월 17일

월가의 전설적인 펀드매니저 피터 린치는 13년 동안 마젤란 펀드를 운용하며 연평균 29.2%라는 경이로운 수익률을 기록했습니다.
그가 10루타(10배 상승) 종목을 쏟아내며 시장을 씹어먹을 수 있었던 비결은 무엇이었을까요?

단언컨대, 그는 차트 줄 긋기나 테마주 찌라시를 보지 않았습니다.
개인 투자자들이 가장 많이 빠지는 두 가지 함정을 철저히 피했을 뿐입니다:

  • 함정 1 (단순 저PER 함정): PER이 3배, 5배로 싸다고 샀는데, 회사가 성장을 멈춰 주가가 5년 내내 제자리인 ‘가치 함정’
  • 함정 2 (고PER 과열 함정): “AI 시대 대장주다!”, “미래 100배 성장한다!”는 말에 PER 80배, 100배짜리 꼭대기에서 물리는 함정

피터 린치는 이 두 가지 극단을 완벽하게 해결한 단 하나의 지표, 바로 GARP(Growth At a Reasonable Price, 합리적 가격의 성장주) 원칙을 고수했습니다.


1단계: 피터 린치의 마법 공식 (PEG 비율)

피터 린치가 책에서 밝힌 핵심 공식은 허탈할 정도로 단순합니다:

$$\text{PEG (Price/Earnings to Growth)} = \frac{\text{PER (주가수익비율)}}{\text{EPS 연평균 성장률 (%) \times 100}}$$

  • PEG 1.0 초과 (1.5 이상): [고평가 주의]. 회사가 버는 성장세에 비해 주가가 너무 앞서 달려간 상태.
  • PEG 1.0 이하: [합리적 매수 구간]. 성장이 주가에 아직 완전히 반영되지 않은 알짜 구간.
  • PEG 0.5 이하: [극단적 저평가 (10루타 후보)]. 매년 실적이 30%씩 폭증하는데 PER은 고작 10배 수준에 방치된 기형적 저평가 상태!

실전 예시:
• 기업 A: PER 15배, 연간 이익 성장률 10% → PEG 1.5 (고평가)
• 기업 B: PER 20배, 연간 이익 성장률 40% → PEG 0.5 (초특급 저평가)
겉보기엔 PER 20배인 B기업이 더 비싸 보이지만, 실제로는 B기업이 3배나 더 저렴한 황금 주식입니다!


2단계: 단일 웹 실행 앱 제작 프롬프트

상장 종목의 최근 분기 실적과 PER을 일일이 HTS에서 찾아 계산하려면 반나절이 걸립니다.
ChatGPT 데스크탑, Claude Code, Google Antigravity 등 데스크탑 앱에 아래 프롬프트를 그대로 붙여넣으세요.

종목코드(예: 005930) 하나만 넣으면 한국거래소와 재무 데이터를 연동해 **오늘 기준 PER과 3개년 이익성장률을 대조하여 PEG 비율과 린치 등급을 10초 만에 판별해 주는 미니 웹 앱(app_peter_lynch.py)**을 완성해 줍니다.

아래 피터 린치 GARP(PEG) 분석 로직을 바탕으로, 내 로컬 컴퓨터 브라우저(http://localhost:5002)에서 종목코드나 종목명을 입력하면 PEG 비율과 판정 카드를 띄워주는 Flask 웹 애플리케이션(app_peter_lynch.py)을 작성해줘.

[상세 구현 스펙]
1. 프레임워크: Flask 단일 파일(app_peter_lynch.py), HTML/CSS 인라인 렌더링.
2. 기능 및 화면 표시:
   - 종목코드(6자리) 입력 후 [피터 린치 진단] 버튼 클릭
   - 표시 데이터: 현재가, PER, 최근 연간 EPS 성장률, PEG 비율 수치
   - 피터 린치 등급 배지:
     * PEG <= 0.5 "[피터 린치 저평가] 극단적 저평가 (10루타 후보)"
     * 0.5 < PEG <= 1.0 "[우량 저평가] 합리적 매수 구간"
     * 1.0 < PEG <= 1.5 "[적정 주가] 가치 부합 구간"
     * PEG > 1.5 "[고평가 주의] 성장 대비 과열"
     * 추정치 부재 "[컨센서스 부재] 증권사 리포트 없는 종목은 DART 재무제표 필요"
     * 역성장 "[이익 역성장] 성장주 제외"
3. 자동 브라우저 실행: 서버 기동 시 webbrowser 모듈로 http://localhost:5002 자동 오픈.

[피터 린치 PEG 진단 로직 (파이썬)]
import requests

def evaluate_lynch_peg(ticker: str):
    url = f"https://m.stock.naver.com/api/stock/{ticker}/integration"
    headers = {"User-Agent": "Mozilla/5.0"}
    try:
        r = requests.get(url, headers=headers, timeout=5)
        data = r.json()
    except Exception as e:
        return {"name": ticker, "per": 0, "growth": "오류", "peg": "오류", "grade": f"[통신 오류] ({str(e)})"}

    name = data.get("stockName", ticker)
    total_infos = {it.get("key"): it.get("value") for it in data.get("totalInfos", [])}
    
    per_raw = total_infos.get("PER", "0").replace("배", "").replace(",", "").strip()
    try: per = float(per_raw)
    except: per = 0.0

    eps_raw = total_infos.get("EPS", "0").replace("원", "").replace(",", "").strip()
    try: eps_curr = float(eps_raw)
    except: eps_curr = 0.0

    est_raw = total_infos.get("추정EPS", "").replace("원", "").replace(",", "").strip()
    
    # 1. 증권사 추정치(컨센서스)가 없는 중소형주
    if not est_raw or est_raw in ["N/A", "-", "0"]:
        return {"name": name, "per": per, "growth": "N/A", "peg": "N/A", "grade": "[컨센서스 부재] 증권사 리포트 없음"}

    try: eps_est = float(est_raw)
    except: eps_est = 0.0

    # 2. 적자 기업
    if eps_curr <= 0:
        return {"name": name, "per": per, "growth": "N/A", "peg": "N/A", "grade": "[적자 기업] 성장주 제외"}

    # 3. 역성장 또는 성장 정체
    if eps_est <= eps_curr:
        decline = round(((eps_est - eps_curr) / eps_curr) * 100, 1)
        return {"name": name, "per": per, "growth": f"{decline}%", "peg": "역성장", "grade": "[이익 역성장] 성장주 제외"}

    # 4. 정상 성장 기업 (피터 린치 공식 산출)
    growth_rate = round(((eps_est - eps_curr) / eps_curr) * 100, 1)
    peg = round(per / max(growth_rate, 0.1), 2)

    if peg <= 0.5: grade = "[피터 린치 저평가] 극단적 저평가 (10루타 후보)"
    elif peg <= 1.0: grade = "[우량 저평가] 합리적 매수 구간"
    elif peg <= 1.5: grade = "[적정 주가] 가치 부합 구간"
    else: grade = "[고평가 주의] 성장 대비 과열"

    return {"name": name, "per": per, "growth": f"{growth_rate}%", "peg": peg, "grade": grade}

실행 및 유지보수 가이드 (FAQ)

  • Q1. AI가 파일을 다 만들었다고 하는데 브라우저가 안 떠요. 어떻게 실행하나요?
    파이썬 명령어나 검은 터미널 창을 몰라도 전혀 걱정 마세요! 지금 대화 중인 AI(Claude, Antigravity, ChatGPT 등) 채팅창에 **“방금 만든 프로그램 지금 바로 터미널에서 백그라운드로 실행해서 브라우저 띄워줘”**라고 한 줄만 치시면 AI가 알아서 서버를 켜고 화면을 띄워줍니다.
  • Q2. 실행 도중 빨간 글씨 오류나 통신 에러가 발생하면요?
    본문에 검증된 100% 정답 코드가 다 들어있기 때문에 절대 당황하실 필요 없습니다. 터미널이나 화면에 뜬 오류 문구 전체를 그대로 복사해서 AI 대화창에 **“이 에러 수정해서 다시 실행해줘”**라고 던지시면 10초 만에 완벽히 고쳐줍니다.
  • Q3. 내일 컴퓨터를 껐다가 다시 켰을 때는 어떻게 다시 여나요?
    코드를 다시 짤 필요가 전혀 없습니다! 기존에 작업했던 AI 대화창을 다시 열고 **“어제 만든 이 프로그램(app_peter_lynch.py) 서버 다시 실행해서 브라우저 열어줘”**라고만 요청하시면 즉시 다시 켜집니다.

다음 2탄 예고: 워렌 버핏 안전마진 적정주가 산출 공식

  • 회사가 아무리 잘 커도, **“지금 주가가 회사의 청산 가치 대비 얼마만큼의 안전마진(Safety Margin)을 갖고 있는가?”**를 확인하지 않으면 시장 급락 때 큰 손실을 입을 수 있습니다.
  • 다음 2탄에서는 워렌 버핏이 평생을 걸쳐 실천한 ROE와 BPS 기반의 보수적 적정주가 산출 공식을 공개합니다.
TWONEWORKS QUANT ENGINE

전 종목을 전수 스크리닝하는 실전 퀀트 자동화 시스템

DART 전자공시 재무제표와 주가를 실시간 연동해 피터 린치 GARP, 버핏 안전마진, 외인/기관 세력 수급까지 3중으로 전 종목을 자동 스크리닝하는 twonelab 퀀트 시스템과 구축 노하우를 확인해보세요.

크몽 퀀트 자동화 노하우 보기 ↗