feat: 실시간 슬리피지 모니터링(UI/백엔드) 적용 및 Rust 엔진 포팅 Phase 1 셋업
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user