수동 타점(logos_trades.json) 흐름에 맞춘 순차 매매 로직을 추가하고, python simulation.py 실행 시 로고스 백테스트·HTML을 생성한다. 규칙 탐색·BB 안전장치 개선과 함께 reports HTML은 gitignore로 제외한다. Co-authored-by: Cursor <cursoragent@cursor.com>
7.3 KiB
7.3 KiB
로고스(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가지)
- 구조 우선: 지표 한 개보다 «바닥 형성 → 눌림 → 가속 → 과열» 순서를 본다.
- 가치 매수만: 하단 돌파·망치·밴드 하단 구간. 상단 구간 단독 매수 금지.
- 익절은 강도로: 밴드 상단 돌파만으로 팔지 않고, 위치·캔들·RSI·거래량이 맞을 때만.
- 추세 보유: 눌림(예: 378)은 상위 추세가 살아 있으면 버틴다.
- 현물 순환: 공매도 없음. 매도 = 보유 청산 또는 익절 후 재진입 대기.
Do (실행 구조)
아키텍처 (4계층)
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 (검토)
백테스트 절차
python simulation.py— 로고스 전략 체결 HTML (reports/wld_bb_simulation.html)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 제거.
- Phase 3:
USE_LOGOS_LIVE실거래 스위치 - Phase 4: 눌림/바닥 분기 강화
코드 위치
| 파일 | 역할 |
|---|---|
docs/LOGOS_STRATEGY.md |
본 설계서 |
logos_strategy.py |
신호·체결 엔진 |
logos_trades.json |
수동 벤치마크 |
logos_chart.py |
simulation.py 와 동일 진입 |
simulation.py |
기본 실행 = 로고스 전략 HTML |
simulation.py benchmark |
수동 정답 참고 HTML |