[2026-05-19] 세션 분리 + L3→B안 전환 + /midday 장중 분석 추가
- L3 하드 중단 제거 → B안(연속 손절별 포지션 축소) 적용 0회×1.0 / 1회×0.7 / 2회×0.5 / 3+회×0.3, 익절 시 한 단계 회복 - 아침·점심 세션 분리: 11:00 이후 midday_context.json 감지 시 점심 세션 자동 시작 (12:00 고정 시작 제거 → 이벤트 기반) - app/ai/midday.py: 장중 데이터 수집 스크립트 신규 작성 - .claude/commands/midday.md: /midday 슬래시 커맨드 신규 작성 - scripts/run_midday.ps1: 11:20 스케줄러 스크립트 신규 작성 - setup_scheduler.ps1: StockBot_Midday 태스크 추가 - CLAUDE.md: 전체 문서 업데이트 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# StockBot v3.0 — Claude Code 운영 가이드
|
||||
|
||||
> 최종 수정: 2026-05-15
|
||||
> 최종 수정: 2026-05-19
|
||||
> 인프라: 로컬 Windows → Synology NAS Docker 이전 예정
|
||||
> 현재 모드: 모의투자 (KIS_MOCK=true, DRY_RUN=true)
|
||||
|
||||
@@ -41,21 +41,29 @@
|
||||
## 하루 자동화 흐름
|
||||
|
||||
```
|
||||
07:30 StockBot_Morning → run_morning.ps1 → claude /morning → RSS+네이버 뉴스+수급 분석 → daily_context.json
|
||||
07:30 StockBot_Morning → run_morning.ps1 → claude /morning
|
||||
RSS+네이버 뉴스+KIS 수급 분석 → daily_context.json
|
||||
완료 후 자동으로 /start-bot 호출 → 봇 백그라운드 시작
|
||||
08:30 봇이 daily_context.json 로드 → Discord에 분석 결과 전송 → 유니버스 30종목 확정
|
||||
08:30 봇이 daily_context.json 로드 → Discord 전송 → 유니버스 30종목 확정
|
||||
08:50 목표가 계산
|
||||
09:00 매매 루프 시작 (변동성 돌파 신호 + AI 필터)
|
||||
09:00 아침 세션 시작 (변동성 돌파 신호 + AI 필터)
|
||||
B안: 연속 손절 시 포지션 크기 자동 축소 (0회→1.0× / 1회→0.7× / 2회→0.5× / 3+→0.3×)
|
||||
11:00 midday_context.json 미로드 시 신규 진입 일시 중단
|
||||
11:20 StockBot_Midday → run_midday.ps1 → claude /midday
|
||||
오전 결과+시장 스냅샷 수집 → midday_context.json 저장
|
||||
파일 생성 즉시 봇이 감지 → 점심 세션 자동 시작
|
||||
14:00 신규 진입 마감
|
||||
14:50 강제 전량 청산 (절대 불변)
|
||||
15:10 일일 결산 → Discord 전송
|
||||
15:30 StockBot_Evening → run_evening.ps1 → claude /evening → 결과 분석 + 리포트 저장
|
||||
15:30 StockBot_Evening → run_evening.ps1 → claude /evening
|
||||
결과 분석 + 리포트 저장
|
||||
```
|
||||
|
||||
### 스케줄러 스크립트 주의사항 (scripts/run_*.ps1)
|
||||
- 경로: `$PROJECT = Split-Path -Parent $PSScriptRoot` (한글 경로 인코딩 문제 방지)
|
||||
- Claude 실행: `$CLAUDE = "C:\Users\whdwo\AppData\Roaming\npm\claude.cmd"` (전체 경로 필수)
|
||||
- 인코딩: `New-Object System.Text.UTF8Encoding $false` + UTF-8 BOM으로 저장
|
||||
- 로그: `logs/bot_start.log`, `logs/morning.log`, `logs/evening.log`
|
||||
- 로그: `logs/bot_start.log`, `logs/morning.log`, `logs/midday.log`, `logs/evening.log`
|
||||
|
||||
---
|
||||
|
||||
@@ -65,10 +73,19 @@
|
||||
```
|
||||
1. python app/ai/morning.py --print (뉴스 크롤링 + KIS 수급 수집)
|
||||
2. Claude가 데이터 분석 → 시장 분위기/섹터/boosted_tickers 판단
|
||||
3. app/ai/daily_context.json 저장
|
||||
3. data/daily_context.json 저장
|
||||
4. Discord로 분석 요약 전송
|
||||
```
|
||||
|
||||
### 장중 분석 — `/midday` 슬래시 커맨드
|
||||
```
|
||||
1. python app/ai/midday.py --print (오전 거래 결과 + 현재 시장 스냅샷 수집)
|
||||
2. 오전 daily_context 예측 vs 실제 결과 비교 분석
|
||||
3. 점심 세션 파라미터 결정 (진입 허용 여부, 포지션 배율, 섹터 업데이트)
|
||||
4. data/midday_context.json 저장 → 봇이 즉시 감지해 점심 세션 시작
|
||||
5. Discord로 장중 분석 전송
|
||||
```
|
||||
|
||||
### 장 후 피드백 — `/evening` 슬래시 커맨드
|
||||
```
|
||||
1. python app/ai/evening.py --print (오늘 매매 내역 조회)
|
||||
@@ -115,6 +132,7 @@ stockbot_v3/
|
||||
│ ├── config.py ← 전략 파라미터 (수정 가능)
|
||||
│ ├── ai/
|
||||
│ │ ├── morning.py ← 장 전 데이터 수집
|
||||
│ │ ├── midday.py ← 장중 데이터 수집
|
||||
│ │ └── evening.py ← 장 후 데이터 수집
|
||||
│ ├── strategy/
|
||||
│ │ └── volatility_breakout.py ← 전략 로직 (수정 가능)
|
||||
@@ -131,6 +149,7 @@ stockbot_v3/
|
||||
├── scripts/
|
||||
│ ├── run_bot.ps1 ← 스케줄러용 봇 시작
|
||||
│ ├── run_morning.ps1 ← 스케줄러용 morning
|
||||
│ ├── run_midday.ps1 ← 스케줄러용 midday (11:20)
|
||||
│ ├── run_evening.ps1 ← 스케줄러용 evening
|
||||
│ └── setup_scheduler.ps1 ← 스케줄러 전체 재등록
|
||||
├── reports/
|
||||
@@ -139,6 +158,7 @@ stockbot_v3/
|
||||
├── data/
|
||||
│ ├── stockbot.db
|
||||
│ ├── daily_context.json ← 매일 /morning이 갱신, 봇이 08:30에 로드
|
||||
│ ├── midday_context.json ← 매일 /midday가 갱신, 봇이 파일 감지 즉시 로드
|
||||
│ ├── news/
|
||||
│ └── market/
|
||||
└── logs/
|
||||
@@ -188,10 +208,19 @@ stockbot_v3/
|
||||
|------|------|------|---------|
|
||||
| L1 | 1회 -1.5% | 즉시 손절 | [손절] |
|
||||
| L2 | 일일 -3% | 당일 신규 진입 중단 | [경고] |
|
||||
| L3 | 3연속 손절 | 당일 매매 중단 | [경고] |
|
||||
| L3-B | 연속 손절 | 포지션 크기 단계 축소 (전면 중단 없음) | [경고] |
|
||||
| L4 | 주간 -7% | 주말까지 중단 | [경고] |
|
||||
| L5 | 월간 -15% | 전략 폐기 + 재검토 | [긴급] |
|
||||
|
||||
**L3-B 포지션 배율** (익절 시 한 단계 회복):
|
||||
|
||||
| 연속 손절 | 포지션 크기 |
|
||||
|-----------|------------|
|
||||
| 0회 | 1.0× (정상) |
|
||||
| 1회 | 0.7× |
|
||||
| 2회 | 0.5× |
|
||||
| 3회+ | 0.3× (최소) |
|
||||
|
||||
---
|
||||
|
||||
## 실전 전환 조건 (claude_evening 자동 체크)
|
||||
@@ -202,7 +231,7 @@ stockbot_v3/
|
||||
| 승률 | 최근 30일 > 48% |
|
||||
| MDD | 최근 30일 < -10% |
|
||||
| 샤프지수 | 최근 30일 > 1.0 |
|
||||
| L3 발동 | 월 2회 이하 |
|
||||
| L3-B 최소배율(0.3×) 도달 | 월 2회 이하 |
|
||||
|
||||
전부 충족 시 → `reports/live_ready/날짜_READY.md` 생성 + Discord 🚀 알림
|
||||
전환 방법: `.env`에서 `KIS_MOCK=false`, `DRY_RUN=false` 로 변경
|
||||
|
||||
Reference in New Issue
Block a user