2.7 KiB
2.7 KiB
전략 제안서 — 2026-06-15
요약
진입 시점에 현재가가 목표가(TP)를 이미 초과한 경우 진입을 차단하는 필터 추가.
수동 승인 필수.
관찰된 문제
오늘(2026-06-15) 삼성전자(005930)가 두 차례 진입됐으나 두 번 모두 목표가(334,000)가 진입가(340,000 / 338,500)보다 낮았다.
| 진입 | 진입가 | 목표가(TP) | 차이 | 결과 |
|---|---|---|---|---|
| 1차 09:20 | 340,000 | 334,000 | -6,000 | TIME -21,681원 |
| 2차 11:51 | 338,500 | 334,000 | -4,500 | TIME -1,422원 |
원인: 변동성 돌파 목표가는 전일 종가 기준으로 계산되는데, 삼성전자가 개장 시 갭업하여 목표가를 이미 상회한 가격에 진입 트리거가 발동했다.
이 구조에서는 TP 달성이 원천 불가능하다. TIME 또는 SL 청산만 남는다.
제안 내용
진입 차단 조건 추가
check_entry() 내부에 다음 조건을 hard gate로 추가:
# 현재가가 TP1 목표가 이상이면 진입 차단 (갭업 후 목표가 무효화)
if current_price >= tp_target:
return False, f"현재가({current_price:,})가 목표가({tp_target:,}) 이상 — 진입 차단"
적용 위치: app/strategy/volatility_breakout.py — check_entry() 함수 내
진입 조건 검사 직전.
기대 효과
- 오늘 기준: 삼성전자 2건(-23,103원) 방어 가능.
- 갭업 종목이 TP를 이미 소화한 상태로 진입하는 구조적 실수 차단.
- SL/TIME 낭비 거래 제거 → R:R 개선.
위험 및 주의사항
- TP 목표가 계산 로직이 정확해야 필터가 올바르게 동작한다.
(
tp_target이 진입 가능 구간 안에 있을 때만 진입하는 원래 의도와 동일.) - 극히 드문 케이스: 목표가 재계산(장중 업데이트) 여부 확인 필요. 현재 구현이 고정 목표가라면 문제없음; 장중 재계산이 있다면 로직 검토 추가 필요.
- 샘플: 오늘 2건 관찰. 통계적 근거로는 부족하나, 이는 파라미터 조정이 아니라 논리적 버그 수정에 해당하므로 소량 샘플로도 충분히 정당화됨.
증거
| 날짜 | 티커 | 진입가 | 목표가 | 차이 | 손익 |
|---|---|---|---|---|---|
| 2026-06-15 | 삼성전자(005930) 1차 | 340,000 | 334,000 | -6,000 | -21,681원 |
| 2026-06-15 | 삼성전자(005930) 2차 | 338,500 | 334,000 | -4,500 | -1,422원 |
승인 조건
volatility_breakout.py내tp_target변수가 진입 시점에 접근 가능한지 확인.- 장중 목표가 재계산 여부 확인.
- 수동 코드 검토 후 적용.
FORCE_EXIT = "14:50" 변경 없음. SL 우선순위 변경 없음.