feat: 실시간 슬리피지 모니터링(UI/백엔드) 적용 및 Rust 엔진 포팅 Phase 1 셋업

This commit is contained in:
Your Name
2026-09-02 22:12:17 +09:00
parent 253c95e2c2
commit 93c6f711fa
9 changed files with 124 additions and 2 deletions

View File

@@ -1426,9 +1426,29 @@ def _build_feed_collect_stats_inner(
max_age_sec=max_age,
),
]
try:
slip_rows = db.conn.execute(
"SELECT avg_buy_price, target_price FROM active_trades WHERE buy_date >= %s",
(f"{day8[:4]}-{day8[4:6]}-{day8[6:8]} 00:00:00",)
).fetchall()
slips = []
for r in slip_rows:
r = dict(r)
bp = float(r.get("avg_buy_price") or 0)
tp = float(r.get("target_price") or 0)
if tp > 0 and bp > 0:
slips.append((bp - tp) / tp * 100.0)
avg_slippage = round(sum(slips) / len(slips), 3) if slips else None
slippage_count = len(slips)
except Exception as e:
avg_slippage = None
slippage_count = 0
vendor_matrix = {
"day8": day8,
"day": f"{day8[:4]}-{day8[4:6]}-{day8[6:8]}",
"avg_slippage_pct": avg_slippage,
"slippage_count": slippage_count,
"vendors": [
_pack_vendor(
"kis",