Skip to content

fix: 바스켓 계정 자본 중앙 해석 — 주문 리스크 가드 분모 오류 수복#449

Merged
easygap merged 1 commit into
mainfrom
fix/basket-capital-resolution
Jul 7, 2026
Merged

fix: 바스켓 계정 자본 중앙 해석 — 주문 리스크 가드 분모 오류 수복#449
easygap merged 1 commit into
mainfrom
fix/basket-capital-resolution

Conversation

@easygap

@easygap easygap commented Jul 7, 2026

Copy link
Copy Markdown
Owner

무엇

6차 점검 — 8/1 입금 흐름을 격리 DB에서 실코드 E2E로 실행하다 발견한 리스크 가드 결함 수복.

E2E 결과 (먼저 좋은 소식)

격리 DB + 실시세로 전 구간 PASS: 첫 매수(1주) → 10만 입금 시 TWR 불변(-0.04% 유지, 입금≠수익) → 잔고 40만에서 매수 보류(부족분 < 1주, 0주문) → 52만에서 1주 흡수(BUY). 5차의 수치 분석이 실코드로 확인됐습니다.

발견된 결함

E2E 로그에서 포착: 주문 리스크 가드(_drawdown_pre_order_check — MDD·일일 손실 한도로 신규 BUY 차단)가 PortfolioManageraccount_key만으로 열어 전역 자본(10M)으로 폴백 → 30만 kr_pocket의 총평가가 10.4M로 오산되어 손실 한도가 사실상 무력화. #426이 평가기의 바스켓별 자본은 고쳤지만 이 폴백은 남아 있었습니다. paper에선 조용하지만 live 전환 시 리스크 가드 구멍이 됩니다.

수정

PortfolioManager.__init__basket_rebalance:<name> 계정 키면 baskets.yaml의 바스켓별 initial_capital중앙 해석(지연 임포트로 순환 참조 회피, 실패 시 기존 폴백 유지) — account_key만으로 이 계정을 여는 현재·미래 호출부를 일괄 커버. 명시 인자·비바스켓 키는 기존 동작 그대로.

검증

  • 격리 DB 실측: 가드 경로 PM 자본 300,000 · 총평가 519,981 (이전 10.4M) 정상화
  • 회귀 4케이스(바스켓 키 해석/미존재 폴백/비바스켓 불변/명시 인자 우선)
  • 전체 스위트 1660 통과

6차 점검: 8/1 입금 흐름을 격리 DB에서 실코드 E2E로 실행하다 발견.
주문 리스크 가드(_drawdown_pre_order_check — MDD·일일 손실 한도로 신규
BUY 차단)가 PortfolioManager를 account_key만으로 열어 전역 자본(10M)으로
폴백 → 30만 kr_pocket의 총평가가 10.4M로 오산돼 손실 한도가 사실상
무력화되던 결함. #426이 평가기의 바스켓별 자본은 고쳤지만 이 폴백은
남아 있었다. paper에선 조용하지만 live 전환 시 리스크 가드 구멍이 된다.

수정: PortfolioManager.__init__이 basket_rebalance:<name> 계정 키면
baskets.yaml의 바스켓별 initial_capital을 중앙 해석(지연 임포트로 순환
참조 회피, 해석 실패 시 기존 전역 폴백 유지) — account_key만으로 이
계정을 여는 현재·미래 호출부(주문 가드, live 동기화 등)를 일괄 커버.
명시 인자·비바스켓 키는 기존 동작 그대로(테스트 고정).

검증: 격리 DB 실측 — 가드 경로 PM 자본 300,000·총평가 519,981(이전
10.4M) 정상화. E2E(입금 중화·40만 보류·52만 흡수)도 실코드 PASS.
회귀 4케이스 + 전체 스위트 1660 통과.
@easygap easygap merged commit de6efe2 into main Jul 7, 2026
1 check passed
@easygap easygap deleted the fix/basket-capital-resolution branch July 7, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant