시나리오 분석
결정론적 what-if 계산기. 가설 충격(주가지수 변동, 단일 종목 이벤트, 또는 둘의 조합)을 주면 종목별 베타를 거쳐 흐르는 P&L 영향을 점추정으로 반환합니다. 브리프가 "지금 무엇이 사실인가"를 진단한다면, 프로젝션은 미래 분포를, 시나리오는 "지금 X가 일어나면 어떻게 보일까"에 답합니다.
Claude에게 물어보기
"내일 S&P가 3% 빠지면 어떻게 돼?"베타 기반 점추정. 종목별, 그리고 포트폴리오 합산 영향. 분포나 확률 없이, 조건부 결과 하나.
"TSLA가 실적 10% 미스하면 타격은?"per_ticker_pct 오버라이드로 단일 종목 이벤트 적용(베타가 아닌 종목 자체 충격). 다른 종목은 영향 없음.
"내일 bear(-3%), flat(0%), bull(+3%) 비교"한 호출에 최대 8개 시나리오. 각각 라벨이 붙은 응답이 돌아와 Claude가 나란히 보여줄 수 있습니다.
firma 안에서의 위치사고 실험
simulate_scenario와 project_net_worth는 형제, 둘 다 firma의 사고 실험 쪽에 살고 있습니다.
원칙도 같습니다: 호출자가 가정을 제공하고, firma는 결과를 계산하며, Claude는 그 가정을 답변에
그대로 노출합니다.차이는 답의 모양에 있습니다:
project_net_worth · 확률적 분포호라이즌에 걸친 P10/P25/P50/P75/P90 경로. "어느 정도 확률로 이 일이 일어나나?"에 답함. 입력: 시나리오별 수익률 + 변동성.simulate_scenario · 결정론적 조건부시나리오당 단일 점추정. "X가 일어나면 어떻게 보일까"에 답함. 입력: 충격 크기 + 종목별 베타.브리프는 진단입니다.
simulate_scenario는 조건부입니다. 둘은 서로를 절대 안에
품지 않습니다, Claude가 브리프에서 현재 상태(보유, 베타, daily_vol_pct)를 읽고 사용자의
가설 충격과 함께 simulate_scenario로 넘기는 식으로 다리를 놓습니다.simulate_scenarioMCP 전용
결정론적 조건부 계산기. 가설 충격 하나 이상을 받으면, 활성 종목을 모두 돌며
시가 × 베타
× 충격을(또는 종목별 오버라이드가 있으면 그것을) 적용하고, 합산해 포트폴리오 영향을
내며, 결과를 포트폴리오의 자연 일별 변동성과 대조해 시나리오 충격이 평소 노이즈 수준인지
아닌지 가늠할 수 있게 합니다.이 도구는 포트폴리오의 현재 상태에 대해서는 아무것도 반환하지 않습니다. 그건 브리프의
일입니다.
입력
scenarios[]1~8개 충격 시나리오. 각각
label과, equity_pct(베타로 흐르는 광역 시장 변동) 또는 per_ticker_pct(종목별 오버라이드) 중 최소 하나를 가짐. 둘을 같이 줘도 됨, 오버라이드가 우선합니다.beta_overrides종목별 베타 맵. 가장 정확한 결과를 원하면
get_market_brief → holdings[].fundamentals.beta_5y를 그대로 전달. 오버라이드도 없고 베타 데이터도 없는 종목은 1.0으로 폴백됩니다.daily_vol_pct포트폴리오의 측정된 1일 표준편차(%).
get_market_brief → risk_summary.daily_vol_pct에서 가져옴. 주어지면 각 시나리오 응답에 one_sigma_range가 포함됩니다.display_currency응답의 모든 금액 단위 통화 (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). 기본값 USD.
응답에 담기는 것
종목별 영향
활성 종목 각각에 대해
시가 × 베타 × shock_pct. 종목별 오버라이드가 있으면 그 종목의 베타×지수 대신 오버라이드 값을 적용해 단일 종목 이벤트가 고립되도록 합니다.포트폴리오 영향
종목별 영향의 합.
amount(금액)와 pct(전체 시가 대비 %) 둘 다 반환됩니다. Claude가 헤드라인으로 쓰는 숫자입니다.1-시그마 일변동 범위
daily_vol_pct가 주어지면 포트폴리오의 자연 일별 표준편차를 달러로 반환. 시나리오 충격이 "테일" 이벤트인지 그냥 평소 노이즈 수준인지 가늠하는 기준이 됩니다.종목별 베타 출처
각 종목이 실제로 사용한 베타와, 그것이
beta_overrides에서 왔는지 1.0으로 폴백됐는지를 명시. 폴백이 한 종목이라도 있으면 beta_fallback_note가 응답에 붙습니다.입력 충격 echo
호출자가 준 (equity_pct, per_ticker_pct)이 각 시나리오 응답에 그대로 echo되어, 정확히 무엇이 모델링됐는지 사용자가 볼 수 있습니다.
짧은 예시, "화요일 시장 어떨까?"
TSLA, NVDA, MSFT, AAPL을 보유한 사용자. 금요일에 PCE 인플레이션 지표가 발표됐고
화요일 개장 전, 사용자가 묻습니다: "PCE 결과별로 화요일이 어떻게 보일까?"
Claude는 브리프를 한 번만 호출해
holdings[].fundamentals.beta_5y
(TSLA 1.79, NVDA 2.25, MSFT 1.09, AAPL 1.08)와 risk_summary.daily_vol_pct
(1.5)를 가져온 뒤, 조건부 시나리오 셋을 짜서 simulate_scenario로 체이닝합니다:{
"scenarios": [
{ "label": "PCE 컨센서스 부합", "equity_pct": 0.005 },
{ "label": "PCE 상방 서프라이즈 (hot)", "equity_pct": -0.025 },
{ "label": "PCE 하방 서프라이즈 (cool)", "equity_pct": 0.030 }
],
"beta_overrides": { "TSLA": 1.79, "NVDA": 2.25, "MSFT": 1.09, "AAPL": 1.08 },
"daily_vol_pct": 1.5,
"display_currency": "KRW"
}응답은 시나리오별 금액 임팩트와
one_sigma_range(포트폴리오의 자연 1일
표준편차)를 함께 줍니다. Claude가 사용자에게 돌려주는 건 다음과 같이 짧은 읽기:PCE 부합 → +620만원 (~0.5σ 이벤트) PCE 상방 (hot) → -1,630만원 (~1.3σ 이벤트; TSLA -1,140만, NVDA -520만) PCE 하방 (cool) → +2,180만원 (~1.6σ 이벤트) 1σ 일변동 범위 = ±1,250만원 가정: S&P 변동폭은 Claude가 정한 것이지 예측 아님.
정직한 framing (Claude는 "어떤 결과가 나올지" 못 박지 않습니다) 이게 핵심입니다. 1일
방향은 알 수 없는 것이고, 조건부 민감도는 알 수 있는 것입니다. 실제 quant가 하는 view를
사용자의 실제 포트폴리오 크기에 맞춰 답해주는 것뿐입니다.
이것은 무엇이 아닌지
몬테카를로 아님.
호라이즌에 걸친 확률 분포(P10/P50/P90)가 필요하면
project_net_worth를 쓰세요. 시나리오는 조건부 질문에 답합니다, 분포 질문이 아닙니다.예측 아님.
각 시나리오는 "X가 일어나면 어떻게 보일까"에 답합니다, "X가 일어난다"는 예측이 아닙니다.
추천 아님.
충격의 영향을 정량화할 뿐, 액션·헤지·트림을 권하지 않습니다.
포트폴리오 상태 아님.
현재 보유, 손익, 레짐, 추천이 필요하면
get_market_brief를 쓰세요.