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

@@ -0,0 +1,23 @@
# 실매매 슬리피지(Slippage) 정확도 개선 요건
현재 백테스트 웹 모니터링에서 제공하는 슬리피지(Slippage) 수치는 `target_price`(수익 실현 목표가)를 기준으로 계산되어 실제 호가 괴리율을 대변하지 못하는 문제가 있습니다.
이를 해결하고 정확한 슬리피지를 추적하기 위해 다음 개선 작업이 필요합니다.
## 1. DB 스키마 개선
- **`active_trades` 테이블**: 매수 주문 생성 당시의 "주문 의도 가격"을 저장할 `order_intent_price` (또는 `entry_intent_price`) 컬럼을 FLOAT 형태로 추가.
- **`trade_history` 테이블**: 위와 동일하게 `order_intent_price` 컬럼을 추가.
## 2. 실매매 봇 엔진 수정 (Order Flow)
- 주문 모듈(예: `kis_order.py` 또는 `order_worker.py`)에서 시장가(IOC/FOK) 매수 주문을 KIS API로 쏘는 바로 그 시점의 **1호가 매도 잔량 가격(또는 최우선 매수 기준가)**을 포착.
- 해당 가격을 DB `active_trades` INSERT/UPDATE 시 `order_intent_price`에 기록.
- (기존 `target_price`는 순수한 '익절 목표가' 용도로만 유지)
## 3. 청산 모듈 (Trade History 이관)
- `database.py``close_trade` 함수에서 `active_trades`의 데이터를 `trade_history`로 옮겨 담을 때, `order_intent_price` 값도 함께 복사(INSERT)되도록 쿼리 수정.
## 4. 백테스트 웹 API 및 프론트엔드 연동
- `backtest_web.py``api_actual``feed_collect_stats.py`에서 슬리피지 계산 공식을 변경:
- **이전**: `(buy_price - target_price) / target_price * 100`
- **변경**: `(buy_price - order_intent_price) / order_intent_price * 100`
- 변경된 공식으로 계산된 슬리피지는 "주문을 넣으려던 호가 대비 실제 체결가가 얼마나 밀렸는지(혹은 유리하게 잡혔는지)"를 정확히 대변하게 됩니다.
- 프론트엔드의 툴팁과 안내 문구를 "주문 당시 호가 대비 체결 밀림 현상"으로 갱신.