---
description: HTS=SCAN 유니버스만 — TRIGGER/그리드는 HTS와 동일 조건 중복 필터 금지
alwaysApply: true
---

# HTS 조건식 vs 코드·그리드 (정정)

**HTS에 그리드/TRIGGER를 “맞출” 필요 없다.**  
조건검색이 이미 후보를 걸렀으므로, 코드·Optuna에서 **같은 축을 또 거르지 않는다.**

## 역할 분리

| 단계 | 역할 |
|------|------|
| **HTS (SCAN)** | 유니버스·후보 풀. 일봉/조건식 숫자로 1차 선별 |
| **코드 TRIGGER** | HTS와 **다른** 타점·청산·호가·리스크 (중복 재필터 금지) |
| **Optuna 그리드** | TRIGGER/청산/포트 축 탐색. **HTS 밴드 재현이 목적 아님** |

## 하지 말 것

- HTS 등락 3~10% / vol 150% / min_price 2000 등을 **그리드에 넣어야 한다**고 강제하지 말 것
- “HTS와 안 맞는다”며 fast 그리드를 HTS 숫자로 채우지 말 것
- SCAN에서 이미 통과한 종목에 TRIGGER에서 **동일 의미의 일봉 조건**을 다시 적용하지 말 것 (의도적 이중필터가 아니면)

## 해도 되는 것

- HTS 원본은 **문서·운영 참고**로만 유지 (아래 표)
- TRIGGER는 분봉·호가·ATR·어깨·트레일·RSI 등 **타점/청산** 축
- 실매 DB ↔ 웹백테 ↔ Optuna **동일 엔진** 정합(항목 15)은 그대로. 그건 HTS 복제가 아님

## `*_SKIP_HTS_SCAN_DUPES` — 기본 false 유지

| 키 | 운영 기본 |
|----|-----------|
| `TAIL_SKIP_HTS_SCAN_DUPES` | **false** |
| `MOMENTUM_SKIP_HTS_SCAN_DUPES` | **false** |
| `BREAKOUT_SKIP_HTS_SCAN_DUPES` | **false** / `0` |
| `SCALP_SKIP_HTS_SCAN_DUPES` | **false** / `0` |

- **false**: TRIGGER에서 HTS와 겹칠 수 있는 축도 검사 (현재 운영값).
- **true**: HTS SCAN 중복 필터 스킵.
- 사용자가 **명시적으로** true/변경을 말하지 않으면 **false 유지**. 임의로 true로 바꾸거나 “철학상 true가 맞다”며 DB/기본값을 고치지 말 것.
- Optuna 그리드에 `[True, False]` 스윕이 있어도, **실매·웹 기본값/DB 적용**은 사용자 지시 없이 false 유지.

## 주말 종목수

주말 HTS 후보 증가 ≠ 시장 호전 (이탈 없음). 그리드 이슈와 무관.

---

## 참고: 현재 HTS 원본 (SCAN 전용, 그리드 강제 아님)

### 돌파
- 종가 1000~200000 · 5봉평균 대비 ≥150% · 전일고가 상향돌파 · 등락 3~10%

### 꼬리 — (A∨G)∧B∧D∧E∧F
- A [일] 시가→종가 -10~-0.5% · G [1분] 직전종가→종가 -10~-0.5%
- B 체결강도 85~400% · D 3봉전 대비 150~2000% · E 종가 1000~200000
- F [일] 저가→종가 1~8%

### 모멘텀
- 전시가 상향돌파 · 종가 1000~200000 · ≥105% · 거래량증감 상위 350

### 스캘핑
- 시가→저가 -8~-1.5% · 저가→종가 2~12% · 5분평균 대비 1분 ≥1.5배 · 1봉 연속증가
