---
title: 포트폴리오
description: 보유 종목, 평균 단가, 미실현 손익을 거래 내역에서 자동으로 도출합니다. 별도의 보유 테이블을 유지할 필요가 없습니다.
---

export const askRows = [
  { cmd: '"포트폴리오 어때?"',          desc: '포지션, 손익, 집중도, 그리고 오늘 챙겨야 할 한 가지를 한 번에' },
  { cmd: '"TSLA 비중 너무 높아?"',       desc: '집중도 위험 + 시나리오 영향이 자동으로 결합' },
  { cmd: '"방금 NVDA 10주 $875에 샀어"', desc: <>자연 대화로 거래 기록. Claude가 <code>add_txn</code> 자동 호출</> },
];

<Section label="Ask Claude">
  <CommandTable rows={askRows} />

  <Note>
    Claude가 <code>show_portfolio</code>, <code>show_concentration</code>,
    <code>show_macro</code>를 자동으로 조합합니다. 아래 CLI 섹션은 같은 데이터를
    터미널에서 직접 보고 싶을 때 사용합니다.
  </Note>
</Section>

<section className="section">
  <p className="section-label">firma show portfolio<Badge>power user</Badge></p>

현재 모든 포지션을 수량, 평균 단가, 시가, 미실현 손익과 함께 보여줍니다.
가격을 최신으로 맞추려면 먼저 <code>firma sync</code>를 실행하세요.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show portfolio</span>
  </div>
  <table className="term-table">
    <thead>
      <tr><th>TICKER</th><th>TYPE</th><th>QTY</th><th>AVG</th><th>PRICE</th><th>YIELD</th><th>P&amp;L</th></tr>
    </thead>
    <tbody>
      <tr className="sep"><td colSpan={7}/></tr>
      <tr><td className="td-bold">MSFT</td><td className="td-muted">US stock</td><td>18</td><td className="td-muted">$421.32</td><td>$424.62</td><td className="td-muted">0.88%</td><td className="td-green">+$59.40 (+0.78%)</td></tr>
      <tr><td className="td-bold">TSLA</td><td className="td-muted">US stock</td><td>400</td><td className="td-muted">$249.91</td><td>$376.30</td><td className="td-muted">─</td><td className="td-green">+$50,556.43 (+50.57%)</td></tr>
      <tr><td className="td-bold">AAPL</td><td className="td-muted">US stock</td><td>43</td><td className="td-muted">$196.29</td><td>$271.06</td><td className="td-muted">0.38%</td><td className="td-green">+$3,215.11 (+38.09%)</td></tr>
      <tr><td className="td-bold">NVDA</td><td className="td-muted">US stock</td><td>156</td><td className="td-muted">$128.05</td><td>$208.27</td><td className="td-muted">0.02%</td><td className="td-green">+$12,514.80 (+62.65%)</td></tr>
      <tr className="sep"><td colSpan={7}/></tr>
    </tbody>
    <tfoot>
      <tr><td className="td-muted">Value</td><td colSpan={6}>$202,308.86</td></tr>
      <tr><td className="td-muted">Cost</td><td colSpan={6}>$135,963.12</td></tr>
      <tr><td className="td-muted">P&amp;L</td><td colSpan={6} className="td-green">+$66,345.74  +48.80%</td></tr>
      <tr><td className="td-muted">Synced</td><td colSpan={6} className="td-muted">0m ago</td></tr>
    </tfoot>
  </table>
</div>

  <Note>
    AVG는 모든 매수/입고 거래의 가중 평균 단가입니다.
    YIELD는 Finnhub 기준 연 배당 수익률. 무배당 종목은 비어 있습니다.
    TYPE은 주식의 경우 시장(<code>US stock</code>, <code>KRX stock</code> 등),
    비-주식 보유 자산의 경우 자산 종류(<code>crypto</code>, <code>commodity</code>,
    <code>real_estate</code>)를 보여줍니다. 비-주식 자산은 시세 피드가 없어
    <code>firma add price</code>로 직접 가격을 입력하며, 행에는 그 가격이 얼마나
    오래됐는지 표시됩니다. <code>-c &lt;currency&gt;</code>로 모든 수치를 다른
    통화로 표시할 수 있습니다.
  </Note>
</section>

<Section label="비중 & 순자산 분해">
보유 테이블 아래에는 섹터/국가별 비중 막대와, 가장 최근 자산 항목을 기준으로 한
순자산 스냅샷도 함께 표시됩니다.

<div className="terminal">
  <pre className="term-pre">{`Sector Allocation
  Automobiles           ━━━━━━━━━━━━━━━─────  74.4%
  Semiconductors        ━━━─────────────────  16.1%
  Technology            ━━──────────────────   9.5%

Country Allocation
  US                    ━━━━━━━━━━━━━━━━━━━━  100.0%

Net Worth Breakdown
  Investments     ━━━━━━━━━━━━━───────  $273,641  64.0%
  Other Assets    ━━━━━───────────────  $109,935  25.7%
  Cash            ━━──────────────────   $44,188  10.3%

  Net Worth                               $426,691  2026-03
  Portfolio MV                            $202,308.86`}</pre>
</div>

  <Note>
    순자산 분해는 가장 최근 자산 항목을 사용합니다. 매월{' '}
    <code>firma add balance</code>를 실행해 최신 상태를 유지합니다.
  </Note>
</Section>

<Section label="firma sync">
Finnhub에서 포트폴리오의 모든 티커에 대한 현재 시가를 가져와 로컬에 캐시합니다.
Finnhub API 키가 필요하며, <code>firma config set finnhub-key &lt;key&gt;</code>로
한 번만 설정해 두면 됩니다.

  <Terminal
    command="firma sync"
    rows={[
      { type: 'beat', text: 'TSLA  $376.30' },
      { type: 'beat', text: 'NVDA  $208.27' },
      { type: 'beat', text: 'MSFT  $412.50' },
      { type: 'beat', text: 'AAPL  $209.80' },
      { type: 'meta', text: 'Synced 4 tickers at 8:35 AM' },
    ]}
  />

  <Note>
    가격은 로컬에 캐시됩니다. <code>firma sync</code>를 실행하거나 Claude가{' '}
    <code>sync</code>를 호출하지 않는 한 firma는 Finnhub을 호출하지 않습니다.
    무료 Finnhub 키는 분당 60회 API 호출까지 지원합니다.
  </Note>
</Section>
