Files
Bithumb/docs/reference/GROUND_TRUTH.md
xavis d7848df6f7 refactor: GT·시뮬·운영 3축 정리 및 hybrid 실거래 정합
Phase C/dry-run·미사용 모듈·재생성 HTML을 제거하고, 운영 체결을
sim_causal_hybrid와 동일한 hybrid 로직으로 통합한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 23:50:28 +09:00

3.1 KiB
Raw Blame History

Ground Truth (정답 타점)

설계: ARCHITECTURE.mdGround Truth 축.

1년(기본 CHART_LOOKBACK_DAYS=365) 3분봉에서 사후 최적 스윙 매수·매도 라벨.
미래 데이터 허용 (ZigZag). Simulation·Operations에는 oracle을 직접 쓰지 않습니다.

JSON 필드 model에 타점·비중·자본 배분 규칙이 일반화되어 있습니다 (deepcoin/ground_truth/gt_model.py).

Plan — 타점 구조 (일반화)

Leg (라운드트립 구간)

  • leg_id: 이전 고점 매도 시각 ~ 다음 고점 매도 직전까지.
  • 마지막 구간: 마지막 major peak 이후 ~ 기간 말 → 기간말 leg (종가 청산 1회).

매수 타점 (Entry)

항목 규칙
피벗 ZigZag 저점(trough), GT_BUY_MIN_SWING_PCT
가격 해당 봉 Low
후보 leg 구간 내 trough, GT_BUY_MIN_BARS 간격, BB (bb_pos <= GT_BUY_BB_MAX)
비중 weight w_i = (1/price_i) / Σ(1/price_j)저가일수록 큰 비중
leg당 상한 GT_MAX_BUYS_PER_LEG (초과 시 저가 순 유지)

매도 타점 (Exit)

항목 규칙
피벗 major swing 고점(peak)
가격 해당 봉 High
비중 weight 1회 매도: 100% · 2회 분할: 65% + 35% (GT_SELL_SPLIT_GAP_PCT)
수량 leg 보유 수량 × 매도 비중 (마지막 매도 = leg 전량)

Do — 자본 배분 (amount_krw)

시각순 체결. 매도 후 현금이 다음 매수에 반영됩니다.

총보유자산 = 현금 + 보유×체결가
최적매수율 = (이번 weight / leg 남은 weight 합) × leg티어스케일
목표매수액 = 총보유자산 × 최적매수율
실제매수액 = min(목표, 가용현금/(1+수수료)), 최소 GT_MIN_ORDER_KRW
leg 티어 조건 스케일 (.env)
대형 leg 수익률 상위 GT_LARGE_LEG_TOP_PCT GT_BUY_PCT_LARGE_LEG (기본 1.0)
소형 그 외 GT_BUY_PCT_SMALL_LEG (기본 0.05)

summary.pnl_pct: 위 배분으로 시각순 시뮬 + 기간말 종가 평가.

JSON 저장 순서: leg별 매수 전량 → 매도 전량 (leg_block, 차트·테이블 정합).

실행

python scripts/02_ground_truth.py    # ground_truth_trades.json (+ model)
python scripts/05_chart_truth.py     # HTML 차트

Check — 주요 환경 변수

변수 기본 설명
GT_MIN_SWING_PCT 4.0 매도 피벗 ZigZag(%)
GT_BUY_MIN_SWING_PCT 3.0 매수 피벗 ZigZag(%)
GT_PIVOT_ORDER 20 국소 극값 반경
GT_MIN_BARS_BETWEEN 30 체결 최소 간격(봉)
GT_MIN_LEG_PCT 8.0 major leg 최소 수익(%)
GT_BUY_PCT_LARGE_LEG 1.0 상위 leg 총자산 배분 스케일
GT_BUY_PCT_SMALL_LEG 0.05 소형 leg 스케일
GT_LARGE_LEG_TOP_PCT 0.2 대형 leg 상위 비율
GT_MIN_ORDER_KRW 5000 최소 체결 원화

Act

  • JSON·model 수정 후 02 / 05 재실행
  • 시뮬 비교: 04_simulation_report.py (GT vs 시뮬·총자산% vs 고정 ₩/회)