fix: 전체 회의 CRITICAL 6건 수정 — 손절/리스크/성과/인프라
1. trade_executor: 손절값 -6.0 하드코딩 → -settings.STOP_LOSS_PERCENT (7%) 2. mdd_manager: MDD 강제매도 시 loss_tracker 호출 추가 3. risk_validator, day_trading: 가격필터 < → <= (5,000원 정확히 차단) 4. daytrading/entry_service: 글로벌 자본 사용률(95%) 가드 추가 5. trade_analyzer: 수익률 0%를 손실에서 제외 (< 0으로 변경) 6. db_worker: 종료 시 큐 drain + DLQ 백업으로 데이터 유실 방지 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -261,6 +261,21 @@ async def scan_and_enter() -> list[dict]:
|
||||
if total_assets <= 0:
|
||||
return entries
|
||||
|
||||
# [BUG FIX] 글로벌 자본 사용률 가드 — 전체 포트폴리오 투자액이 MAX_TOTAL_CAPITAL_USAGE 초과 시 진입 차단
|
||||
total_invested = sum(
|
||||
pos.get("entry_price", 0) * pos.get("quantity", 0)
|
||||
for pos in day_trading_state.positions.values()
|
||||
)
|
||||
# 스윙 포트폴리오 투자액도 합산 (잔고 조회에서 available_cash로 간접 계산)
|
||||
swing_invested = total_assets - available_cash - total_invested
|
||||
all_invested = max(0, total_invested + swing_invested)
|
||||
if total_assets > 0 and all_invested / total_assets > settings.MAX_TOTAL_CAPITAL_USAGE:
|
||||
logger.warning(
|
||||
f"[DayEntry] 전체 자본 사용률 초과: {all_invested/total_assets:.1%} > "
|
||||
f"{settings.MAX_TOTAL_CAPITAL_USAGE:.0%} — 신규 진입 차단"
|
||||
)
|
||||
return entries
|
||||
|
||||
scanned = 0
|
||||
skipped_held = 0
|
||||
skipped_closed = 0
|
||||
|
||||
Reference in New Issue
Block a user