# 로고스(Logos) 매매 타점 전략 설계 BB predicate 탐색(`discovered_rules`)과 **분리**된, 차트 구조·추세·과열을 우선하는 **3분 현물** 전략입니다. 수동 타점(`logos_trades.json`)은 이 전략의 **교사 데이터(벤치마크)** 로 사용합니다. --- ## Plan (계획) ### 목적 - **저점 근처 매수**, **고점·과열에서 매도**, **추격 매수·바닥 매도**를 시스템적으로 배제한다. - 3분봉 실행, 1시간·일봉으로 **방향 필터**만 거는 MTF 구조를 유지한다. - 체결은 **엣지(전환) 1회** + **쿨다운·최소 봉 간격**으로 휩소를 줄인다. ### 목표 KPI (백테스트·실거래 공통) | KPI | 목표 | |-----|------| | 매도가 ≥ 직전 매수가 비율 | 60% 이상 | | 월 거래 횟수 (3분 WLD) | 8~40회 (과다 체결 방지) | | 최대 연속 손실 매도 | 3회 이하 | | 수동 로고스 타점 일치율 | ±3봉(9분), ±2% 가격 이내 50% 이상 (캘리브레이션) | ### 전략 원칙 (5가지) 1. **구조 우선**: 지표 한 개보다 «바닥 형성 → 눌림 → 가속 → 과열» 순서를 본다. 2. **가치 매수만**: 하단 돌파·망치·밴드 하단 구간. 상단 구간 단독 매수 금지. 3. **익절은 강도로**: 밴드 상단 돌파만으로 팔지 않고, **위치·캔들·RSI·거래량**이 맞을 때만. 4. **추세 보유**: 눌림(예: 378)은 **상위 추세가 살아 있으면** 버틴다. 5. **현물 순환**: 공매도 없음. 매도 = 보유 청산 또는 익절 후 재진입 대기. --- ## Do (실행 구조) ### 아키텍처 (4계층) ```mermaid flowchart TB subgraph L1 [L1 레짐 1D/1H] R1[추세: up / range / down] R2[일목: 구름 위·아래] end subgraph L2 [L2 구조 3m/15m/60m] S1[스윙 고저 pivot] S2[고저점 상승 HL / 하락 LH] end subgraph L3 [L3 트리거 3m] B1[매수 A: 바닥·반등] B2[매수 B: 추세 눌림] X1[매도: 익절·과열] X2[매도: 손절] end subgraph L4 [L4 체결] E1[엣지 트리거] E2[쿨다운·최소봉격] end L1 --> L2 --> L3 --> L4 ``` ### L1. 레짐 필터 (1D + 1H) | 레짐 | 매수 | 매도(익절) | |------|------|------------| | **up** | A·B 허용 | 전량·분할 허용 | | **range** | A만 (바닥형), B 제한 | 분할 위주 | | **down** | A만 소량, B 금지 | 보유 시 손절·약익절만 | 판별(기존 `strategy.get_trend` 활용): - 1H·1D MA 정배열/역배열 + 갭 - 보조: 일봉 `!ichi_below_cloud` (매수), 구름 아래 매수 금지 ### L2. 구조 (스윙) | 간격 | pivot order (3분봉 개수) | 용도 | |------|--------------------------|------| | 3m | 40 (~2시간) | 주요 고저 | | 3m | 15 (~45분) | 보조 눌림 | | 15m | 20 | 중기 저항 | 정의: - **스윙 저점**: 좌우 `order` 봉보다 `Low`가 낮은 봉 - **스윙 고점**: 좌우 `order` 봉보다 `High`가 높은 봉 - **HL(상승)**: 직전 스윙 저점 < 현재 스윙 저점 - **과열 고점**: 종가가 120봉 최고가 대비 97% 이상 ### L3-A. 매수 트리거 #### A. 바닥·투매 종료 (5/18 340 유형) **엣지**로만 진입. 아래 **모두** 충족: | # | 조건 | |---|------| | A1 | 3m `bb_pos` < 0.35 또는 `bb_zone_bottom` | | A2 | `cross_up_lower` **또는** `hammer` (전봉 대비 신규) | | A3 | RSI(14) < 42 **그리고** 전봉 대비 RSI 상승 | | A4 | 120봉 최저가 대비 종가 ≤ 103% (진정한 바닥권) | | A5 | 레짐 ≠ down 또는 일봉 구름 아래 아님 | **금지**: `bb_pos` ≥ 0.55 단독, `bb_zone_top`, 당일 `shooting_star` + 고점권 #### B. 추세 눌림 재진입 (5/23 392, 5/25 427 유형) **엣지** + 레짐 **up**: | # | 조건 | |---|------| | B1 | 1H 추세 up, 3m `bb_zone_low` 또는 `cross_up_lower` | | B2 | 직전 스윙 고점 대비 3~12% 조정(눌림 깊이) | | B3 | 3m `bb_pos` < 0.50 | | B4 | 15m `ichi_tk_bull` 또는 전환선 지지 | | B5 | 마지막 매도 후 ≥ 20봉(1시간) | **금지**: 450+ 구간 «급등 후 재추격»(5/26 04:00 유형) — `bb_pos` > 0.65 신규 매수 차단 ### L3-B. 매도 트리거 #### C. 구조적 익절 (5/23 00:30, 5/24 464 유형) **엣지** + 보유 중: | # | 조건 | |---|------| | C1 | 3m **스윙 고점** 확정(피벗) **또는** `cross_up_upper` | | C2 | `bb_pos` ≥ **0.65** (저점 익절 방지) | | C3 | **NOT** (`hammer` OR `bb_zone_bottom` 동일 봉) | | C4 | 종가 ≥ BB 중심(MA) | 분할: 1차 C만 충족 시 50% 익절, 2차 조건(D) 시 나머지 (구현 옵션). #### D. 과열·불꽃 익절 (5/26 603 유형) | # | 조건 | |---|------| | D1 | 3m `bb_pos` ≥ 0.90 **또는** 20봉 누적 상승률 ≥ 8% | | D2 | 거래량 > 20봉 평균 × 1.5 | | D3 | `shooting_star` 또는 윗꼬리 비율 > 0.45 | → **전량 매도** 우선. #### E. 손절 (필수) | # | 조건 | |---|------| | E1 | 3m `cross_down_lower` **엣지** | | E2 | 또는 매수가 대비 -3% (설정값) | **금지**: `bb_pos` < 0.40 에서 `cross_up_upper` 단독 매도 (5/26 01:48 유형) ### L4. 체결 규칙 (공통) | 항목 | 기본값 | 설명 | |------|--------|------| | `SIGNAL_EDGE_ONLY` | true | False→True 봉만 | | `TRADE_MIN_GAP_BARS` | 5 | 체결 후 15분 | | `BUY_COOLDOWN_SEC` | 1800 | 매수 간 30분 | | `SELL_COOLDOWN_SEC` | 900 | 매도 간 15분 | | `SELL_MIN_BB_POS` | 0.40 | 이보다 낮으면 C 매도 금지 | | `BUY_MAX_BB_POS_CHASE` | 0.55 | 이보다 높으면 value 트리거 없이 매수 금지 | 우선순위(보유 중): **E 손절 > D 과열 > C 익절** --- ## 수동 타점과의 매핑 | 수동 타점 | 전략 분류 | 자동화 핵심 조건 | |-----------|-----------|------------------| | 5/18 340 매수 | A 바닥 | A1~A4 + hammer | | 5/23 00:30 445 매도 | C+D | pivot 고점 + bb_pos≥0.65 | | 5/23 392 매수 | B 눌림 | up + bb_zone_low + HL | | 5/24 464 매도 | C | cross_up_upper + 과열 | | 5/25 427 매수 | B | 급등 전 마지막 눌림, bb_pos<0.5 | | 5/26 603 매도 | D | bb_pos·거래량·급등률 | | 5/28 420 매수 | A′ 급락 바닥 | 1일 -20% 후 첫 3m 저점 | | 5/29 441 매도 | C | 반등 실패·중심선 이탈 | --- ## Check (검토) ### 백테스트 절차 1. `python simulation.py` — 로고스 전략 체결 HTML (`reports/wld_bb_simulation.html`) 2. `python simulation.py benchmark` — 수동 정답 참고 (`reports/wld_logos_benchmark.html`) ### 리스크 | 리스크 | 완화 | |--------|------| | 눌림 구간 손실 확대 | E 손절, down 레짐 매수 축소 | | 급등 후 재매수 | `BUY_MAX_BB_POS_CHASE` | | 바닥에서 익절 | `SELL_MIN_BB_POS` + 망치 동봉 매도 금지 | | 거래 과다 | 엣지 + 쿨다운 + pivot 최소 간격 | --- ## Act (개선) ### 자동 전략 (코드 고정) 벤치마크 1위였던 S9 로직을 `logos_strategy.py` 상단 상수로만 유지합니다. `logos_best_policy.json`, `LogosPolicy`, `logos-fit` 제거. 1. **Phase 3**: `USE_LOGOS_LIVE` 실거래 스위치 2. **Phase 4**: 눌림/바닥 분기 강화 --- ## 코드 위치 | 파일 | 역할 | |------|------| | `docs/LOGOS_STRATEGY.md` | 본 설계서 | | `logos_strategy.py` | 신호·체결 엔진 | | `logos_trades.json` | 수동 벤치마크 | | `logos_chart.py` | `simulation.py` 와 동일 진입 | | `simulation.py` | 기본 실행 = 로고스 전략 HTML | | `simulation.py benchmark` | 수동 정답 참고 HTML |