feat(Core/UI): 백테스트 전역 엔진 선택 버튼 추가 및 스캘핑 Rust 방어로직 포팅 1차 완료

This commit is contained in:
Your Name
2026-09-03 02:49:14 +09:00
parent ac1190f1fc
commit 3b7c21cde4
316 changed files with 56952 additions and 1 deletions

38
scratch/explain_heavy.py Normal file
View File

@@ -0,0 +1,38 @@
import sys
sys.path.insert(0, '/home/hoon/kis_bot')
from database import TradeDB
db = TradeDB()
today = '20260813'
queries = [
# 1. KIS vs Kiwoom 교집합 (heavy 쿼리 예상)
f"""
EXPLAIN SELECT
k.code,
k.n AS kis_n,
w.n AS kiwoom_n,
ROUND(w.n / NULLIF(k.n, 0), 3) AS ratio_kw_over_kis
FROM (
SELECT code, COUNT(*) n FROM ws_ticks
WHERE tick_time LIKE '{today}%' AND source='kis' GROUP BY code
) k
INNER JOIN (
SELECT code, COUNT(*) n FROM ws_ticks
WHERE tick_time LIKE '{today}%' AND source='kiwoom' GROUP BY code
) w ON k.code = w.code
""",
# 2. filter_eval 종목 교집합 등
f"EXPLAIN SELECT code, COUNT(*) n FROM ws_orderbook WHERE snap_time LIKE '{today}%' AND source='filter_eval' GROUP BY code"
]
for q in queries:
print(f"\n--- Query: {q} ---")
try:
rows = db.conn.execute(q).fetchall()
for r in rows:
print(dict(r))
except Exception as e:
print("Error:", e)
db.close()