Files
Stock-trading-programming/reports/proposals/2026-06-15_strategy_proposal.md
T

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.pycheck_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.pytp_target 변수가 진입 시점에 접근 가능한지 확인.
  • 장중 목표가 재계산 여부 확인.
  • 수동 코드 검토 후 적용.

FORCE_EXIT = "14:50" 변경 없음. SL 우선순위 변경 없음.