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:
@@ -238,7 +238,20 @@ class MDDManager:
|
||||
)
|
||||
if order_resp and order_resp.get("rt_cd") == "0":
|
||||
order_id = order_resp.get("output", {}).get("ODNO", "")
|
||||
profit_loss = (current_price - float(h.get("pchs_avg_pric", current_price))) * sell_qty
|
||||
avg_price = float(h.get("pchs_avg_pric", current_price))
|
||||
profit_loss = (current_price - avg_price) * sell_qty
|
||||
profit_loss_rate = ((current_price - avg_price) / avg_price * 100) if avg_price > 0 else 0.0
|
||||
|
||||
# [BUG FIX] loss_tracker 기록 — MDD 강제매도도 연속 손실 추적 대상
|
||||
try:
|
||||
from app.services.loss_tracker import loss_tracker
|
||||
is_loss = profit_loss_rate < 0
|
||||
await loss_tracker.record_trade_result_safe(
|
||||
stock_code, is_loss
|
||||
)
|
||||
await loss_tracker.save_to_db(stock_code=stock_code)
|
||||
except Exception as lt_err:
|
||||
logger.warning(f"[MDD] loss_tracker 기록 실패 ({stock_code}): {lt_err}")
|
||||
|
||||
await enqueue_trade_history({
|
||||
"stock_code": stock_code,
|
||||
|
||||
Reference in New Issue
Block a user