---
title: 리스크 메트릭
description: 변동성, 드로다운, Sharpe, Sortino, 베타를 실제 스냅샷 이력으로부터 계산합니다. 수익이 실력에서 오는 것인지, 레버리지에서 오는 것인지, 아니면 단지 고통을 견딘 결과인지 알려줍니다.
---

export const metrics = [
  {
    icon: 'vol',
    title: '변동성',
    desc: '일별 수익률의 표준편차를 연환산(×√252)한 값. 높을수록 일별 변동 폭이 큽니다. 집중된 포트폴리오는 25–35% 수준, 광범위 시장 펀드는 보통 12–18% 수준입니다.',
  },
  {
    icon: 'dd',
    title: '드로다운',
    desc: 'peak-to-trough 하락. Max drawdown은 견뎌낸 가장 험한 시기, current drawdown은 현재 전고점 대비 얼마나 떨어져 있는지 보여줍니다.',
  },
  {
    icon: 'shr',
    title: 'Sharpe Ratio',
    desc: '총 변동성 단위당 초과 수익. >1이면 양호, >2면 우수, <0이면 T-bill이 더 나았다는 뜻.',
  },
  {
    icon: 'sor',
    title: 'Sortino Ratio',
    desc: 'Sharpe와 비슷하지만 하방 변동성만 페널티로 반영합니다. 상방 "변동성"이 실질 위험이 아닌 포트폴리오에 더 적합합니다.',
  },
  {
    icon: 'β',
    title: '베타',
    desc: '시장 움직임에 대한 민감도. β = 1이면 벤치마크와 같이 움직이고, β = 1.5면 시장 1% 변동 시 포트폴리오가 1.5% 움직이는 경향, β = 0.7이면 둔감.',
  },
  {
    icon: 'win',
    title: '승률',
    desc: '양의 수익률을 기록한 날의 비율. 승률이 높은데 Sharpe가 낮다면 작은 이익이 몇 번의 큰 손실로 상쇄된다는 의미입니다.',
  },
];

export const optionsRows = [
  { cmd: '--from / --to',     desc: '기간 (기본: 사용 가능한 모든 스냅샷 → 오늘)' },
  { cmd: '-b, --benchmark',   desc: '베타 계산용 티커 (기본: SPY)' },
  { cmd: '--rf <rate>',        desc: 'Sharpe / Sortino용 연 무위험 수익률 % (기본: 5.0)' },
  { cmd: '--json',             desc: '스크립트용 JSON 출력' },
];

<Section label="firma show risk">
일별 스냅샷 데이터로부터 포트폴리오 리스크 지표를 계산합니다. Finnhub 키가
설정되어 있으면 베타는 기본값 SPY (또는 사용자 지정 벤치마크)에 대해 계산됩니다.
Sharpe와 Sortino는 별도 지정하지 않는 한 연 5% 무위험 수익률을 가정합니다.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show risk</span>
  </div>
  <pre className="term-pre"><span className="d">Risk Metrics</span></pre>
  <div className="terminal-block">
    <div className="term-row"><span className="term-meta" style={{color:'var(--muted)'}}>  Period</span><span className="term-val">2024-01-02 → 2026-04-27  (320 days)</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta">Returns</span></div>
    <div className="term-row"><span className="term-meta">  Total</span><span className="term-val td-green">+61.23%</span></div>
    <div className="term-row"><span className="term-meta">  Annualized</span><span className="term-val td-green">+28.47%</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta">Volatility</span></div>
    <div className="term-row"><span className="term-meta">  Daily std dev</span><span className="term-val td-muted">1.82%</span></div>
    <div className="term-row"><span className="term-meta">  Annualized</span><span className="term-val td-muted">28.91%</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta">Drawdown</span></div>
    <div className="term-row"><span className="term-meta">  Max drawdown</span><span className="term-val td-orange">-22.40%</span></div>
    <div className="term-row"><span className="term-meta">  Current from ATH</span><span className="term-val td-orange">-8.30%</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta">Risk-Adjusted Ratios <span style={{color:'var(--muted)'}}>(rf = 5.0%)</span></span></div>
    <div className="term-row"><span className="term-meta">  Sharpe</span><span className="term-val">1.23</span></div>
    <div className="term-row"><span className="term-meta">  Sortino</span><span className="term-val">1.87</span></div>
    <div className="term-row" style={{marginTop:'0.5rem'}}><span className="term-meta">Beta vs SPY</span></div>
    <div className="term-row"><span className="term-meta">  Beta</span><span className="term-val">1.450 <span style={{color:'var(--muted)'}}>more volatile than market</span></span></div>
  </div>
</div>

  <Note>
    최소 10개 일별 스냅샷이 필요합니다. <code>firma add snapshot</code>을 정기적으로
    실행하거나, 오늘 스냅샷이 없으면 자동으로 기록하는 <code>firma brief</code>를
    활용합니다.
  </Note>
</Section>

<Section label="각 지표의 의미">
  <FeatureList items={metrics} />
</Section>

<Section label="옵션">
  <CommandTable rows={optionsRows} />
</Section>
