fix: 수동 매도 즉시 반영 + 매도/매수 결과 토스트 + 당일 매도대금 가용현금 반영

- 프론트: 토스트 알림 시스템(lib/toast + ToastHost) 추가, 매도/매수 성공·실패를 화면에 표시
  (기존엔 console.log만, 실패는 블로킹 alert). 성공 토스트에 손익 표시.
- 매도 직후 예수금/평가액 요약 즉시 갱신(apply_sell), 최근 5분 내 수동 매도 종목은
  KIS 잔고 반영 지연으로 동기화가 되살리지 않도록 스킵(recent_sells).
- 예수금이 D+2 결제 기준(dnca_tot_amt)이라 당일 매도대금이 화면·데이트레이딩 가용현금에
  반영되지 않던 문제: 매수가능조회(inquire-psbl-order) ord_psbl_cash 를 우선 사용.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-22 14:40:39 +09:00
parent e0178aaf0d
commit 496529782b
9 changed files with 181 additions and 12 deletions

View File

@@ -282,6 +282,10 @@ async def scan_and_enter() -> list[dict]:
summary = (balance.get("output2") or [{}])[0]
total_assets = float(summary.get("tot_evlu_amt", 0) or 0)
available_cash = float(summary.get("prvs_rcdl_excc_amt", 0) or 0)
# 당일 매도대금 재사용 가능 — 주문가능현금이 조회되면 우선 사용
_buyable = await korea_investment_api.get_buyable_cash()
if _buyable > 0:
available_cash = _buyable
day_trading_state.last_total_assets = total_assets
except Exception as e:
logger.debug(f"[DayEntry] 잔고 조회 실패: {e}")