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

85 lines
3.2 KiB
Markdown

# 전략 제안 — 2026-06-22
## 제안 요약
**오픈 갱 SL 직후 재진입 쿨다운 (Entry Cooldown After Open-Gang SL)**
> 증거 불충분 경고: 현재 운영 10거래일 / 기준 30거래일.
> 이 제안은 관찰 결과 기록 목적이며, 수동 승인 없이 코드에 반영하지 말 것.
## 문제 현상
2026-06-22 결산 기준:
- 09:20:14 에스에이엠티 진입 → 09:22:15 SL (2분 보유, -47,530원)
- 09:22:41 아이로보틱스 재진입 (SL 이후 **26초** 경과) → 09:24:52 SL (-59,843원)
- 오전 2건 합산 -107,373원 = 오늘 전체 손실 110,271원의 **97%**
현재 L3-B 배율 조정은 연속 SL 2회 이후 3번째 진입부터 0.5x가 적용된다.
즉, SL 직후 26초 만에 새 종목으로 즉시 재진입하는 동작을 막는 장치가 없다.
유사 사례:
- 2026-06-18: 3회 연속 SL로 -50,524원 손실 기록.
- 오픈 갱 시간대 연속 SL이 최대 손실 구간과 반복적으로 겹침.
## 제안 내용
### 방안 A: SL 후 단기 쿨다운 (권장)
SL 청산 후 일정 시간 동안 새 진입 차단.
| 제안값 | 설명 |
|---|---|
| `ENTRY_COOLDOWN_AFTER_SL_SEC = 300` | SL 청산 후 5분간 신규 진입 금지 |
| 적용 조건 | 손절(SL) 청산 직후에만 적용. TP/TIME/FORCE 청산은 제외 |
| 범위 | 전 시간대 적용 (오픈 갱에 특히 효과적) |
- 오늘 시나리오: 09:22:15 SL → 쿨다운 → 09:27:15 이후부터 진입 허용
→ 아이로보틱스 09:22:41 진입 차단됨 → -59,843원 회피 가능성
### 방안 B: 오픈 갱 구간 진입 한도 강화 (보완)
09:20~09:30 구간에서 SL 1회 발생 시 해당 구간 신규 진입 중단.
| 제안값 | 설명 |
|---|---|
| `OPEN_GANG_END = "09:30"` | 오픈 갱 구간 종료 시각 |
| `OPEN_GANG_MAX_SL = 1` | 오픈 갱 구간 내 SL 1회 시 해당 구간 진입 종료 |
- 기존 `ENTRY_START = "09:20"` 유지, 구간 내 SL 후 다음 진입은 09:30 이후.
## 예상 효과
- 오늘 시나리오에서 -59,843원 손실 회피 가능 (이론적).
- 오픈 갱 변동성 집중 구간에서 연속 손절 규모 제한.
- 단점: 오픈 갱에서 회복 흐름이 나왔을 때 진입 기회 일부 손실 가능.
## 리스크 및 반론
- 표본 2건(2026-06-22, 2026-06-18)으로 인과관계 주장 불충분.
- 오픈 갱 SL 후 즉시 회복하여 수익으로 이어지는 케이스도 존재할 수 있음.
- 쿨다운이 너무 짧으면 효과 없고, 너무 길면 수익 기회 손실.
- 300초(5분)는 임의값 — 최소 30거래일 데이터로 최적화 필요.
## 승인 조건
- 30거래일 이상 운영 후 오픈 갱 SL 패턴 재검토.
- 10거래일 이상의 백테스트 또는 데이터 분석으로 쿨다운 300초의 실효성 검증.
- 수동 코드 수정 및 `.env` 변경 승인 필요.
## 구현 위치 (참고용, 미승인)
```python
# app/config.py 에 추가 (승인 후)
ENTRY_COOLDOWN_AFTER_SL_SEC = 300 # SL 후 재진입 쿨다운(초)
# app/strategy/volatility_breakout.py check_entry() 에 추가 (승인 후)
# last_sl_time이 있고 현재시각 - last_sl_time < ENTRY_COOLDOWN_AFTER_SL_SEC이면 차단
```
## 상태
- [ ] 수동 승인 대기
- [ ] 30거래일 데이터 충족 대기
- [ ] 코드 구현 미완료