본문으로 건너뛰기

PnL 카드 해석

대시보드 상단 StatsGrid의 손익(P&L) 관련 카드들을 어떻게 읽어야 하는지 설명합니다.

📸 PnL 카드 영역 (추후 자동 캡처 예정)

카드 종류

Daily P&L

당일 00:00 UTC부터 현재까지의 손익입니다.

  • 상단 숫자: 절대 P&L (USD/KRW). 환율 환산은 거래 발생 시점 기준.
  • 하단 % 숫자: daily_pnl / starting_equity * 100
  • 컬러: 양수 = emerald, 음수 = rose
  • 자산군 필터가 all이 아니면 해당 자산군만 합산

Total P&L

봇 시작 시점부터 누적 손익입니다.

  • 상단 숫자: realized + unrealized 합산
  • 하단 % 숫자: total_pnl / initial_capital * 100
  • 백테스트 결과가 아닌 실 거래 기준

Win Rate

전체 청산된 거래 중 수익 거래 비율입니다.

win_rate = winning_trades / total_closed_trades

오픈 포지션은 카운트되지 않습니다.

Open Positions

현재 살아있는 포지션 수. LONG + SHORT 모두 포함.

Today's Trades

당일 청산된 거래 수. realized_pnl != null 기준.

자산군별 분리 표시

AssetClassFilter(헤더 우측)에서 특정 자산군을 선택하면, StatsGrid는 해당 자산군의 데이터만으로 다시 집계됩니다.

필터Equity 값Daily P&L 출처
All모든 자산군 합산 (USD 환산)모든 자산군 합산
Crypto (amber)Crypto 자산만Crypto 거래만
US (blue)US Equity 자산만US 거래만
KR (rose)KR Equity 자산만 (KRW)KR 거래만
통화 환산

KR 필터는 표시 화폐를 USD가 아닌 KRW로 전환합니다. 환율은 daily close 기준입니다.

양수/음수 컬러 매핑

UI는 정량적 손익을 다음 컬러로 강조합니다.

컬러 클래스의미
> 0text-emerald-400수익
< 0text-rose-400손실
== 0text-zinc-300무손익 또는 데이터 없음

change prop이 0이면 화살표 없이 회색 톤으로 표시됩니다.

API 연동

PnL 카드 데이터는 단일 호출로 채워집니다.

curl -s -H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/api/dashboard/summary?asset_class=crypto"
{
"equity": 5102.45,
"daily_pnl": -23.10,
"daily_pnl_pct": -0.45,
"total_pnl": 102.45,
"total_pnl_pct": 2.05,
"open_positions": 1,
"total_trades_today": 3,
"win_rate": 0.67
}

자주 묻는 질문

Q. Daily P&L과 누적 P&L 합이 안 맞아요.
A. unrealized_pnl이 다음 거래일에 realized로 전환되는 시점에 카드 값이 갱신됩니다. 24시간 이내 약간의 mismatch는 정상입니다.

Q. % 값이 NaN으로 보입니다.
A. starting_equity가 0이거나 데이터가 미초기화 상태입니다. 봇 첫 실행 후 1분 후 다시 확인하세요.

Q. KR 필터 선택 시 USD 환산이 사라집니다.
A. 의도된 동작입니다. KR 자산은 KRW 본위로 표시됩니다.

관련 페이지