가이드북으로
Backtester · Simulation Lab · v1.4.3 · 아이콘 maskable 대응

백테스터

leveraged ETFs, regime signals · 내장 16년 데이터로 돌리는 시뮬레이터

데이터: — ~ — —행 source: Yahoo Finance offline실시간 미적용

이 시뮬레이터가 하는 일

레버리지 ETF 수익률을 일간 합성식 P(t+1) = P(t) × (1 + L × R − fee_d) 로 재구성합니다. 실제 ETF와 일치하지는 않지만, 같은 기초지수·같은 레버리지·같은 보수율을 쓰면 장기 방향과 MDD는 상당히 가깝게 재현됩니다. TQQQ·SOXL·UPRO 같은 상품이 한국 시장에 상장되기 전의 구간까지 비교할 수 있게 하기 위한 엔진입니다.

공식 상품의 실측 수익률은 별도 검증이 필요합니다. 세금·환율·해외 ETF 과세·분배금 재투자 여부는 모델에 포함되지 않습니다.

💾 시나리오 저장 v1.4

localStorage 키: bt-scenarios-v1 · 휴대폰별로 따로 저장됩니다.

비교 대상 선택

최대 4개 ETF + 1개 벤치마크(S&P 500). 각 프리셋은 기초지수·레버리지·보수율로 정의됩니다.

선택 후 '추가' 누르기

기간 · 방식

⚡ 사전정의 위기 구간 v1.2

클릭하면 시작일·종료일이 해당 구간으로 자동 설정됩니다 (백테스트는 별도 실행).

출처: NBER recession dating(공식), Yahoo Finance 가격 피크/저점 식별. 닷컴/금융위기는 2010 이전 데이터 미포함으로 비활성화 (v2.0에서 데이터 확장 검토).

DCA의 시작 일시금. 0 가능.
DCA 전용. 매월 첫 거래일 매수
USD ETF는 매월 5일 환율로 환전 매수 가정 (D-3)
결과표에 세전·세후 모두 표시 (가이드북 AC 공식)
Sharpe / Sortino 계산용 (한국 정기예금 ~3%)
분리 시 적립금이 두 사람으로 나뉘고 결과 합산

결과

아직 결과가 없습니다. 위의 프리셋에서 ETF를 추가하고, 기간·방식을 정한 뒤 백테스트 실행을 누르세요.

연도별 수익률 v1.1

각 ETF의 연도별 Total Return (Buy & Hold). 부분 연도는 P 라벨. KRW 모드 적용.

백테스트 실행 후 표시됩니다.

롤링 N년 CAGR 분포 v1.2

"임의의 N년 구간에 진입했다면" 분포 — 진입 시점 리스크 측정. 매월 슬라이딩(D-8). KRW 모드.

규칙 검증 개요

가이드북 5장의 핵심 신호인 QQQ SMA200을 세 가지 대안(SOX SMA200, S&P SMA200, 방어 없음)과 같은 기간·같은 포트폴리오로 비교합니다. 현재 포트는 공격=SOXX / 방어=SPY로 설계되어 있지만, 어떤 지수의 SMA200을 신호로 써야 하는지는 다른 질문입니다.

SMA200 계산에 200일 필요. 2010-01-04 + 200영업일 ≈ 10월
비워두면 데이터 마지막일 사용

비율 + 매수만 리밸런스

룰북 §과세계좌: TQQQ 60 : USD 40 매월 5일 매수만 · 매도 금지. 비율 빗나가면 다음 매월 매수로 회복 시도. 이 룰을 같은 기간 단일 ETF DCA와 비교 (D-9·D-10).

시작일 종료일 비율을 정한 뒤 실행하세요. 기본값 = 룰북 (TQQQ 60 : USD 40, 2010-01-04~).

Floor 2029 — 입주시점 자산 분포

롤링 39개월 백테스트. 시작 자산 + 월 적립 → 39개월 후 + 전세보증금 환급 = AC. 데이터 2010~의 모든 39개월 윈도우로 분포 도출. 출처: backtest_floor_2029.py

Sell vs Hold — 마통 상환 vs 끌고가기

현재 포트 일부/전부 매도 → 마통 상환 시 N년 후 순자산 vs 그냥 보유 시. 출처: sell_vs_hold.py

Glide Path — 적립→점진 매도

목표 도달 시 점진 매도(글라이드)로 변동성 감소. Hold 시나리오와 비교. 출처: backtest_glide_visual.html

Movein — 입주 시점 비교

31년 (즉시) vs 33년 (전세 2년 더) 입주 시점이 미래 자산에 미치는 영향. 출처: movein_comparison.py

Monte Carlo — 목표 도달 확률 v1.4

과거 일별 수익률 부트스트랩(D-13). 선택 ETF + DCA로 N개월 후 목표 도달 확률.

Decision Tree — 매도/전세/주담대

잔금 시점 의사결정 3가지 경로 비교 (단순화 버전). 출처: decision_tree_backtest.py

데이터 정보

시작일
종료일
관측치
거래일
실시간 연장
off
네트워크 사용

기본 데이터는 Yahoo Finance에서 받은 일별 종가(^NDX / ^GSPC / ^DJI / ^SOX)를 그대로 내장합니다. 증분 갱신 버튼을 누르면 guidebook-proxy.bwkim1025.workers.dev Worker를 거쳐 최근 90일 구간을 다시 받아 덮어씁니다. localStorage에 6시간 캐시.

엔진·주의사항

합성식

P(t+1) = P(t) · (1 + L · R_index(t+1) − expense_annual / 252)

  • L = 레버리지 (QQQ=1, QLD=2, TQQQ=3, UPRO=3, SOXL=3 등)
  • R_index = 해당 일의 기초지수 로그 아님, 산술 수익률
  • expense_annual = 프리셋 카드에 적힌 연 보수율
  • 세금·분배금·환율·호가 슬리피지는 포함하지 않습니다
  • 레버리지 ETF의 volatility decay는 합성식에 자연스럽게 반영됩니다 (일일 복리)

DCA 구현

매월 첫 거래일에 월 적립금을 각 ETF에 동일한 금액으로 매수한 것으로 가정합니다. 초기 일시금은 시작일 종가에 일괄 매수. 모든 ETF에 같은 금액이 동일하게 들어가므로 비교의 공정성이 보장됩니다.

Regime 구현

월 1회 신호: 매월 마지막 5거래일의 신호지수 종가가 SMA200 이상이 5회면 공격, 미만이 5회면 방어, 혼합이면 직전 모드를 유지합니다. 매 거래일 신호: 종가 기준 ≥SMA200이면 공격, 그 외 방어. 전환 시 당일 종가로 100% 스위칭.