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

2.5 KiB

claude_morning — 장 전 분석

오늘 날짜 기준으로 장 전 분석을 수행하고 data/daily_context.json을 생성한다.

실행 순서

1. 데이터 수집

python app/ai/morning.py --print

위 명령을 실행해 뉴스 헤드라인과 KIS 시장 데이터를 수집한다.

2. 분석

수집된 데이터를 바탕으로 다음 항목을 판단한다:

  • 시장 분위기: 강세 / 중립 / 약세
  • 감성 점수: 0~100 (50=중립, 70이상=강세, 30이하=약세)
  • 리스크 레벨: 낮음 / 보통 / 높음
  • 주목 섹터: 수급·뉴스 모두 긍정적인 섹터
  • 회피 섹터: 악재·수급 부진 섹터
  • boosted_tickers: 거래량 상위 + 외국인 순매수 겹치는 종목코드
  • blacklist_tickers: 악재(횡령·소송·거래정지 등) 종목코드
  • position_size_multiplier: 0.5(약세) ~ 1.0(중립) ~ 1.5(강세)
  • trade_allowed: sentiment_score < 40이면 false

3. daily_context.json 저장

분석 결과를 data/daily_context.json에 저장한다. 형식:

{
  "date": "YYYY-MM-DD",
  "generated_at": "HH:MM:SS",
  "trade_allowed": true,
  "market_sentiment": "중립",
  "sentiment_score": 62,
  "risk_level": "보통",
  "hot_sectors": ["반도체", "2차전지"],
  "avoid_sectors": ["금융", "건설"],
  "boosted_tickers": ["005930", "000660"],
  "blacklist_tickers": [],
  "position_size_multiplier": 1.0,
  "reason": "50자 이내 시장 요약"
}

4. Discord 알림 전송

아래 Python 코드를 실행해 분석 결과를 Discord로 전송한다:

python -c "
import asyncio, json, os, sys
sys.path.insert(0, '.')
from app.main import load_env; load_env()
from app.monitor.notifier import send
ctx = json.load(open('data/daily_context.json', encoding='utf-8'))
hot = ', '.join(ctx.get('hot_sectors', [])) or '없음'
avoid = ', '.join(ctx.get('avoid_sectors', [])) or '없음'
boosted = ', '.join(ctx.get('boosted_tickers', [])) or '없음'
flag = '✅ 거래허용' if ctx.get('trade_allowed', True) else '🚫 거래중단'
msg = f'[장전분석] {ctx[\"date\"]} {ctx.get(\"generated_at\",\"\")}\n시장: {ctx[\"market_sentiment\"]}({ctx[\"sentiment_score\"]}점) | 리스크: {ctx[\"risk_level\"]} | {flag}\n주목 섹터: {hot}\n회피 섹터: {avoid}\n관심 종목: {boosted}\n비중 배율: x{ctx.get(\"position_size_multiplier\",1.0)}\n📝 {ctx.get(\"reason\",\"\")}'
asyncio.run(send(msg))
print('Discord 전송 완료')
"

5. 완료

분석 요약을 한 줄로 출력하고 종료한다.