Files
Stock-trading-programming/.claude/commands/morning.md
T

105 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# claude_morning — 장 전 분석
오늘 날짜 기준으로 장 전 분석을 수행하고 `data/daily_context.json`을 생성한다.
07:30에 스케줄러가 자동 실행. 봇 시작은 이 명령이 종료된 뒤 `scripts/run_morning.ps1`에서만 수행한다.
## 실행 순서
### 1. 데이터 수집
```bash
python app/ai/morning.py --print
```
위 명령을 실행해 다음 데이터를 수집한다:
- **글로벌 지표 (global_raw)**: 나스닥·S&P500·다우·SOX·달러/원·WTI·미국10년물
- **RSS 뉴스**: 한경증권·한경경제·파이낸셜뉴스·매경증권 4개 언론사 (~80건)
- **KIS 수급**: 거래량 상위 30종목, 외국인/기관 순매수 상위 10종목, 업종 동향
- **종목별 뉴스**: 네이버 검색 API로 거래량 상위 20종목 각 5건
### 2. 글로벌 분석 (global_raw → global_context)
수집된 `global_raw`를 바탕으로 글로벌 점수와 리스크를 산출한다.
**global_score 산출 기준 (0~100, 50=중립):**
- 나스닥·SOX 등락이 가장 큰 가중치 (한국 반도체·기술주 직접 영향)
- S&P500·다우 보조
- USD/KRW 상승(달러 강세)은 외국인 매도 압력 → 감점
- WTI 급등은 항공·운송 부담 → 소폭 감점
- 미국 10년물 금리 급등은 성장주 할인 → 감점
**global_risk 판단:**
- global_score >= 60 → 낮음
- global_score 40~59 → 보통
- global_score < 40 → 높음
**섹터 힌트 매핑 (hot/avoid 섹터에 반영):**
- SOX < -2% → 반도체·AI 관련 보수적, hot_sectors에서 제외 또는 주의 표시
- SOX > +1% → 반도체 hot_sectors 강화
- WTI > +2% → 항공 avoid, 정유/해운 관심
- WTI < -2% → 정유 보수적, 항공 우호
- USD/KRW > +0.5% → 전체 포지션 배율 축소 압력
- 미국장 전반 급락(나스닥 < -2%) → position_size_multiplier 하향
### 3. 국내 분석
수집된 뉴스·수급 데이터를 바탕으로 다음 항목을 판단한다:
- **시장 분위기**: 강세 / 중립 / 약세
- **domestic_score**: 0~100 (50=중립, 70이상=강세, 30이하=약세)
- **리스크 레벨**: 낮음 / 보통 / 높음
- **주목 섹터**: 수급·뉴스 모두 긍정적인 섹터 (글로벌 힌트 반영)
- **회피 섹터**: 악재·수급 부진 섹터 (글로벌 힌트 반영)
- **boosted_tickers**: 거래량 상위 + 외국인 순매수 겹치는 종목코드
- **blacklist_tickers**: 종목별 뉴스에서 악재(횡령·소송·거래정지 등) 감지된 종목코드
- **sentiment_score**: domestic_score와 global_score를 6:4로 합산한 최종 점수
- **position_size_multiplier**: 0.5(약세) ~ 1.0(중립) ~ 1.5(강세), 글로벌 리스크 반영
- **trade_allowed**: sentiment_score < 40이면 false
### 4. daily_context.json 저장
분석 결과를 `data/daily_context.json`에 저장한다. 형식:
```json
{
"date": "YYYY-MM-DD",
"generated_at": "HH:MM:SS",
"trade_allowed": true,
"market_sentiment": "중립",
"sentiment_score": 55,
"domestic_score": 62,
"global_context": {
"nasdaq_change": -1.15,
"sp500_change": -0.57,
"dow_change": 0.64,
"sox_change": -5.71,
"usdkrw_change": 0.0,
"wti_change": -1.21,
"us10y": 4.43,
"global_score": 32,
"global_risk": "높음"
},
"risk_level": "높음",
"hot_sectors": ["방산", "2차전지"],
"avoid_sectors": ["반도체", "항공"],
"boosted_tickers": [],
"blacklist_tickers": [],
"position_size_multiplier": 0.7,
"reason": "50자 이내 시장 요약"
}
```
**sentiment_score 계산 예시:**
- domestic_score=62, global_score=32 → sentiment_score = 62×0.6 + 32×0.4 = 50
### 5. Discord 알림 전송
아래 명령을 실행해 분석 결과를 Discord로 전송한다:
```bash
python app/ai/morning.py --send-discord
```
### 6. Git commit & push
`data/daily_context.json`을 커밋하고 push한다:
```bash
git add data/daily_context.json
git commit -m "[YYYY-MM-DD] 장전 분석 — <한 줄 시장 요약>"
git push origin master
```
### 7. 완료
분석 요약을 한 줄로 출력하고 종료한다.
이 명령 안에서는 `/start-bot` 또는 `python scripts/start_bot.py`를 실행하지 않는다.