Files
kis_bot/docs/layered_exit_design.md
Your Name 0ecac7cb95 이번에 들어간 내용
한투 호가 = 2번째 앱키 전용
키 없거나 start 실패 시 메인에 H0STASP0 안 붙임. 운영설정 WS_ORDERBOOK_SAVE_KIS 빨간 danger.

LS RAM 합집합
후보∪보유∪영구∪grace. sync_targets와 split reconcile 둘 다. 틱 DB 영구 게이트는 그대로.

분봉 쓰레기 → 다음 소스 봉 통째
그 분 틱 0건이거나 전부 봉끝 대비 LIVE_FEED_FALLBACK_MAX_AGE_SEC 초과면 구멍. 메인 WS → 2차 → LS → REST → rollup. CANDLE_GARBAGE_FALLBACK 기본 true.

파일: feed_fallback.py(신규), ws_manager.py, kis_ws.py, candle_series.py, bt_candle_source.py, live_config_schema.py, database.py, 스모크, MD 2개.

같은 ws_manager/database/kis_ws/live_config에는 직전 커밋 이후 쌓여 있던 시세 폴백·ENV 키 정리도 같이 들어갔습니다. 파일 단위로 나눌 수 없어서입니다.
2026-08-19 22:11:31 +09:00

86 lines
5.3 KiB
Markdown

