---
title: 집중도
description: 포트폴리오의 실제 분산 정도를 측정합니다. Firma는 티커, 통화, 섹터, 국가 4개 차원에서 허핀달–허시만 지수(HHI)를 계산합니다.
---

export const tiers = [
  { cmd: '< 1500',      desc: <span style={{ color: 'var(--green)'  }}>낮음: 잘 분산됨</span> },
  { cmd: '1500 – 2500', desc: <span style={{ color: 'var(--cyan)'   }}>보통: 일부 집중</span> },
  { cmd: '2500 – 5000', desc: <span style={{ color: 'var(--yellow)' }}>높음: 리밸런싱 고려</span> },
  { cmd: '> 5000',      desc: <span style={{ color: 'var(--red)'    }}>매우 높음: 심한 집중</span> },
];

export const hintRows = [
  { cmd: 'sell ≈428 TSLA @ $350.40', desc: '몇 주를 어느 가격에, 대략 어느 수준에서 매도할지 보여줍니다. 마지막 sync 가격으로 추정한 값이라 실제 체결가는 달라질 수 있습니다.' },
  { cmd: 'TSLA: 74% → 50%',          desc: '제안된 매도 전후 단일 종목 비중 변화.' },
  { cmd: 'HHI → <2500',              desc: '매도 후 목표. "높음"과 "보통" 사이 경계.' },
];

export const optionsRows = [
  { cmd: <code>firma show concentration</code>,        desc: '4개 차원 전체에 대한 HHI' },
  { cmd: <code>firma show concentration --json</code>, desc: '기계가 읽기 쉬운 출력. 차원별 상위 항목을 포함합니다' },
];

export const claudeExchange = [{
  user: '한 종목에 너무 쏠려 있어?',
  ai: <p>
    네. 티커 HHI가 <code>5,841</code>로 매우 높습니다. TSLA가 포트폴리오의{' '}
    <code>74%</code>를 차지합니다. 10% 변동 시 총 가치가 약 <code>$15,000</code>
    움직입니다. 통화와 국가는 모두 10,000입니다. 단일 통화, 단일 국가라는 뜻입니다.
    섹터는 티커와 거의 일치합니다. Automobiles가 74%입니다.
  </p>,
}];

<Section label="HHI란?">
HHI는 시장점유율 비율의 제곱 합을 0-10,000 스케일로 표시한 값입니다.
한 종목만 보유하면 10,000으로 최대 집중 상태입니다. 여러 종목에 고르게 분산될수록 0에 가까워집니다.

  <CommandTable rows={tiers} />
</Section>

<Section label="firma show concentration">
각 차원의 HHI 점수와 심각도, 그리고 시가 비중 기준 상위 항목을 표시합니다.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show concentration</span>
  </div>
  <table className="term-table">
    <thead>
      <tr><th>DIMENSION</th><th>HHI</th><th>SEVERITY</th><th>TOP HOLDINGS</th></tr>
    </thead>
    <tbody>
      <tr className="sep"><td colSpan={4}/></tr>
      <tr><td className="td-bold">Ticker</td><td className="td-orange">5841</td><td className="td-orange">very high</td><td className="td-muted">TSLA 74%, NVDA 16%, AAPL 6%, MSFT 4%</td></tr>
      <tr><td className="td-bold">Currency</td><td className="td-orange">10000</td><td className="td-orange">very high</td><td className="td-muted">USD 100%</td></tr>
      <tr><td className="td-bold">Sector</td><td className="td-orange">5884</td><td className="td-orange">very high</td><td className="td-muted">Automobiles 74%, Semiconductors 16%, Technology 10%</td></tr>
      <tr><td className="td-bold">Country</td><td className="td-orange">10000</td><td className="td-orange">very high</td><td className="td-muted">US 100%</td></tr>
      <tr className="sep"><td colSpan={4}/></tr>
    </tbody>
    <tfoot>
      <tr><td className="td-muted" colSpan={4}>&lt;1500 low · 1500–2500 moderate · 2500–5000 high · &gt;5000 very high</td></tr>
    </tfoot>
  </table>
  <pre className="term-pre" style={{ marginTop: '0.5rem' }}>
    {'  '}
    <span className="td-muted">Rebalance hint</span>
    {'  '}
    <span style={{ color: 'var(--yellow)' }}>→  sell ≈428 TSLA @ $350.40</span>
    {'  ·  '}
    <span className="td-muted">TSLA: 74% → 50%  ·  HHI → &lt;2500</span>
  </pre>
</div>

  <Note>
    섹터/국가 데이터는 <code>firma sync</code>를 통해 Finnhub에서 가져옵니다.
    가격 데이터가 없는 티커는 계산에서 제외됩니다.
  </Note>
</Section>

<Section label="리밸런싱 힌트 읽기">
티커 HHI가 2500을 넘으면 firma는 표 아래에 한 줄 리밸런싱 제안을 표시합니다.
가장 집중된 포지션에서 얼마를 팔아야 티커 HHI가 2500 아래로 내려가는지 계산합니다.

  <CommandTable rows={hintRows} />

  <Note>
    이는 기계적 휴리스틱이며 금융 자문이 아닙니다. 힌트는 티커 수준의 HHI와
    단일 임계값만 고려합니다. 실제 실행 여부는 세금 상황, 종목에 대한 확신,
    거래 비용을 함께 보고 판단해야 합니다.
  </Note>
</Section>

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

<Section label="Claude와 함께">
  <ChatDemo header="Claude Desktop · firma MCP 연결됨" exchanges={claudeExchange} />
</Section>
