engines.macro.scenarios Engines observed

Macro — 시나리오 카탈로그 (scenarios)

매크로 시나리오 카탈로그 SSOT — 역사 시나리오 (1997 외환위기 · 2008 금융위기 · 2020 팬데믹) + 가설 시나리오 (금리 +200bp / USD/KRW +10% / 유가 +50%) 단일 enum + scenario axis 의 override 인자 표준 schema. recipes.macro.* 가 본 enum 인용.

이 스킬

Macro — 시나리오 카탈로그 (scenarios)

매크로 시나리오 카탈로그 SSOT — 역사 시나리오 (1997 외환위기 · 2008 금융위기 · 2020 팬데믹) + 가설 시나리오 (금리 +200bp / USD/KRW +10% / 유가 +50%) 단일 enum + scenario axis 의 override 인자 표준 schema. recipes.macro.* 가 본 enum 인용.

Engines observed engines.macro.scenarios

이어 가기

절차

실행 순서

  1. 1

    절대 변동 = `+/-Nbp` (금리·스프레드)

  2. 2

    상대 변동 = `+/-N%` (환율·원자재·주가)

  3. 3

    단위 명시 strict — 단위 누락 시 ValueError.

  4. 4

    scenario enum 값이 7 종 안.

  5. 5

    overrides 모든 key 가 schema 표 안.

  6. 6

    절대 변동 (bp) / 상대 변동 (%) 단위 명시.

  7. 7

    결과 paths 의 시계열 길이 ≥ 1.

  8. 8

    regime 분류가 `engines.macro.regimes` 5 enum 안.

  9. 9

    [engines.macro](/skills/engines.macro) — base SKILL

  10. 10

    [engines.macro.regimes](/skills/engines.macro.regimes) — scenario 결과의 regime 분류 SSOT

  11. 11

    [recipes.macro.quantScenarioBacktest](/skills/recipes.macro.quantScenarioBacktest) — scenario × quant walk-forward

  12. 12

    [recipes.macro.companyMacroPathProjection](/skills/recipes.macro.companyMacroPathProjection) — 146 시나리오 × elasticity

엔진 역할

macro 엔진의 시나리오 카탈로그 SSOT sub-spec. base SKILL engines.macro 의 12 axis 중 scenario axis 의 override 인자 표준 schema + 역사·가설 시나리오 enum 단일 정의. recipes.macro.quantScenarioBacktest / companyMacroPathProjection / credit covenantStressTest 등이 본 enum 그대로 인용.

공개 호출 방식

import dartlab

# 1. 역사 시나리오
result = dartlab.macro("scenario", scenario="crisis_2008")
# → 2008 시나리오 적용 결과 (자산·금리·환율 path)

# 2. 가설 시나리오 (override)
result = dartlab.macro("scenario", overrides={
    "rates_us10y": "+200bp",
    "usdkrw": "+10%",
    "oil_wti": "+50%"
})

# 3. 시나리오 가이드
dartlab.macro("scenario")
# → 등록된 시나리오 enum + 정의 표

호출 동작

dartlab.macro("scenario", scenario=<id>) — 역사 시나리오 enum hit 시 해당 사건의 자산·금리·환율 path 적용. overrides= 명시 시 가설 시나리오 — 본 sub-spec 의 schema 따름.

scenario + overrides 동시 사용 가능 — override 가 scenario 의 일부 path 만 교체.

역사 시나리오 enum

id사건기간핵심 path
crisis_1997한국 외환위기 (IMF)1997-11 ~ 1998-12KRW -50% · 금리 +1500bp · KOSPI -65%
crisis_2000닷컴 버블 붕괴2000-03 ~ 2002-10나스닥 -78% · KOSPI -50%
crisis_2008글로벌 금융위기2008-09 ~ 2009-03S&P -55% · KOSPI -52% · 신용스프레드 +600bp
shock_2011유럽 재정위기2011-08 ~ 2011-10KOSPI -25% · 신용스프레드 +200bp
crash_2018미중 무역분쟁2018-10 ~ 2018-12KOSPI -18% · 신흥국 통화 -10%
pandemic_2020COVID-19 충격2020-02 ~ 2020-03KOSPI -34% · VKOSPI +50% · 유가 -65%
inflation_2022글로벌 인플레이션2022-01 ~ 2022-12금리 +425bp · 채권 -15% · 주식 -25%

각 시나리오는 monthly path (자산·금리·환율 시계열) 으로 저장. dartlab.macro(“scenario”, scenario=…) 가 해당 path 직접 노출.

가설 시나리오 schema (overrides)

overrides = {
    # 금리 (절대 변동, bp)
    "rates_us10y": "+200bp",          # 미 10년물 +200bp
    "rates_kgb10y": "+100bp",         # 한국 국고 10년물 +100bp
    "rates_kr_base": "+75bp",         # 한국 기준금리

    # 환율 (상대 변동, %)
    "usdkrw": "+10%",                 # 원/달러 절하
    "usdjpy": "-5%",                  # 엔/달러 절상

    # 원자재 (상대 변동, %)
    "oil_wti": "+50%",                # WTI
    "copper": "-20%",                 # 구리

    # 주가지수 (상대 변동, %)
    "kospi": "-15%",
    "sp500": "-10%",

    # 신용스프레드 (절대 변동, bp)
    "spread_corp_aaa": "+50bp",
    "spread_corp_bbb": "+150bp",
}
  • 절대 변동 = +/-Nbp (금리·스프레드)
  • 상대 변동 = +/-N% (환율·원자재·주가)
  • 단위 명시 strict — 단위 누락 시 ValueError.

대표 반환 형태

dartlab.macro("scenario", scenario="crisis_2008")
→ dict
   scenarioId : str           # "crisis_2008"
   scenarioName : str         # "글로벌 금융위기"
   period : tuple[str, str]   # ("2008-09", "2009-03")
   paths : dict[str, list]    # {"kospi": [-15%, -28%, ...], "rates_us10y": [...], ...}
   regime : str               # "crisis" (engines.macro.regimes SSOT)
   dateRef : str
dartlab.macro("scenario", overrides={...})
→ dict
   scenarioId : str           # "custom_<hash>"
   overrides : dict           # 입력 그대로
   paths : dict               # 적용 결과
   regime : str               # 추정 regime

기본 실행 순서

  1. 역사 시나리오 비교 — enum id 명시 호출.
  2. 가설 시나리오 stress test — overrides schema 따라 절대/상대 변동 명시.
  3. 결합 시나리오 — scenario + overrides 동시 (override 가 scenario path 일부 교체).
  4. recipe 인용recipes.macro.quantScenarioBacktest 등이 본 enum 그대로 사용.

기본 검증

  • scenario enum 값이 7 종 안.
  • overrides 모든 key 가 schema 표 안.
  • 절대 변동 (bp) / 상대 변동 (%) 단위 명시.
  • 결과 paths 의 시계열 길이 ≥ 1.
  • regime 분류가 engines.macro.regimes 5 enum 안.

본 spec 은 공개 실행 문서다. scenario enum 또는 overrides schema 가 변경되면 본 파일을 같은 변경에서 갱신한다.

관련

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python supported·
Server supported·
MCP supported·
Web AI supported·
Pyodide limited·