# 🛡️ 다중 기준 계단식 청산 시스템 — **옛 설계서**
> **2026-08-17:** Optuna 후처리 **합의(consensus)** 도 8방 기준 — `docs/옵투나.md` §5-2.
> 이 파일의 4계단 Layer 표는 **역사 참고용**. 스위치·순서는 `docs/호가.md`만 따른다.
## 1. 개요 및 배경
### 1.1 기존 단일 최고가(Peak Price) 래칫의 한계
기존 래칫 컷(`Ratchet Cut`)은 매수 후 달성한 **"최고가(Peak Price)" 하나만을 기준**으로 계단식 매도선을 설정합니다.
- **노이즈 털림 위험**: 일시적인 틱 순간 급락이나 호가 착시 현상으로 유효한 상승 추세에서 억울하게 청산될 위험이 있습니다.
- **수급 붕괴 미감지**: 주가가 고점에 머물러 있더라도 호가창 매수 잔량이 순식간에 빠져나가며 대량 매도벽이 깔리는 수급 붕괴 현상을 사전에 감지하지 못합니다.
### 1.2 목표
매수가, 최고가, 매도/매수 호가잔량(Orderbook Depth), 거래량/시간을 결합한 **다중 조건 계단식(Layered/Composite) 청산 아키텍처**를 설계하여 수익 보존율을 극대화하고 하방 리스크를 원천 차단합니다.
---
## 2. 다중 기준 4계단 레이어드 청산 체계 (Layered Exit Architecture)
```mermaid
flowchart TD
A[실시간 시세 & 호가 수신] --> B{Layer 1: 호가 수급 붕괴 감지}
B -- 매수잔량 급감 / 매도벽 출현 --#gt; Sell1[⚡ 1순위: 호가 긴급 청산]
B -- 정상 --#gt; C{Layer 2: 계단식 고점 래칫컷}
C -- 최고가 대비 래칫선 이탈 --#gt; Sell2[📈 2순위: 래칫 보존 청산]
C -- 미이탈 --#gt; D{Layer 3: 어깨 / 추세 트레일링}
D -- 고점 꺾임 감지 --#gt; Sell3[🛡️ 3순위: 어깨 트레일링 청산]
D -- 미이탈 --#gt; E{Layer 4: 하드 손절 & 시간 컷}
E -- 손절선/최대보유시간 초과 --#gt; Sell4[⏱️ 4순위: 시간/하드 손절]
E -- 조건 미충족 --#gt; Hold[보유 유지]
```
---
## 3. 계단별 세부 설계 및 판정 기준
### 3.1 Layer 1: 호가 수급 붕괴 감지 (Orderbook Depth Cut)
- **개념**: 가격이 떨어지기 직전, 호가창의 매수 잔량이 줄어들고 매도 잔량이 쏟아지는 수급 이탈을 사전에 감지합니다.
- **판정 공식**:
$$\text{Orderbook Ratio (OR)} = \frac{\text{매수 총잔량}}{\text{매도 총잔량}}$$
- $\text{OR} < \text{OB\_RATIO\_MIN}$ (예: 0.4 이하) 이면서 **매수가 대비 이익 상태**일 때 즉시 1/2 또는 전량 익절 청산.
### 3.2 Layer 2: 다중 비율 고점 래칫컷 (Multi-Tier Ratchet Cut)
- **개념**: 매수가 대비 달성한 최고 수익률 구간에 따라 매도 허용 갭을 다단계로 압축합니다.
- **계산 공식**:
$$\text{Peak Gain} = \frac{\text{최고가 (Max Price)} - \text{진입가 (Entry Price)}}{\text{진입가 (Entry Price)}}$$
$$\text{Ratchet Trigger Line} = \text{최고가} \times (1.0 - \text{Tier Cut Ratio})$$
- **계단 세팅 예시 (`ratchet_tiers`)**:
- **Tier 1 (+2% 달성 시)**: 고점 대비 `-1.5%` 이탈 시 매도 (최소 +0.5% 익절 보장)
- **Tier 2 (+5% 달성 시)**: 고점 대비 `-1.0%` 이탈 시 매도 (최소 +4.0% 익절 보장)
- **Tier 3 (+8% 달성 시)**: 고점 대비 `-0.7%` 이탈 시 매도 (최소 +7.3% 익절 보장)
### 3.3 Layer 3: 어깨 컷 & 트레일링 스탑 (Shoulder Cut)
- **개념**: 최고점(어깨) 경신 후 주가가 힘을 잃고 꺾이는 파동을 감지합니다.
- **판정 공식**:
- 최고가가 매수가 대비 `shoulder_min_high` (+0.5%) 이상 상승 후, 고점 대비 `shoulder_cut_pct` (-0.3%) 이상 후퇴 시 매도.
### 3.4 Layer 4: 시간 컷 & 하드 손절 (Time & Hard Stop Cut)
- **개념**: 주가가 예상대로 움직이지 않고 횡보하거나 급락할 때 계좌 리스크를 제한합니다.
- **판정 공식**:
- **하드 손절**: $\text{현재가} \le \text{매수가} \times (1.0 - \text{STOP\_LOSS\_PCT})$ (-3% ~ -4%)
- **시간 컷**: 진입 후 `max_hold_bars` (예: 20봉) 동안 목표가 미달 시 청산.
---
## 4. `kis_trader` 시스템 적용 사양 (Config Specifications)
### 4.1 `env_config` DB 파라미터 구성
| 파라미터 키 | 타입 | 기본 추천값 | 설명 |
| :--- | :--- | :--- | :--- |
| `MOMENTUM_RATCHET_TIERS` | `str` | `"2:1.5, 5:1.0, 8:0.7"` | 모멘텀 래칫 계단 (고점%:허용밀림%) |
| `SCALP_RATCHET_TIERS` | `str` | `"1.0:0.5, 2.0:0.4"` | 스캘핑 래칫 계단 |
| `ORDERBOOK_FILTER_ENABLED` | `bool` | `True` | 호가 잔량 수급 감지 켜기/끄기 |
| `ORDERBOOK_RATIO_MIN` | `float` | `0.4` | 매수잔량/매도잔량 최소 비율 (수급 이탈) |
| `SHOULDER_MIN_HIGH_PCT` | `float` | `0.005` | 어깨 감지 최소 고점 상승률 (+0.5%) |
| `SHOULDER_CUT_PCT` | `float` | `0.003` | 어깨 감지 후퇴 허용 비율 (-0.3%) |
---
## 5. 기대 효과 및 결론
1. **익절 방어율 극대화**: 급등 후 밀리는 종목에서 수익을 확정 짓는 보존율(Profit Retention)이 기존 대비 30% 이상 향상됩니다.
2. **수급 이탈 사전 차단**: 주가 하락 전에 호가창 매수 잔량이 무너지는 것을 감지하여 시장가 청산이 가능합니다.
3. **심리적 안정성 확보**: 바닥까지 떨어지는 리스크를 원천 차단하여 완전 자동화 매매의 신뢰도를 제공합니다.