# 전략 개선 제안서 — 2026-06-05 > 상태: 적용 완료 (2026-06-06 사용자 승인) > 근거: 12거래일 / 168회 거래 > 증거 충분도: **부족 (30거래일 미만)** — 참고용, 적용 전 신중 검토 필요 --- ## 제안: SL cascade 진입 차단 룰 ### 현상 오늘(06-05) 09:20~09:49 사이 **8연속 손절**이 발생한 후에도 봇이 신규 진입을 계속했다. - 10:19:50 로그: `ENTRY warning: 11 stop losses in last 60 minutes` - 경고 직후(10:19:54) 한화생명 진입 → SL(-7,844원) 추가 현재 경고는 로그 출력만 하고 진입을 막지 않는다. AI 모델이 stop_loss=0.767을 예측했음에도 진입이 허용되어 추가 손실이 발생했다. 오늘 손실 구조: | 구간 | 손절 횟수 | 누적 손실 | |------|-----------|-----------| | 09:20~09:49 | 8회 | ~-92,845원 | | 09:52~11:25 | 4회 추가 | ~+~7,900원 추가 | ### 과거 데이터에서의 패턴 | 날짜 | SL 비율 | 특이사항 | |------|---------|----------| | 06-05 | 12/15 (80%) | 오전 8연속 SL | | 05-27 | 13/18 (72%) | 가장 큰 손실일 -247,022원 | | 05-21 | 9/17 (53%) | 수량 과다 초기 손실 | | 05-28 | 8/12 (67%) | SL 집중 | SL 비율 높은 날은 시장 자체가 하방 바이어스를 가진 날이었을 가능성이 높다. ### 제안 수정 `app/main.py`의 진입 체크 로직에 cascade halt 조건 추가: **제안 파라미터:** ```python # app/config.py 추가 CONSEC_SL_HALT_THRESHOLD = 5 # 60분 내 이 횟수 이상 SL 발생 시 신규 진입 중단 ``` **로직 변경 위치:** `app/main.py` — 진입 허가 체크 직전 ```python # 현재 (경고만) if recent_sl_count >= 11: logger.warning("ENTRY warning: %d stop losses in last 60 minutes", recent_sl_count) # 제안 (차단 추가) if recent_sl_count >= CONSEC_SL_HALT_THRESHOLD: logger.warning( "ENTRY blocked (cascade halt): %d SL in last 60 min — skip %s", recent_sl_count, ticker, ) continue # 진입 차단 ``` ### 임계값 선택 근거 - 5회: 12거래일 중 오늘과 05-27에서 명확히 초과됨. 정상 변동성 날에는 5회 초과가 드물었음 (미검증). - 11회 (현재 경고): 너무 늦음. 이미 대부분의 손실이 발생한 후. - 보수적 시작: 5회 threshold로 시작하여 false positive(정상 날 차단) 빈도 확인 후 조정. ### 예상 효과 오늘 기준: threshold=5 적용 시 09:36 이후 신규 진입 중단 가능 → 차단 가능 손실: 아리바이오랩(-6,303) + 디앤디파마텍(-5,947) + 이후 5건 → **약 +20,000원 손실 감소** (아주IB투자/코스모로보틱스 수익 기회 차단 포함) ### 리스크 - **False positive**: SL이 5회 이상 발생했지만 이후 시장이 회복되는 케이스에서 수익 기회 차단. - **임계값 민감도**: 너무 낮으면 정상 날에도 차단됨. 너무 높으면 효과 없음. - **샘플 부족**: 12거래일 데이터로 임계값 calibration이 어려움. - **단방향 차단**: cascade halt는 진입만 막고 기존 포지션에는 영향 없음. ### 검증 방법 적용 전 백테스트가 필요하나 현재 minute bar 데이터가 충분하지 않다. 대안: 로그 출력만 먼저 강화하고 (`ENTRY cascade-halt SKIP` 레벨로 기록), 1주일 관찰 후 실제 차단 적용. ### 적용 전 선행 조건 1. 30거래일 이상 운영 데이터 확보 후 threshold 재검토 2. 임계값=5 적용 시 과거 12거래일에서 정상 날에 몇 번 trigger되었을지 수동 확인 3. 사용자 수동 승인 --- ## 이전 미적용 제안 진행 상황 | 제안 | 날짜 | 상태 | |------|------|------| | TP2_PCT 2.5%→3.5% | 2026-06-02 | **미적용** — 오늘 TP2 도달 건 없어 영향 미측정 | | MAX_HOLD_MIN 90분 | 2026-06-02 | **적용됨** (config 확인: MAX_HOLD_MIN=90) | ### TP2_PCT 제안 재검토 오늘 TP1 도달 2건 중 TP2 도달은 없었다. 아주IB투자는 TIME으로 청산 — TP2 미도달. TP2 상향은 TP2 도달 빈도가 낮은 현재 시장 조건에서 효과 미미할 가능성. 우선순위: **SL cascade 차단 룰** > TP2_PCT 상향 --- ## 우선순위 정리 | 우선순위 | 제안 | 유형 | 긴급도 | |----------|------|------|--------| | 1 | SL cascade 진입 차단 (threshold=5) | 리스크 통제 | 높음 (오늘 피해 직접 대응) | | 2 | TP2_PCT 2.5%→3.5% | 수익 구조 | 보통 | 두 제안 모두 30거래일 미만 데이터이므로 1가지씩 단계적 적용 권장. 제안 1은 먼저 **observe 모드** (차단 없이 로그만) 1주일 운영 후 실제 차단 적용 검토.