2.0 KiB
2.0 KiB
실매매 슬리피지(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_tradesINSERT/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
- 이전:
- 변경된 공식으로 계산된 슬리피지는 "주문을 넣으려던 호가 대비 실제 체결가가 얼마나 밀렸는지(혹은 유리하게 잡혔는지)"를 정확히 대변하게 됩니다.
- 프론트엔드의 툴팁과 안내 문구를 "주문 당시 호가 대비 체결 밀림 현상"으로 갱신.