1차 버그 수정전.

This commit is contained in:
eld_master 2025-10-05 17:26:48 +09:00
parent b20e20f42a
commit d43dff2711
24 changed files with 27452 additions and 852 deletions

View File

@ -4,7 +4,8 @@
"Bash(python:*)",
"Bash(if:*)",
"Bash(cmd:*)",
"Bash(pip3 install:*)"
"Bash(pip3 install:*)",
"Bash(grep:*)"
],
"deny": [],
"ask": []

View File

@ -267,6 +267,105 @@ This is a multi-component application with the following structure:
4. **Database Operations**: Use `DBConn` class in `db_conn.py` for PostgreSQL operations
5. **Static Data Generation**: Run `update_static_data.py` to generate JSON files for S3 upload
## Phase 2 Development (AI-Based Future Prediction)
### Overview
Phase 2 focuses on transitioning from historical "what if" simulations to AI-powered future predictions, targeting beginner investors who need clear explanations and credible sources.
**Core Concept**: "과거 시뮬레이션" (Past Simulation) → "미래 예측" (Future Prediction)
- Phase 1: "What if you invested in the past?"
- Phase 2: "What returns can you expect if you invest now?"
### AI Prediction Workflow (설계/2차/)
#### 1. Generate AI Analysis Request Files
Navigate to `설계/2차/` directory and use the file generation script:
```bash
cd "설계/2차"
python generate_files.py <TICKER>
# Examples:
python generate_files.py TSLA # Tesla stock
python generate_files.py BTC-USD # Bitcoin
python generate_files.py 005930.KS # Samsung Electronics (Korean stock)
```
**Generated Files** (2 per ticker):
1. `{TICKER}_candle_data_YYYYMMDD.csv` - Historical OHLCV data from PostgreSQL
2. `{TICKER}_ai_prompt.py` - Prompt template for Claude.ai analysis
#### 2. Claude.ai Analysis Process
1. **Access**: https://claude.ai
2. **Model**: Claude 3.5 Sonnet with Extended Thinking
3. **Settings**: Enable "Thinking" + "Research" features
4. **Input**:
- Attach CSV file
- Run `python {TICKER}_ai_prompt.py` to get prompt text
- Paste prompt into Claude.ai
5. **Output**: Save JSON response as `AI응답_{TICKER}.json`
#### 3. Expected JSON Response Structure
```json
{
"1_캔들데이터": {
"period": "3 years from last date",
"frequency": "weekly",
"total_weeks": 156,
"data": [{"week": 1, "date": "YYYY-MM-DD", "open": 0, "high": 0, "low": 0, "close": 0}]
},
"2_애널리스트_분석": {
"summary": "Analyst consensus summary",
"average_target_price": 0,
"recommendations": {"buy": 0, "hold": 0, "sell": 0},
"key_analysts": [{"firm": "...", "rating": "...", "target_price": 0, "source_url": "..."}],
"sources": [{"title": "...", "url": "...", "date": "..."}]
},
"3_최신뉴스_요약": {
"summary": "Recent news summary",
"sentiment": "긍정적/중립/부정적",
"positive_news": [{"headline": "...", "url": "...", "impact": "..."}],
"negative_news": [{"headline": "...", "url": "...", "impact": "..."}]
},
"4_캔들데이터_분석": {
"long_term_trend": {"description": "...", "cagr_5y": "...", "cagr_10y": "..."},
"volatility": {"annual_volatility": "...", "max_drawdown": "..."},
"seasonal_patterns": {"Q1": "...", "Q2": "...", "Q3": "...", "Q4": "..."}
}
}
```
### Key Phase 2 Requirements
**AI Analysis Must Include**:
1. **3-year weekly predictions** (156 weeks total) - for chart visualization
2. **Evidence-based reasoning** - all predictions must cite news/analyst reports with URLs
3. **Multi-source validation** - latest news, analyst ratings, financial metrics, historical patterns
4. **Conservative approach** - avoid exaggerated predictions, emphasize risks
**Target User**: Beginner investors who cannot interpret:
- Complex financial charts
- News headlines
- Analyst reports
- Need clear explanations with credible sources
### Phase 2 Design Documents
Located in `설계/2차/`:
- `00_2차_개발_방향성_논의.md` - Overall Phase 2 direction and options
- `01_AI_기반_투자_예측_서비스_설계.md` - Detailed AI prediction service design
- `generate_files.py` - Automated CSV + prompt generation script
### Critical Differences from Phase 1
| Aspect | Phase 1 (Historical) | Phase 2 (Predictive) |
|--------|---------------------|----------------------|
| Question | "What if I invested in the past?" | "What returns can I expect now?" |
| Data Source | Historical candle data only | Historical data + AI analysis of news/analysts |
| Output | Past performance chart | 3-year future prediction chart with reasoning |
| Credibility | Factual historical data | Requires sources/evidence for all predictions |
| Chart Type | Actual historical returns | Predicted weekly returns (156 weeks) |
## Common UI/UX Issues and Solutions
### Currency Display

View File

@ -0,0 +1,450 @@
# AI 응답 데이터 검토 및 개선사항 (Phase 2)
## 📊 현재 받은 AI 응답 분석
### ✅ 잘 구성된 항목
#### 1. 캔들데이터 (3년 주봉 예측)
**현황**:
- ✅ 156주 완벽 생성 (3년치)
- ✅ OHLC 데이터 모두 포함
- ✅ 자연스러운 변동성 반영
- ✅ 날짜 형식 통일 (YYYY-MM-DD)
**예시 (TSLA)**:
```json
{"week": 1, "date": "2025-10-07", "open": 455.80, "high": 468.20, "low": 448.30, "close": 462.50}
```
**강점**:
- 차트 시각화에 바로 사용 가능
- 주간 등락이 현실적
- 장기 트렌드 반영됨
---
#### 2. 애널리스트 분석
**현황**:
- ✅ 요약 정보 명확
- ✅ 목표주가 및 추천 비율
- ✅ 주요 애널리스트 의견
- ✅ **출처 URL 포함**
**강점**:
- 신뢰성 확보 (출처 명시)
- 초보자 이해 가능한 설명
---
#### 3. 최신 뉴스 요약
**현황**:
- ✅ 긍정/부정 분류
- ✅ **출처 URL 포함**
- ✅ 각 뉴스의 영향 설명
**강점**:
- 투자 결정에 도움되는 정보
- 근거 명확
---
#### 4. 캔들데이터 분석
**현황**:
- ✅ 장기 트렌드 (CAGR)
- ✅ 변동성 분석
- ✅ 계절성 패턴
- ✅ 주요 이벤트
---
## 🎯 수동 업데이트 전략 (한 달에 한 번)
### 월간 업데이트 프로세스
```
매월 1일 또는 첫 주말:
1. generate_ai_request.py 실행 (10개 티커)
2. Claude.ai에 CSV + 프롬프트 입력
3. 응답 JSON 저장
4. 프론트엔드 데이터 업데이트 (수동 또는 스크립트)
```
### 업데이트가 필요한 이유
**월간 업데이트 필요성**:
- ✅ 최신 뉴스 반영 (1개월 지나면 낡음)
- ✅ 애널리스트 목표주가 변동
- ✅ 실제 주가와 예측 비교 (신뢰도 검증)
- ✅ 새로운 이벤트 (실적 발표, 신제품 등)
---
## 🔧 추가로 필요한 데이터/개선사항
### 1. 예측 신뢰도 평가 ⭐⭐⭐
**문제점**:
- 현재 응답에 **신뢰도 점수**가 없음
- 사용자가 "이 예측을 얼마나 믿어야 할까?" 판단 어려움
**제안**:
```json
{
"예측_신뢰도": {
"confidence_score": 7, // 1-10점
"rating": "중간", // 높음/중간/낮음
"uncertainty_factors": [
"경기 침체 가능성",
"규제 변화 리스크"
],
"confidence_basis": "과거 3년 예측 정확도 68%"
}
}
```
**활용**:
- 사용자에게 "이 예측은 70% 신뢰도입니다" 명시
- 신뢰도 낮은 항목은 경고 표시
---
### 2. 시나리오별 예측 ⭐⭐⭐
**문제점**:
- 현재 **중립 시나리오 1개**만 제공
- 낙관/비관 시나리오 없음
**제안**:
```json
{
"1_캔들데이터": {
"scenarios": {
"conservative": { // 보수적 시나리오
"description": "경기 침체 시",
"3년_예상_수익률": "+15%",
"data": [/* 156주 */]
},
"neutral": { // 중립 시나리오 (현재 제공)
"description": "현재 추세 유지",
"3년_예상_수익률": "+35%",
"data": [/* 156주 */]
},
"optimistic": { // 낙관적 시나리오
"description": "신제품 성공 시",
"3년_예상_수익률": "+60%",
"data": [/* 156주 */]
}
},
"probability": {
"conservative": "20%",
"neutral": "60%",
"optimistic": "20%"
}
}
}
```
**활용**:
- 사용자가 시나리오 선택 가능
- "최악의 경우" vs "최선의 경우" 비교
- 더 현실적인 기대치 제공
---
### 3. 리스크 평가 강화 ⭐⭐
**문제점**:
- 뉴스에서 부정적 항목은 있지만, **구체적 리스크 평가** 부족
**제안**:
```json
{
"5_리스크_평가": {
"overall_risk": "중간", // 높음/중간/낮음
"risk_factors": [
{
"category": "거시경제",
"risk": "금리 인상 지속",
"probability": "높음",
"impact": "중간",
"mitigation": "장기 투자로 리스크 분산"
},
{
"category": "산업",
"risk": "중국 경쟁사 약진",
"probability": "중간",
"impact": "높음",
"mitigation": "미국 시장 집중 전략"
},
{
"category": "기업",
"risk": "CEO 개인 리스크",
"probability": "낮음",
"impact": "높음",
"mitigation": "경영진 다각화 필요"
}
],
"risk_score": 6 // 1-10점 (낮을수록 안전)
}
}
```
**활용**:
- 초보 투자자에게 "이런 위험이 있어요" 명확히 제시
- 리스크별 대응 전략 제공
---
### 4. 투자 전략 제안 ⭐⭐
**문제점**:
- 예측은 있지만 **"어떻게 투자해야 할까?"** 가이드 없음
**제안**:
```json
{
"6_투자_전략": {
"recommended_strategy": "적립식 투자",
"entry_timing": {
"best": "현재 가격대 ($250-260)",
"avoid": "단기 급등 후 ($280 이상)"
},
"holding_period": "최소 2년 (장기 투자 권장)",
"portfolio_weight": "5-10% (분산 투자)",
"rebalancing": "분기별 리뷰, 20% 이상 등락 시 재조정",
"exit_strategy": {
"target_price": "$450 (3년 후)",
"stop_loss": "-30% (손절 기준)",
"take_profit": "+50% (일부 매도 고려)"
},
"caution": "이 전략은 참고용이며, 투자 결정은 본인 책임입니다."
}
}
```
**활용**:
- 초보자에게 구체적 액션 플랜 제공
- "지금 살까? 기다릴까?" 질문에 답변
---
### 5. 과거 예측 vs 실제 비교 ⭐⭐⭐
**문제점**:
- 첫 달에는 없지만, **2개월 차부터** 이전 예측 정확도 확인 필요
**제안 (2개월 차부터)**:
```json
{
"7_예측_정확도_검증": {
"last_prediction_date": "2025-10-01",
"current_date": "2025-11-01",
"prediction_vs_actual": {
"predicted_close_1month": 462.50,
"actual_close_1month": 468.30,
"difference": "+5.80 (+1.25%)",
"accuracy": "높음"
},
"cumulative_accuracy": {
"1month": "95%",
"3month": "88%",
"6month": "72%"
},
"adjustment": "예측 모델 정확도 검증됨, 신뢰 가능"
}
}
```
**활용**:
- 사용자 신뢰 구축 ("지난 예측이 맞았네!")
- AI 예측의 신뢰도 지속 검증
---
### 6. 다국어 지원 준비 ⭐
**문제점**:
- 현재 한국어/영어 혼재
- 프론트엔드가 10개 언어 지원하는데, 예측 데이터는 한국어만
**제안**:
```json
{
"language": "ko", // 또는 en, ja, zh-CN 등
"2_애널리스트_분석": {
"summary": {
"ko": "월가 애널리스트들은 긍정적 전망",
"en": "Wall Street analysts maintain positive outlook",
"ja": "ウォール街のアナリストは前向き"
}
}
}
```
**또는 언어별 JSON 파일**:
- `AI응답_TSLA_ko.json`
- `AI응답_TSLA_en.json`
- `AI응답_TSLA_ja.json`
---
### 7. 업데이트 메타데이터 ⭐
**제안**:
```json
{
"metadata": {
"ticker": "TSLA",
"generated_date": "2025-10-02",
"data_period": "2010-06-29 to 2025-10-01",
"prediction_period": "2025-10-07 to 2028-10-01",
"next_update_due": "2025-11-01",
"version": "1.0",
"ai_model": "Claude 3.5 Sonnet",
"sources_count": {
"news": 12,
"analyst_reports": 8
}
}
}
```
**활용**:
- 프론트엔드에서 "마지막 업데이트: 2025-10-02" 표시
- 오래된 데이터 자동 경고
---
## 📋 권장 JSON 구조 (최종안)
```json
{
"metadata": {/* 업데이트 정보 */},
"1_캔들데이터": {
"scenarios": {
"conservative": {/* 156주 */},
"neutral": {/* 156주 */},
"optimistic": {/* 156주 */}
},
"probability": {/* 시나리오별 확률 */}
},
"2_애널리스트_분석": {/* 기존 유지 */},
"3_최신뉴스_요약": {/* 기존 유지 */},
"4_캔들데이터_분석": {/* 기존 유지 */},
"5_리스크_평가": {/* 신규 */},
"6_투자_전략": {/* 신규 */},
"7_예측_신뢰도": {/* 신규 */},
"8_예측_정확도_검증": {/* 2개월 차부터 */}
}
```
---
## 🚀 구현 우선순위
### Phase 2.1 (즉시 적용 가능)
1. ⭐⭐⭐ **시나리오별 예측** (보수/중립/낙관) - 프롬프트 수정만으로 가능
2. ⭐⭐⭐ **예측 신뢰도 점수** - 프롬프트 수정만으로 가능
3. ⭐⭐ **리스크 평가 강화** - 프롬프트 수정만으로 가능
4. ⭐ **업데이트 메타데이터** - JSON 수동 추가
### Phase 2.2 (한 달 후)
5. ⭐⭐⭐ **과거 예측 vs 실제 비교** - 2개월 차부터 가능
6. ⭐⭐ **투자 전략 제안** - 프롬프트 강화 필요
### Phase 2.3 (장기)
7. ⭐ **다국어 지원** - 번역 작업 필요
---
## 💡 수정된 프롬프트 예시
### 추가 요청사항 (기존 프롬프트에 추가)
```markdown
### 5. 시나리오별 예측 (신규)
다음 3가지 시나리오로 3년 주봉 예측을 생성해주세요:
**보수적 시나리오 (Conservative)** - 확률 20%
- 조건: 경기 침체, 실적 악화, 경쟁 심화
- 3년 후 예상 수익률: 보수적 추정
**중립적 시나리오 (Neutral)** - 확률 60% ⭐ 기본
- 조건: 현재 추세 유지
- 3년 후 예상 수익률: 현실적 추정
**낙관적 시나리오 (Optimistic)** - 확률 20%
- 조건: 신제품 성공, 시장 확대, 실적 호조
- 3년 후 예상 수익률: 긍정적 추정
각 시나리오별로 156주 캔들 데이터 제공.
---
### 6. 리스크 평가 (신규)
주요 리스크 요인 3-5개를 분석:
- 카테고리 (거시경제/산업/기업)
- 리스크 설명
- 발생 확률 (높음/중간/낮음)
- 영향도 (높음/중간/낮음)
- 대응 전략
---
### 7. 예측 신뢰도 (신규)
이 예측의 신뢰도를 1-10점으로 평가:
- 데이터 품질 (뉴스/애널리스트 출처의 신뢰성)
- 시장 불확실성 고려
- 과거 유사 케이스 분석
```
---
## ✅ 현재 데이터로 충분한가?
### 충분한 항목 ✅
- 3년 주봉 예측 (차트 시각화)
- 애널리스트 분석 (근거)
- 최신 뉴스 (근거)
- 과거 패턴 분석
### 부족한 항목 ⚠️
1. **시나리오별 예측** (중립만 있음, 보수/낙관 없음)
2. **신뢰도 점수** (사용자가 얼마나 믿어야 할지 모름)
3. **구체적 투자 전략** (예측만 있고 "어떻게?"가 없음)
4. **리스크 평가** (부정 뉴스는 있지만 체계적 리스크 분석 부족)
---
## 🎯 결론 및 권장사항
### 즉시 적용 가능한 개선
프롬프트를 다음과 같이 수정하여 다음 업데이트(11월)부터 적용:
1. **시나리오 3개** 요청 (보수/중립/낙관)
2. **신뢰도 점수** 요청 (1-10점)
3. **리스크 평가** 섹션 추가
4. **메타데이터** (업데이트 날짜, 다음 업데이트 예정일)
### 장기 개선 사항
- 2개월 차부터: 예측 정확도 검증
- 3개월 차부터: 투자 전략 제안
- 6개월 차부터: 다국어 지원
### 월간 업데이트 체크리스트
```
[ ] 10개 티커 CSV 생성
[ ] Claude.ai에 업데이트된 프롬프트로 요청
[ ] 3가지 시나리오 JSON 저장
[ ] 이전 예측 vs 실제 비교 (2개월 차부터)
[ ] 프론트엔드 데이터 교체
[ ] 사용자에게 "업데이트됨" 알림
```
---
**작성일**: 2025-10-03
**다음 검토**: 2025-11-01 (첫 월간 업데이트 후)

View File

@ -0,0 +1,611 @@
# Phase 2.1 핵심 개선사항 (우선 적용)
## 🎯 적용 범위
Phase 2.1에서는 **3가지 핵심 기능**만 집중 구현:
1. ✅ **시나리오별 예측** (보수적/중립/낙관적)
2. ✅ **예측 신뢰도**
3. ✅ **리스크 평가**
---
## 📊 데이터 구조 최적화
### 기존 구조 (Phase 2.0)
```json
{
"1_캔들데이터": {
"data": [
{
"week": 1,
"date": "2025-10-07",
"open": 455.80,
"high": 468.20,
"low": 448.30,
"close": 462.50
}
// ... 156주
]
}
}
```
### 새로운 구조 (Phase 2.1) - **종가만 수집**
```json
{
"1_시나리오별_예측": {
"conservative": {
"description": "경기 침체 시나리오",
"probability": "20%",
"3year_return": "+15%",
"final_price": 298.50,
"data": [
{
"week": 1,
"date": "2025-10-07",
"close": 262.30
},
{
"week": 2,
"date": "2025-10-14",
"close": 264.80
}
// ... 156주 (종가만)
]
},
"neutral": {
"description": "현재 추세 유지",
"probability": "60%",
"3year_return": "+35%",
"final_price": 350.75,
"data": [
{
"week": 1,
"date": "2025-10-07",
"close": 265.20
},
{
"week": 2,
"date": "2025-10-14",
"close": 268.50
}
// ... 156주 (종가만)
]
},
"optimistic": {
"description": "AI 혁신 성공 시나리오",
"probability": "20%",
"3year_return": "+65%",
"final_price": 428.25,
"data": [
{
"week": 1,
"date": "2025-10-07",
"close": 268.90
},
{
"week": 2,
"date": "2025-10-14",
"close": 272.40
}
// ... 156주 (종가만)
]
}
}
}
```
**변경 이유**:
- ✅ 기존 서비스가 종가 기준으로 계산
- ✅ OHLC 불필요 (AI 토큰 낭비)
- ✅ 데이터 크기 75% 감소
- ✅ 그래프에서 3개 시나리오 동시 표시 가능
---
## 🎯 예측 신뢰도 구조
```json
{
"2_예측_신뢰도": {
"confidence_score": 7.5,
"rating": "중간",
"confidence_basis": [
"과거 5년 데이터 분석 완료",
"애널리스트 12개 기관 의견 반영",
"최근 3개월 뉴스 18건 분석"
],
"uncertainty_factors": [
"Fed 금리 정책 불확실성",
"중국 경기 침체 리스크",
"경쟁사 신제품 출시 영향"
],
"confidence_by_period": {
"3months": 8.5,
"6months": 7.5,
"1year": 6.5,
"3years": 5.0
},
"recommendation": "중립 시나리오를 기준으로 하되, 보수적/낙관적 범위 참고 권장"
}
}
```
**활용 방안**:
- 그래프 상단에 "예측 신뢰도: 7.5/10 (중간)" 표시
- 3개월 예측은 신뢰도 높음(8.5), 3년 예측은 참고용(5.0) 명시
- 불확실 요인을 사용자에게 경고 메시지로 표시
---
## ⚠️ 리스크 평가 구조
```json
{
"3_리스크_평가": {
"overall_risk": "중간",
"risk_score": 6.0,
"risk_factors": [
{
"category": "거시경제",
"risk": "Fed 금리 인상 지속",
"probability": "높음",
"impact": "중간",
"severity": "중간",
"mitigation": "장기 투자(2년 이상)로 리스크 분산"
},
{
"category": "산업",
"risk": "중국 전기차 경쟁 심화",
"probability": "높음",
"impact": "높음",
"severity": "높음",
"mitigation": "미국/유럽 시장 성장 모니터링"
},
{
"category": "기업",
"risk": "CEO 개인 리스크 (트위터 관련)",
"probability": "중간",
"impact": "중간",
"severity": "중간",
"mitigation": "경영진 다각화 진행 상황 확인"
}
],
"worst_case_scenario": {
"condition": "경기 침체 + 실적 악화 + 경쟁 심화",
"predicted_loss": "-35%",
"recovery_period": "18-24개월"
}
}
}
```
**활용 방안**:
- 투자 전 "위험 요소 확인하기" 버튼 제공
- 리스크 점수에 따라 경고 색상 변경 (낮음: 초록, 중간: 노랑, 높음: 빨강)
- 초보 투자자에게 대응 전략(mitigation) 명확히 제시
---
## 📤 최종 JSON 구조 (Phase 2.1)
```json
{
"metadata": {
"ticker": "TSLA",
"generated_date": "2025-10-03",
"data_period": "2010-06-29 to 2025-10-02",
"prediction_period": "2025-10-07 to 2028-10-07",
"next_update_due": "2025-11-01",
"version": "2.1",
"ai_model": "Claude 3.5 Sonnet",
"extended_thinking": true
},
"1_시나리오별_예측": {
"conservative": {
"description": "경기 침체 시나리오",
"probability": "20%",
"3year_return": "+15%",
"final_price": 298.50,
"data": [
{"week": 1, "date": "2025-10-07", "close": 262.30},
{"week": 2, "date": "2025-10-14", "close": 264.80}
// ... 156주 (종가만)
]
},
"neutral": {
"description": "현재 추세 유지",
"probability": "60%",
"3year_return": "+35%",
"final_price": 350.75,
"data": [/* 156주 종가 */]
},
"optimistic": {
"description": "AI 혁신 성공 시나리오",
"probability": "20%",
"3year_return": "+65%",
"final_price": 428.25,
"data": [/* 156주 종가 */]
}
},
"2_예측_신뢰도": {
"confidence_score": 7.5,
"rating": "중간",
"confidence_basis": ["..."],
"uncertainty_factors": ["..."],
"confidence_by_period": {
"3months": 8.5,
"6months": 7.5,
"1year": 6.5,
"3years": 5.0
}
},
"3_리스크_평가": {
"overall_risk": "중간",
"risk_score": 6.0,
"risk_factors": [
{
"category": "거시경제",
"risk": "...",
"probability": "높음",
"impact": "중간",
"severity": "중간",
"mitigation": "..."
}
],
"worst_case_scenario": {
"condition": "...",
"predicted_loss": "-35%",
"recovery_period": "18-24개월"
}
},
"4_애널리스트_분석": {
// 기존 구조 유지
},
"5_최신뉴스_요약": {
// 기존 구조 유지
},
"6_캔들데이터_분석": {
// 기존 구조 유지
}
}
```
---
## 🎨 프론트엔드 그래프 표시 방안
### 3개 시나리오 동시 표시 (Recharts)
```typescript
// ChartArea.tsx 예시 수정안
<LineChart>
<Line
type="monotone"
dataKey="conservative_close"
stroke="#ef4444"
strokeWidth={2}
name="보수적 시나리오 (-15%)"
strokeDasharray="5 5" // 점선
/>
<Line
type="monotone"
dataKey="neutral_close"
stroke="#3b82f6"
strokeWidth={3}
name="중립 시나리오 (기준)"
/>
<Line
type="monotone"
dataKey="optimistic_close"
stroke="#22c55e"
strokeWidth={2}
name="낙관적 시나리오 (+65%)"
strokeDasharray="5 5" // 점선
/>
</LineChart>
```
**범위 표시 (Shadow Area)**:
```typescript
<Area
type="monotone"
dataKey="optimistic_close"
stroke="none"
fill="#22c55e"
fillOpacity={0.1}
/>
<Area
type="monotone"
dataKey="conservative_close"
stroke="none"
fill="#ef4444"
fillOpacity={0.1}
/>
```
**시각적 효과**:
- 중립(파랑 실선): 굵은 선으로 기준 표시
- 낙관(초록 점선): 상단 범위
- 보수(빨강 점선): 하단 범위
- 배경 음영: 낙관~보수 사이 범위를 연한 색으로 표시
---
## 📝 수정된 AI 프롬프트 (generate_ai_request.py)
### 기존 프롬프트에 추가할 내용
```markdown
## 🎯 요청사항
다음 3가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 시나리오별 주가 예측 (향후 3년 주봉, **종가만**)
다음 3가지 시나리오로 예측하되, **OHLC가 아닌 종가(close)만** 제공:
**보수적 시나리오 (Conservative)** - 확률 20%
- 조건: 경기 침체, 실적 악화, 경쟁 심화
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중립 시나리오 (Neutral)** - 확률 60% ⭐ 기본
- 조건: 현재 추세 유지
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**낙관적 시나리오 (Optimistic)** - 확률 20%
- 조건: 신제품 성공, 시장 확대, 실적 호조
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중요**: Open, High, Low는 제외하고 **Close만** 제공
---
### 2. 예측 신뢰도
이 예측의 신뢰도를 평가:
- **전체 신뢰도 점수** (1-10점, 소수점 가능)
- **신뢰도 등급** (높음/중간/낮음)
- **신뢰 근거** (데이터 품질, 애널리스트 수, 뉴스 건수)
- **불확실 요인** (3-5개 리스크)
- **기간별 신뢰도** (3개월/6개월/1년/3년)
- **투자자 권장사항** (어떤 시나리오를 기준으로 볼지)
---
### 3. 리스크 평가
주요 리스크 요인 3-5개를 체계적으로 분석:
각 리스크별로:
- **카테고리** (거시경제/산업/기업)
- **리스크 설명**
- **발생 확률** (높음/중간/낮음)
- **영향도** (높음/중간/낮음)
- **심각도** (높음/중간/낮음)
- **대응 전략** (초보 투자자 관점)
추가:
- **전체 리스크 점수** (1-10점, 낮을수록 안전)
- **최악 시나리오** (조건, 예상 손실률, 회복 기간)
---
### 4. 애널리스트 분석 요약
(기존 유지)
---
### 5. 최신 뉴스 요약
(기존 유지)
---
### 6. 캔들데이터 분석 내용
(기존 유지)
---
## 📤 출력 형식 (JSON)
```json
{
"metadata": {
"ticker": "TSLA",
"generated_date": "YYYY-MM-DD",
"data_period": "start to end",
"prediction_period": "start to end (3년)",
"next_update_due": "YYYY-MM-DD",
"version": "2.1",
"ai_model": "Claude 3.5 Sonnet",
"extended_thinking": true
},
"1_시나리오별_예측": {
"conservative": {
"description": "시나리오 설명",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
{"week": 1, "date": "YYYY-MM-DD", "close": 0.00},
{"week": 2, "date": "YYYY-MM-DD", "close": 0.00}
// ... 156주 (종가만, OHLC 제외)
]
},
"neutral": {
"description": "시나리오 설명",
"probability": "60%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [/* 156주 종가 */]
},
"optimistic": {
"description": "시나리오 설명",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [/* 156주 종가 */]
}
},
"2_예측_신뢰도": {
"confidence_score": 7.5,
"rating": "높음/중간/낮음",
"confidence_basis": [
"근거 1",
"근거 2",
"근거 3"
],
"uncertainty_factors": [
"불확실 요인 1",
"불확실 요인 2",
"불확실 요인 3"
],
"confidence_by_period": {
"3months": 0.0,
"6months": 0.0,
"1year": 0.0,
"3years": 0.0
},
"recommendation": "권장사항 설명"
},
"3_리스크_평가": {
"overall_risk": "높음/중간/낮음",
"risk_score": 6.0,
"risk_factors": [
{
"category": "거시경제/산업/기업",
"risk": "리스크 설명",
"probability": "높음/중간/낮음",
"impact": "높음/중간/낮음",
"severity": "높음/중간/낮음",
"mitigation": "대응 전략"
}
],
"worst_case_scenario": {
"condition": "최악 조건 설명",
"predicted_loss": "-X%",
"recovery_period": "X개월"
}
},
"4_애널리스트_분석": {
// 기존 구조 유지
},
"5_최신뉴스_요약": {
// 기존 구조 유지
},
"6_캔들데이터_분석": {
// 기존 구조 유지
}
}
```
---
## ⚠️ 중요 사항
1. **종가만 제공**: OHLC 중 **Close만** 포함 (Open, High, Low 제외)
2. **3개 시나리오 필수**: Conservative, Neutral, Optimistic 모두 156주 생성
3. **신뢰도 평가 필수**: 1-10점 점수 + 기간별 신뢰도
4. **리스크 체계화**: 카테고리/확률/영향도 명확히
5. **출처 URL**: 애널리스트, 뉴스 모두 출처 포함
6. **현실적 예측**: 과장 없이 보수적 접근
---
## 📋 체크리스트
- [ ] 종가만 156주×3개 시나리오 = 468개 데이터 포인트
- [ ] 신뢰도 점수 1-10점 (소수점 가능)
- [ ] 리스크 3-5개 (카테고리별)
- [ ] 애널리스트 출처 URL
- [ ] 뉴스 출처 URL
- [ ] JSON 형식 검증
- [ ] 메타데이터 (업데이트 날짜, 버전)
```
---
## 🚀 다음 단계
### 1. generate_ai_request.py 수정
- 프롬프트 섹션을 위 내용으로 교체
- 버전을 2.1로 업데이트
- 메타데이터에 `extended_thinking: true` 추가
### 2. 테스트 실행
```bash
cd 설계/2차
python generate_ai_request.py TSLA
```
### 3. Claude.ai에서 테스트
- CSV 첨부
- 수정된 프롬프트 입력
- 응답 JSON이 Phase 2.1 구조 따르는지 확인
### 4. 프론트엔드 수정 (Phase 2.1 적용 시)
- `ChartArea.tsx`: 3개 시나리오 Line 추가
- 신뢰도 표시 컴포넌트 추가
- 리스크 평가 모달/패널 추가
---
## 📊 데이터 크기 비교
### Phase 2.0 (OHLC 전체)
```
156주 × 1개 시나리오 × 4개 필드 (OHLC) = 624개 데이터 포인트
```
### Phase 2.1 (종가만)
```
156주 × 3개 시나리오 × 1개 필드 (Close) = 468개 데이터 포인트
```
**결과**:
- ✅ 데이터 포인트 25% 감소
- ✅ 시나리오 3배 증가 (1개 → 3개)
- ✅ AI 토큰 사용량 30% 감소 예상
- ✅ 그래프 표현력 3배 향상 (범위 표시 가능)
---
## ✅ 결론
**Phase 2.1 핵심 전략**:
1. **데이터 최적화**: OHLC → Close만 (기존 서비스 로직과 일치)
2. **시나리오 다양화**: 1개 → 3개 (보수/중립/낙관)
3. **신뢰도 투명화**: 점수 + 불확실 요인 명시
4. **리스크 체계화**: 카테고리별 체계적 분석
**사용자 경험 개선**:
- "최악의 경우 -35%, 최선의 경우 +65%" 범위 확인 가능
- "이 예측은 7.5/10 신뢰도" 명확한 기준 제공
- "Fed 금리 리스크 높음" 구체적 경고
**개발 효율성**:
- 프롬프트 수정만으로 적용 가능
- 프론트엔드는 Line 2개만 추가하면 됨
- 기존 Phase 2.0 데이터 구조와 호환 가능
---
**작성일**: 2025-10-03
**버전**: 2.1
**다음 업데이트**: TSLA 테스트 후 전체 10개 티커 적용

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,325 @@
# Apple Inc. (AAPL) 주식 예측 분석 요청 (Phase 2.1)
## 📎 첨부 데이터
- **파일**: AAPL_candle_data_20251003.csv
- **기간**: 1980-12-12 ~ 2025-10-02 (11293일)
- **형식**: Date, Open, High, Low, Close, Volume
---
## 🎯 요청사항
다음 6가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 시나리오별 주가 예측 (향후 3년 주봉, **종가만**)
다음 3가지 시나리오로 예측하되, **OHLC가 아닌 종가(close)만** 제공:
**보수적 시나리오 (Conservative)** - 확률 20%
- 조건: 경기 침체, 실적 악화, 경쟁 심화
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중립 시나리오 (Neutral)** - 확률 60% ⭐ 기본
- 조건: 현재 추세 유지
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**낙관적 시나리오 (Optimistic)** - 확률 20%
- 조건: 신제품 성공, 시장 확대, 실적 호조
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중요**: Open, High, Low는 제외하고 **Close만** 제공
---
### 2. 예측 신뢰도
이 예측의 신뢰도를 평가:
- **전체 신뢰도 점수** (1-10점, 소수점 가능)
- **신뢰도 등급** (높음/중간/낮음)
- **신뢰 근거** (데이터 품질, 애널리스트 수, 뉴스 건수 등)
- **불확실 요인** (3-5개 주요 리스크)
- **기간별 신뢰도** (3개월/6개월/1년/3년)
- **투자자 권장사항** (어떤 시나리오를 기준으로 볼지)
---
### 3. 리스크 평가
주요 리스크 요인 3-5개를 체계적으로 분석:
각 리스크별로:
- **카테고리** (거시경제/산업/기업)
- **리스크 설명**
- **발생 확률** (높음/중간/낮음)
- **영향도** (높음/중간/낮음)
- **심각도** (높음/중간/낮음)
- **대응 전략** (초보 투자자 관점에서 실행 가능한 전략)
추가:
- **전체 리스크 점수** (1-10점, 낮을수록 안전)
- **최악 시나리오** (조건, 예상 손실률, 회복 기간)
---
### 4. 애널리스트 분석 요약
- **웹 검색**으로 최신 애널리스트 의견 확인
- 검색어: "Apple Inc. stock AAPL analyst rating 2025"
- 평균 목표주가, 추천 비율 (매수/보유/매도)
- 주요 투자기관 의견
- **반드시 출처 URL 포함**
---
### 5. 최신 뉴스 요약
- **웹 검색**으로 최근 3개월 주요 뉴스 확인
- 검색어: "Apple Inc. stock AAPL news 2025"
- 긍정적/부정적 영향 분류
- **반드시 출처 URL 포함**
---
### 6. 캔들데이터 분석 내용
- 첨부된 CSV 파일 분석 결과
- 장기 트렌드, 계절성 패턴, 변동성
- 주요 이벤트 시점 (급등/급락) 분석
---
## 📤 출력 형식 (JSON)
다음 형식으로 **정확하게** 응답해주세요:
```json
{
"metadata": {
"ticker": "AAPL",
"generated_date": "YYYY-MM-DD",
"data_period": "1980-12-12 to 2025-10-02",
"prediction_period": "2025-10-02 이후 3년 (156주)",
"next_update_due": "YYYY-MM-DD (1개월 후)",
"version": "2.1",
"ai_model": "Claude Sonnet 4.5",
"extended_thinking": true
},
"1_시나리오별_예측": {
"conservative": {
"description": "보수적 시나리오 설명 (경기 침체 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
{
"week": 1,
"date": "YYYY-MM-DD",
"close": 0.00
},
{
"week": 2,
"date": "YYYY-MM-DD",
"close": 0.00
}
// ... 156주 전체 (종가만, OHLC 제외)
]
},
"neutral": {
"description": "중립 시나리오 설명 (현재 추세 유지)",
"probability": "60%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156주 종가 데이터
]
},
"optimistic": {
"description": "낙관적 시나리오 설명 (신제품 성공 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156주 종가 데이터
]
}
},
"2_예측_신뢰도": {
"confidence_score": 7.5,
"rating": "높음/중간/낮음",
"confidence_basis": [
"근거 1 (예: 과거 5년 데이터 분석 완료)",
"근거 2 (예: 애널리스트 12개 기관 의견 반영)",
"근거 3 (예: 최근 3개월 뉴스 18건 분석)"
],
"uncertainty_factors": [
"불확실 요인 1 (예: Fed 금리 정책 불확실성)",
"불확실 요인 2 (예: 중국 경기 침체 리스크)",
"불확실 요인 3 (예: 경쟁사 신제품 출시 영향)"
],
"confidence_by_period": {
"3months": 8.5,
"6months": 7.5,
"1year": 6.5,
"3years": 5.0
},
"recommendation": "중립 시나리오를 기준으로 하되, 보수적/낙관적 범위를 참고하여 투자 결정 권장"
},
"3_리스크_평가": {
"overall_risk": "높음/중간/낮음",
"risk_score": 6.0,
"risk_factors": [
{
"category": "거시경제",
"risk": "Fed 금리 인상 지속",
"probability": "높음",
"impact": "중간",
"severity": "중간",
"mitigation": "장기 투자(2년 이상)로 리스크 분산"
},
{
"category": "산업",
"risk": "중국 전기차 경쟁 심화",
"probability": "높음",
"impact": "높음",
"severity": "높음",
"mitigation": "미국/유럽 시장 성장 모니터링"
},
{
"category": "기업",
"risk": "CEO 개인 리스크",
"probability": "중간",
"impact": "중간",
"severity": "중간",
"mitigation": "경영진 다각화 진행 상황 확인"
}
],
"worst_case_scenario": {
"condition": "경기 침체 + 실적 악화 + 경쟁 심화",
"predicted_loss": "-35%",
"recovery_period": "18-24개월"
}
},
"4_애널리스트_분석": {
"summary": "애널리스트 종합 의견 요약",
"average_target_price": 0.00,
"current_price": 0.00,
"upside_potential": "+0.0%",
"recommendations": {
"buy": 0,
"hold": 0,
"sell": 0
},
"key_analysts": [
{
"firm": "투자기관명",
"analyst": "애널리스트명",
"rating": "Buy/Hold/Sell",
"target_price": 0.00,
"date": "YYYY-MM-DD",
"source_url": "https://..."
}
],
"sources": [
{
"title": "출처 제목",
"url": "https://...",
"date": "YYYY-MM-DD"
}
]
},
"5_최신뉴스_요약": {
"summary": "최신 뉴스 종합 요약",
"sentiment": "긍정적/중립/부정적",
"positive_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
],
"negative_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
]
},
"6_캔들데이터_분석": {
"data_period": "1980-12-12 to 2025-10-02",
"total_trading_days": 11293,
"long_term_trend": {
"description": "장기 추세 설명",
"cagr_5y": "+0.0%",
"cagr_10y": "+0.0%"
},
"volatility": {
"annual_volatility": "0.0%",
"rating": "높음/중간/낮음",
"max_drawdown": "-0.0% (기간)"
},
"seasonal_patterns": {
"Q1": "평균 +0.0%",
"Q2": "평균 +0.0%",
"Q3": "평균 +0.0%",
"Q4": "평균 +0.0%",
"strongest_month": "월 (+0.0% 평균)",
"weakest_month": "월 (-0.0% 평균)"
},
"key_events": [
{
"date": "YYYY-MM-DD",
"event": "이벤트 설명",
"price_change": "+0.0% in X days"
}
],
"moving_averages": {
"current_vs_MA50": "+0.0%",
"current_vs_MA200": "+0.0%",
"trend": "상승/하락/횡보 추세"
},
"prediction_basis": "예측 근거 설명"
}
}
```
---
## ⚠️ 중요 사항
1. **종가만 제공**: OHLC 중 **Close만** 포함 (Open, High, Low 제외)
2. **3개 시나리오 필수**: Conservative, Neutral, Optimistic 모두 156주 생성
3. **신뢰도 평가 필수**: 1-10점 점수 + 기간별 신뢰도
4. **리스크 체계화**: 카테고리/확률/영향도 명확히 구분
5. **웹 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 웹 검색으로 확인
6. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
7. **JSON 형식 엄수**: 위 JSON 구조를 정확히 따를 것
8. **현실적 예측**: 과장되지 않은 보수적 예측
9. **자연스러운 변동**: 주간 등락이 있어야 현실적
---
## 📋 체크리스트
- [ ] 첨부된 CSV 파일 확인
- [ ] 웹 검색으로 최신 뉴스 수집 (출처 URL 포함)
- [ ] 웹 검색으로 애널리스트 의견 수집 (출처 URL 포함)
- [ ] 과거 캔들 데이터 패턴 분석
- [ ] 종가만 156주×3개 시나리오 = 468개 데이터 포인트 생성
- [ ] 신뢰도 점수 1-10점 (소수점 가능)
- [ ] 리스크 3-5개 (거시경제/산업/기업 카테고리별)
- [ ] 모든 출처 URL 포함
- [ ] JSON 형식 검증
- [ ] 메타데이터 (업데이트 날짜, 버전 2.1)
**분석을 시작해주세요!** 🚀

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,199 @@
"""
Tesla, Inc. (TSLA) 주식 예측 분석을 위한 AI 프롬프트
프롬프트를 claude.ai에 입력하여 투자 예측 분석을 받으세요.
Claude.ai 설정:
- 모델: Claude 3.5 Sonnet (Extended thinking)
- 옵션: Thinking + 연구 기능 활성화
- 첨부 파일: TSLA_candle_data_20251003.csv
"""
PROMPT = """
# Tesla, Inc. (TSLA) 주식 예측 분석 요청
## 📎 첨부 데이터
- **파일**: TSLA_candle_data_20251003.csv
- **기간**: 2010-06-29 ~ 2025-10-02 (3840)
- **형식**: Date, Open, High, Low, Close, Volume
---
## 🎯 요청사항
다음 4가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 캔들데이터 (향후 3년 주봉 예측)
- 2025-10-02 이후 3년간 주간 단위 예측
- 156 (3 × 52)
- 포함 항목: Date, Open, High, Low, Close
### 2. 애널리스트 분석 요약
- ** 검색**으로 최신 애널리스트 의견 확인
- 검색어: "Tesla, Inc. stock TSLA analyst rating 2025"
- 평균 목표주가, 추천 비율 (매수/보유/매도)
- 주요 투자기관 의견
- **반드시 출처 URL 포함**
### 3. 최신 뉴스 요약
- ** 검색**으로 최근 3개월 주요 뉴스 확인
- 검색어: "Tesla, Inc. stock TSLA news 2025"
- 긍정적/부정적 영향 분류
- **반드시 출처 URL 포함**
### 4. 캔들데이터 분석 내용
- 첨부된 CSV 파일 분석 결과
- 장기 트렌드, 계절성 패턴, 변동성
- 주요 이벤트 시점 (급등/급락) 분석
---
## 📤 출력 형식 (JSON)
다음 형식으로 **정확하게** 응답해주세요:
```json
{
"1_캔들데이터": {
"period": "2025-10-02 이후 3년",
"frequency": "weekly",
"total_weeks": 156,
"data": [
{
"week": 1,
"date": "YYYY-MM-DD",
"open": 0.00,
"high": 0.00,
"low": 0.00,
"close": 0.00
}
// ... 156 전체 데이터 (중간 생략 없이 모두 작성)
]
},
"2_애널리스트_분석": {
"summary": "애널리스트 종합 의견 요약",
"average_target_price": 0.00,
"current_price": 0.00,
"upside_potential": "+0.0%",
"recommendations": {
"buy": 0,
"hold": 0,
"sell": 0
},
"key_analysts": [
{
"firm": "투자기관명",
"analyst": "애널리스트명",
"rating": "Buy/Hold/Sell",
"target_price": 0.00,
"date": "YYYY-MM-DD",
"source_url": "https://..."
}
],
"sources": [
{
"title": "출처 제목",
"url": "https://...",
"date": "YYYY-MM-DD"
}
]
},
"3_최신뉴스_요약": {
"summary": "최신 뉴스 종합 요약",
"sentiment": "긍정적/중립/부정적",
"positive_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
],
"negative_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
]
},
"4_캔들데이터_분석": {
"data_period": "2010-06-29 to 2025-10-02",
"total_trading_days": 3840,
"long_term_trend": {
"description": "장기 추세 설명",
"cagr_5y": "+0.0%",
"cagr_10y": "+0.0%"
},
"volatility": {
"annual_volatility": "0.0%",
"rating": "높음/중간/낮음",
"max_drawdown": "-0.0% (기간)"
},
"seasonal_patterns": {
"Q1": "평균 +0.0%",
"Q2": "평균 +0.0%",
"Q3": "평균 +0.0%",
"Q4": "평균 +0.0%",
"strongest_month": "월 (+0.0% 평균)",
"weakest_month": "월 (-0.0% 평균)"
},
"key_events": [
{
"date": "YYYY-MM-DD",
"event": "이벤트 설명",
"price_change": "+0.0% in X days"
}
],
"moving_averages": {
"current_vs_MA50": "+0.0%",
"current_vs_MA200": "+0.0%",
"trend": "상승/하락/횡보 추세"
},
"prediction_basis": "예측 근거 설명"
}
}
```
---
## ⚠️ 중요 사항
1. ** 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 검색으로 확인
2. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
3. **156 전체 데이터**: 캔들데이터는 누락 없이 156 전체 생성
4. **JSON 형식 엄수**: JSON 구조를 정확히 따를
5. **현실적 예측**: 과장되지 않은 보수적 예측
6. **자연스러운 변동**: 주간 등락이 있어야 현실적
---
## 📋 체크리스트
- [ ] 첨부된 CSV 파일 확인
- [ ] 검색으로 최신 뉴스 수집
- [ ] 검색으로 애널리스트 의견 수집
- [ ] 과거 캔들 데이터 패턴 분석
- [ ] 3 주봉 예측 생성 (156, 누락 없이)
- [ ] 모든 출처 URL 포함
- [ ] JSON 형식 검증
**분석을 시작해주세요!** 🚀
"""
# 프롬프트 출력 (복사해서 claude.ai에 붙여넣기)
if __name__ == '__main__':
print("="*80)
print("다음 프롬프트를 복사하여 claude.ai에 붙여넣으세요:")
print("="*80)
print()
print(PROMPT)
print()
print("="*80)
print("설정:")
print("- 모델: Claude 3.5 Sonnet (Extended thinking)")
print("- 옵션: Thinking + 연구 기능 활성화")
print("- 첨부 파일: TSLA_candle_data_20251003.csv")
print("="*80)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,325 @@
# Tesla, Inc. (TSLA) 주식 예측 분석 요청 (Phase 2.1)
## 📎 첨부 데이터
- **파일**: TSLA_candle_data_20251003.csv
- **기간**: 2010-06-29 ~ 2025-10-02 (3840일)
- **형식**: Date, Open, High, Low, Close, Volume
---
## 🎯 요청사항
다음 6가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 시나리오별 주가 예측 (향후 3년 주봉, **종가만**)
다음 3가지 시나리오로 예측하되, **OHLC가 아닌 종가(close)만** 제공:
**보수적 시나리오 (Conservative)** - 확률 20%
- 조건: 경기 침체, 실적 악화, 경쟁 심화
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중립 시나리오 (Neutral)** - 확률 60% ⭐ 기본
- 조건: 현재 추세 유지
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**낙관적 시나리오 (Optimistic)** - 확률 20%
- 조건: 신제품 성공, 시장 확대, 실적 호조
- 3년 후 예상 수익률 및 최종 주가
- 156주 데이터 (week, date, close만)
**중요**: Open, High, Low는 제외하고 **Close만** 제공
---
### 2. 예측 신뢰도
이 예측의 신뢰도를 평가:
- **전체 신뢰도 점수** (1-10점, 소수점 가능)
- **신뢰도 등급** (높음/중간/낮음)
- **신뢰 근거** (데이터 품질, 애널리스트 수, 뉴스 건수 등)
- **불확실 요인** (3-5개 주요 리스크)
- **기간별 신뢰도** (3개월/6개월/1년/3년)
- **투자자 권장사항** (어떤 시나리오를 기준으로 볼지)
---
### 3. 리스크 평가
주요 리스크 요인 3-5개를 체계적으로 분석:
각 리스크별로:
- **카테고리** (거시경제/산업/기업)
- **리스크 설명**
- **발생 확률** (높음/중간/낮음)
- **영향도** (높음/중간/낮음)
- **심각도** (높음/중간/낮음)
- **대응 전략** (초보 투자자 관점에서 실행 가능한 전략)
추가:
- **전체 리스크 점수** (1-10점, 낮을수록 안전)
- **최악 시나리오** (조건, 예상 손실률, 회복 기간)
---
### 4. 애널리스트 분석 요약
- **웹 검색**으로 최신 애널리스트 의견 확인
- 검색어: "Tesla, Inc. stock TSLA analyst rating 2025"
- 평균 목표주가, 추천 비율 (매수/보유/매도)
- 주요 투자기관 의견
- **반드시 출처 URL 포함**
---
### 5. 최신 뉴스 요약
- **웹 검색**으로 최근 3개월 주요 뉴스 확인
- 검색어: "Tesla, Inc. stock TSLA news 2025"
- 긍정적/부정적 영향 분류
- **반드시 출처 URL 포함**
---
### 6. 캔들데이터 분석 내용
- 첨부된 CSV 파일 분석 결과
- 장기 트렌드, 계절성 패턴, 변동성
- 주요 이벤트 시점 (급등/급락) 분석
---
## 📤 출력 형식 (JSON)
다음 형식으로 **정확하게** 응답해주세요:
```json
{
"metadata": {
"ticker": "TSLA",
"generated_date": "YYYY-MM-DD",
"data_period": "2010-06-29 to 2025-10-02",
"prediction_period": "2025-10-02 이후 3년 (156주)",
"next_update_due": "YYYY-MM-DD (1개월 후)",
"version": "2.1",
"ai_model": "Claude Sonnet 4.5",
"extended_thinking": true
},
"1_시나리오별_예측": {
"conservative": {
"description": "보수적 시나리오 설명 (경기 침체 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
{
"week": 1,
"date": "YYYY-MM-DD",
"close": 0.00
},
{
"week": 2,
"date": "YYYY-MM-DD",
"close": 0.00
}
// ... 156주 전체 (종가만, OHLC 제외)
]
},
"neutral": {
"description": "중립 시나리오 설명 (현재 추세 유지)",
"probability": "60%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156주 종가 데이터
]
},
"optimistic": {
"description": "낙관적 시나리오 설명 (신제품 성공 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156주 종가 데이터
]
}
},
"2_예측_신뢰도": {
"confidence_score": 7.5,
"rating": "높음/중간/낮음",
"confidence_basis": [
"근거 1 (예: 과거 5년 데이터 분석 완료)",
"근거 2 (예: 애널리스트 12개 기관 의견 반영)",
"근거 3 (예: 최근 3개월 뉴스 18건 분석)"
],
"uncertainty_factors": [
"불확실 요인 1 (예: Fed 금리 정책 불확실성)",
"불확실 요인 2 (예: 중국 경기 침체 리스크)",
"불확실 요인 3 (예: 경쟁사 신제품 출시 영향)"
],
"confidence_by_period": {
"3months": 8.5,
"6months": 7.5,
"1year": 6.5,
"3years": 5.0
},
"recommendation": "중립 시나리오를 기준으로 하되, 보수적/낙관적 범위를 참고하여 투자 결정 권장"
},
"3_리스크_평가": {
"overall_risk": "높음/중간/낮음",
"risk_score": 6.0,
"risk_factors": [
{
"category": "거시경제",
"risk": "Fed 금리 인상 지속",
"probability": "높음",
"impact": "중간",
"severity": "중간",
"mitigation": "장기 투자(2년 이상)로 리스크 분산"
},
{
"category": "산업",
"risk": "중국 전기차 경쟁 심화",
"probability": "높음",
"impact": "높음",
"severity": "높음",
"mitigation": "미국/유럽 시장 성장 모니터링"
},
{
"category": "기업",
"risk": "CEO 개인 리스크",
"probability": "중간",
"impact": "중간",
"severity": "중간",
"mitigation": "경영진 다각화 진행 상황 확인"
}
],
"worst_case_scenario": {
"condition": "경기 침체 + 실적 악화 + 경쟁 심화",
"predicted_loss": "-35%",
"recovery_period": "18-24개월"
}
},
"4_애널리스트_분석": {
"summary": "애널리스트 종합 의견 요약",
"average_target_price": 0.00,
"current_price": 0.00,
"upside_potential": "+0.0%",
"recommendations": {
"buy": 0,
"hold": 0,
"sell": 0
},
"key_analysts": [
{
"firm": "투자기관명",
"analyst": "애널리스트명",
"rating": "Buy/Hold/Sell",
"target_price": 0.00,
"date": "YYYY-MM-DD",
"source_url": "https://..."
}
],
"sources": [
{
"title": "출처 제목",
"url": "https://...",
"date": "YYYY-MM-DD"
}
]
},
"5_최신뉴스_요약": {
"summary": "최신 뉴스 종합 요약",
"sentiment": "긍정적/중립/부정적",
"positive_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
],
"negative_news": [
{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}
]
},
"6_캔들데이터_분석": {
"data_period": "2010-06-29 to 2025-10-02",
"total_trading_days": 3840,
"long_term_trend": {
"description": "장기 추세 설명",
"cagr_5y": "+0.0%",
"cagr_10y": "+0.0%"
},
"volatility": {
"annual_volatility": "0.0%",
"rating": "높음/중간/낮음",
"max_drawdown": "-0.0% (기간)"
},
"seasonal_patterns": {
"Q1": "평균 +0.0%",
"Q2": "평균 +0.0%",
"Q3": "평균 +0.0%",
"Q4": "평균 +0.0%",
"strongest_month": "월 (+0.0% 평균)",
"weakest_month": "월 (-0.0% 평균)"
},
"key_events": [
{
"date": "YYYY-MM-DD",
"event": "이벤트 설명",
"price_change": "+0.0% in X days"
}
],
"moving_averages": {
"current_vs_MA50": "+0.0%",
"current_vs_MA200": "+0.0%",
"trend": "상승/하락/횡보 추세"
},
"prediction_basis": "예측 근거 설명"
}
}
```
---
## ⚠️ 중요 사항
1. **종가만 제공**: OHLC 중 **Close만** 포함 (Open, High, Low 제외)
2. **3개 시나리오 필수**: Conservative, Neutral, Optimistic 모두 156주 생성
3. **신뢰도 평가 필수**: 1-10점 점수 + 기간별 신뢰도
4. **리스크 체계화**: 카테고리/확률/영향도 명확히 구분
5. **웹 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 웹 검색으로 확인
6. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
7. **JSON 형식 엄수**: 위 JSON 구조를 정확히 따를 것
8. **현실적 예측**: 과장되지 않은 보수적 예측
9. **자연스러운 변동**: 주간 등락이 있어야 현실적
---
## 📋 체크리스트
- [ ] 첨부된 CSV 파일 확인
- [ ] 웹 검색으로 최신 뉴스 수집 (출처 URL 포함)
- [ ] 웹 검색으로 애널리스트 의견 수집 (출처 URL 포함)
- [ ] 과거 캔들 데이터 패턴 분석
- [ ] 종가만 156주×3개 시나리오 = 468개 데이터 포인트 생성
- [ ] 신뢰도 점수 1-10점 (소수점 가능)
- [ ] 리스크 3-5개 (거시경제/산업/기업 카테고리별)
- [ ] 모든 출처 URL 포함
- [ ] JSON 형식 검증
- [ ] 메타데이터 (업데이트 날짜, 버전 2.1)
**분석을 시작해주세요!** 🚀

View File

@ -1,397 +0,0 @@
{
"1_캔들데이터": {
"period": "2025-10-07 to 2028-09-26",
"frequency": "weekly",
"total_weeks": 156,
"data": [
{"week": 1, "date": "2025-10-07", "open": 255.20, "high": 258.40, "low": 253.10, "close": 257.30},
{"week": 2, "date": "2025-10-14", "open": 257.50, "high": 261.80, "low": 255.90, "close": 260.10},
{"week": 3, "date": "2025-10-21", "open": 260.30, "high": 264.20, "low": 258.70, "close": 262.80},
{"week": 4, "date": "2025-10-28", "open": 262.60, "high": 268.50, "low": 261.40, "close": 266.90},
{"week": 5, "date": "2025-11-04", "open": 267.10, "high": 271.30, "low": 265.20, "close": 269.50},
{"week": 6, "date": "2025-11-11", "open": 269.70, "high": 273.80, "low": 267.50, "close": 271.20},
{"week": 7, "date": "2025-11-18", "open": 271.40, "high": 276.90, "low": 270.10, "close": 275.60},
{"week": 8, "date": "2025-11-25", "open": 275.80, "high": 280.20, "low": 273.90, "close": 278.40},
{"week": 9, "date": "2025-12-02", "open": 278.60, "high": 283.50, "low": 276.80, "close": 281.70},
{"week": 10, "date": "2025-12-09", "open": 281.90, "high": 286.40, "low": 279.50, "close": 284.20},
{"week": 11, "date": "2025-12-16", "open": 284.40, "high": 289.10, "low": 282.60, "close": 287.50},
{"week": 12, "date": "2025-12-23", "open": 287.70, "high": 292.30, "low": 285.90, "close": 290.80},
{"week": 13, "date": "2025-12-30", "open": 290.60, "high": 294.70, "low": 288.40, "close": 292.30},
{"week": 14, "date": "2026-01-06", "open": 292.50, "high": 296.80, "low": 290.20, "close": 294.60},
{"week": 15, "date": "2026-01-13", "open": 294.80, "high": 299.20, "low": 292.50, "close": 297.10},
{"week": 16, "date": "2026-01-20", "open": 297.30, "high": 301.50, "low": 295.10, "close": 299.40},
{"week": 17, "date": "2026-01-27", "open": 299.60, "high": 304.20, "low": 297.30, "close": 301.80},
{"week": 18, "date": "2026-02-03", "open": 302.00, "high": 306.50, "low": 299.70, "close": 304.30},
{"week": 19, "date": "2026-02-10", "open": 304.50, "high": 308.90, "low": 302.20, "close": 306.70},
{"week": 20, "date": "2026-02-17", "open": 306.90, "high": 311.40, "low": 304.60, "close": 309.20},
{"week": 21, "date": "2026-02-24", "open": 309.40, "high": 313.80, "low": 307.10, "close": 311.60},
{"week": 22, "date": "2026-03-03", "open": 311.80, "high": 315.20, "low": 308.90, "close": 312.50},
{"week": 23, "date": "2026-03-10", "open": 312.30, "high": 316.70, "low": 310.00, "close": 314.40},
{"week": 24, "date": "2026-03-17", "open": 314.60, "high": 318.20, "low": 311.90, "close": 315.80},
{"week": 25, "date": "2026-03-24", "open": 316.00, "high": 319.80, "low": 313.40, "close": 317.20},
{"week": 26, "date": "2026-03-31", "open": 317.40, "high": 320.90, "low": 314.70, "close": 318.50},
{"week": 27, "date": "2026-04-07", "open": 318.70, "high": 322.10, "low": 316.00, "close": 319.60},
{"week": 28, "date": "2026-04-14", "open": 319.80, "high": 323.40, "low": 317.20, "close": 321.10},
{"week": 29, "date": "2026-04-21", "open": 321.30, "high": 324.80, "low": 318.60, "close": 322.40},
{"week": 30, "date": "2026-04-28", "open": 322.60, "high": 326.20, "low": 320.10, "close": 323.70},
{"week": 31, "date": "2026-05-05", "open": 323.90, "high": 327.50, "low": 321.40, "close": 325.10},
{"week": 32, "date": "2026-05-12", "open": 325.30, "high": 328.90, "low": 322.70, "close": 326.50},
{"week": 33, "date": "2026-05-19", "open": 326.70, "high": 329.20, "low": 323.50, "close": 327.10},
{"week": 34, "date": "2026-05-26", "open": 327.30, "high": 330.80, "low": 324.80, "close": 328.60},
{"week": 35, "date": "2026-06-02", "open": 328.80, "high": 332.40, "low": 326.20, "close": 330.10},
{"week": 36, "date": "2026-06-09", "open": 330.30, "high": 334.70, "low": 327.80, "close": 332.50},
{"week": 37, "date": "2026-06-16", "open": 332.70, "high": 336.20, "low": 330.10, "close": 334.00},
{"week": 38, "date": "2026-06-23", "open": 334.20, "high": 337.80, "low": 331.60, "close": 335.50},
{"week": 39, "date": "2026-06-30", "open": 335.70, "high": 339.30, "low": 333.10, "close": 337.00},
{"week": 40, "date": "2026-07-07", "open": 337.20, "high": 341.60, "low": 334.80, "close": 339.40},
{"week": 41, "date": "2026-07-14", "open": 339.60, "high": 343.20, "low": 337.10, "close": 341.00},
{"week": 42, "date": "2026-07-21", "open": 341.20, "high": 345.70, "low": 338.80, "close": 343.50},
{"week": 43, "date": "2026-07-28", "open": 343.70, "high": 347.30, "low": 341.20, "close": 345.10},
{"week": 44, "date": "2026-08-04", "open": 345.30, "high": 348.90, "low": 342.80, "close": 346.70},
{"week": 45, "date": "2026-08-11", "open": 346.90, "high": 350.50, "low": 344.40, "close": 348.30},
{"week": 46, "date": "2026-08-18", "open": 348.50, "high": 352.10, "low": 346.00, "close": 349.80},
{"week": 47, "date": "2026-08-25", "open": 350.00, "high": 353.60, "low": 347.50, "close": 351.30},
{"week": 48, "date": "2026-09-01", "open": 351.50, "high": 354.20, "low": 348.10, "close": 350.80},
{"week": 49, "date": "2026-09-08", "open": 350.60, "high": 353.90, "low": 347.30, "close": 349.50},
{"week": 50, "date": "2026-09-15", "open": 349.30, "high": 352.70, "low": 345.90, "close": 348.20},
{"week": 51, "date": "2026-09-22", "open": 348.00, "high": 351.40, "low": 344.60, "close": 346.80},
{"week": 52, "date": "2026-09-29", "open": 346.60, "high": 350.00, "low": 343.20, "close": 345.40},
{"week": 53, "date": "2026-10-06", "open": 345.20, "high": 349.80, "low": 342.70, "close": 347.60},
{"week": 54, "date": "2026-10-13", "open": 347.80, "high": 352.40, "low": 345.30, "close": 350.20},
{"week": 55, "date": "2026-10-20", "open": 350.40, "high": 354.80, "low": 347.90, "close": 352.70},
{"week": 56, "date": "2026-10-27", "open": 352.90, "high": 357.30, "low": 350.40, "close": 355.10},
{"week": 57, "date": "2026-11-03", "open": 355.30, "high": 359.70, "low": 352.80, "close": 357.50},
{"week": 58, "date": "2026-11-10", "open": 357.70, "high": 362.10, "low": 355.20, "close": 359.90},
{"week": 59, "date": "2026-11-17", "open": 360.10, "high": 364.50, "low": 357.60, "close": 362.30},
{"week": 60, "date": "2026-11-24", "open": 362.50, "high": 366.90, "low": 360.00, "close": 364.70},
{"week": 61, "date": "2026-12-01", "open": 364.90, "high": 369.30, "low": 362.40, "close": 367.10},
{"week": 62, "date": "2026-12-08", "open": 367.30, "high": 371.70, "low": 364.80, "close": 369.50},
{"week": 63, "date": "2026-12-15", "open": 369.70, "high": 374.10, "low": 367.20, "close": 371.90},
{"week": 64, "date": "2026-12-22", "open": 372.10, "high": 376.50, "low": 369.60, "close": 374.30},
{"week": 65, "date": "2026-12-29", "open": 374.50, "high": 378.90, "low": 372.00, "close": 376.70},
{"week": 66, "date": "2027-01-05", "open": 376.90, "high": 381.30, "low": 374.40, "close": 379.10},
{"week": 67, "date": "2027-01-12", "open": 379.30, "high": 383.70, "low": 376.80, "close": 381.50},
{"week": 68, "date": "2027-01-19", "open": 381.70, "high": 386.10, "low": 379.20, "close": 383.90},
{"week": 69, "date": "2027-01-26", "open": 384.10, "high": 388.50, "low": 381.60, "close": 386.30},
{"week": 70, "date": "2027-02-02", "open": 386.50, "high": 390.90, "low": 384.00, "close": 388.70},
{"week": 71, "date": "2027-02-09", "open": 388.90, "high": 393.30, "low": 386.40, "close": 391.10},
{"week": 72, "date": "2027-02-16", "open": 391.30, "high": 395.70, "low": 388.80, "close": 393.50},
{"week": 73, "date": "2027-02-23", "open": 393.70, "high": 398.10, "low": 391.20, "close": 395.90},
{"week": 74, "date": "2027-03-02", "open": 396.10, "high": 400.50, "low": 393.60, "close": 398.30},
{"week": 75, "date": "2027-03-09", "open": 398.50, "high": 402.90, "low": 396.00, "close": 400.70},
{"week": 76, "date": "2027-03-16", "open": 400.90, "high": 405.30, "low": 398.40, "close": 403.10},
{"week": 77, "date": "2027-03-23", "open": 403.30, "high": 407.70, "low": 400.80, "close": 405.50},
{"week": 78, "date": "2027-03-30", "open": 405.70, "high": 410.10, "low": 403.20, "close": 407.90},
{"week": 79, "date": "2027-04-06", "open": 408.10, "high": 412.50, "low": 405.60, "close": 410.30},
{"week": 80, "date": "2027-04-13", "open": 410.50, "high": 414.90, "low": 408.00, "close": 412.70},
{"week": 81, "date": "2027-04-20", "open": 412.90, "high": 417.30, "low": 410.40, "close": 415.10},
{"week": 82, "date": "2027-04-27", "open": 415.30, "high": 419.70, "low": 412.80, "close": 417.50},
{"week": 83, "date": "2027-05-04", "open": 417.70, "high": 422.10, "low": 415.20, "close": 419.90},
{"week": 84, "date": "2027-05-11", "open": 420.10, "high": 424.50, "low": 417.60, "close": 422.30},
{"week": 85, "date": "2027-05-18", "open": 422.50, "high": 426.90, "low": 420.00, "close": 424.70},
{"week": 86, "date": "2027-05-25", "open": 424.90, "high": 429.30, "low": 422.40, "close": 427.10},
{"week": 87, "date": "2027-06-01", "open": 427.30, "high": 431.70, "low": 424.80, "close": 429.50},
{"week": 88, "date": "2027-06-08", "open": 429.70, "high": 434.10, "low": 427.20, "close": 431.90},
{"week": 89, "date": "2027-06-15", "open": 432.10, "high": 436.50, "low": 429.60, "close": 434.30},
{"week": 90, "date": "2027-06-22", "open": 434.50, "high": 438.90, "low": 432.00, "close": 436.70},
{"week": 91, "date": "2027-06-29", "open": 436.90, "high": 441.30, "low": 434.40, "close": 439.10},
{"week": 92, "date": "2027-07-06", "open": 439.30, "high": 443.70, "low": 436.80, "close": 441.50},
{"week": 93, "date": "2027-07-13", "open": 441.70, "high": 446.10, "low": 439.20, "close": 443.90},
{"week": 94, "date": "2027-07-20", "open": 444.10, "high": 448.50, "low": 441.60, "close": 446.30},
{"week": 95, "date": "2027-07-27", "open": 446.50, "high": 450.90, "low": 444.00, "close": 448.70},
{"week": 96, "date": "2027-08-03", "open": 448.90, "high": 453.30, "low": 446.40, "close": 451.10},
{"week": 97, "date": "2027-08-10", "open": 451.30, "high": 455.70, "low": 448.80, "close": 453.50},
{"week": 98, "date": "2027-08-17", "open": 453.70, "high": 458.10, "low": 451.20, "close": 455.90},
{"week": 99, "date": "2027-08-24", "open": 456.10, "high": 460.50, "low": 453.60, "close": 458.30},
{"week": 100, "date": "2027-08-31", "open": 458.50, "high": 462.90, "low": 456.00, "close": 460.70},
{"week": 101, "date": "2027-09-07", "open": 460.90, "high": 464.30, "low": 457.50, "close": 461.20},
{"week": 102, "date": "2027-09-14", "open": 461.00, "high": 464.80, "low": 457.70, "close": 459.80},
{"week": 103, "date": "2027-09-21", "open": 459.60, "high": 463.20, "low": 456.30, "close": 458.40},
{"week": 104, "date": "2027-09-28", "open": 458.20, "high": 461.80, "low": 454.90, "close": 457.00},
{"week": 105, "date": "2027-10-05", "open": 456.80, "high": 461.50, "low": 454.40, "close": 459.30},
{"week": 106, "date": "2027-10-12", "open": 459.50, "high": 464.20, "low": 457.10, "close": 462.00},
{"week": 107, "date": "2027-10-19", "open": 462.20, "high": 466.90, "low": 459.80, "close": 464.70},
{"week": 108, "date": "2027-10-26", "open": 464.90, "high": 469.60, "low": 462.50, "close": 467.40},
{"week": 109, "date": "2027-11-02", "open": 467.60, "high": 472.30, "low": 465.20, "close": 470.10},
{"week": 110, "date": "2027-11-09", "open": 470.30, "high": 475.00, "low": 467.90, "close": 472.80},
{"week": 111, "date": "2027-11-16", "open": 473.00, "high": 477.70, "low": 470.60, "close": 475.50},
{"week": 112, "date": "2027-11-23", "open": 475.70, "high": 480.40, "low": 473.30, "close": 478.20},
{"week": 113, "date": "2027-11-30", "open": 478.40, "high": 483.10, "low": 476.00, "close": 480.90},
{"week": 114, "date": "2027-12-07", "open": 481.10, "high": 485.80, "low": 478.70, "close": 483.60},
{"week": 115, "date": "2027-12-14", "open": 483.80, "high": 488.50, "low": 481.40, "close": 486.30},
{"week": 116, "date": "2027-12-21", "open": 486.50, "high": 491.20, "low": 484.10, "close": 489.00},
{"week": 117, "date": "2027-12-28", "open": 489.20, "high": 493.90, "low": 486.80, "close": 491.70},
{"week": 118, "date": "2028-01-04", "open": 491.90, "high": 496.60, "low": 489.50, "close": 494.40},
{"week": 119, "date": "2028-01-11", "open": 494.60, "high": 499.30, "low": 492.20, "close": 497.10},
{"week": 120, "date": "2028-01-18", "open": 497.30, "high": 502.00, "low": 494.90, "close": 499.80},
{"week": 121, "date": "2028-01-25", "open": 500.00, "high": 504.70, "low": 497.60, "close": 502.50},
{"week": 122, "date": "2028-02-01", "open": 502.70, "high": 507.40, "low": 500.30, "close": 505.20},
{"week": 123, "date": "2028-02-08", "open": 505.40, "high": 510.10, "low": 503.00, "close": 507.90},
{"week": 124, "date": "2028-02-15", "open": 508.10, "high": 512.80, "low": 505.70, "close": 510.60},
{"week": 125, "date": "2028-02-22", "open": 510.80, "high": 515.50, "low": 508.40, "close": 513.30},
{"week": 126, "date": "2028-02-29", "open": 513.50, "high": 518.20, "low": 511.10, "close": 516.00},
{"week": 127, "date": "2028-03-07", "open": 516.20, "high": 520.90, "low": 513.80, "close": 518.70},
{"week": 128, "date": "2028-03-14", "open": 518.90, "high": 523.60, "low": 516.50, "close": 521.40},
{"week": 129, "date": "2028-03-21", "open": 521.60, "high": 526.30, "low": 519.20, "close": 524.10},
{"week": 130, "date": "2028-03-28", "open": 524.30, "high": 529.00, "low": 521.90, "close": 526.80},
{"week": 131, "date": "2028-04-04", "open": 527.00, "high": 531.70, "low": 524.60, "close": 529.50},
{"week": 132, "date": "2028-04-11", "open": 529.70, "high": 534.40, "low": 527.30, "close": 532.20},
{"week": 133, "date": "2028-04-18", "open": 532.40, "high": 537.10, "low": 530.00, "close": 534.90},
{"week": 134, "date": "2028-04-25", "open": 535.10, "high": 539.80, "low": 532.70, "close": 537.60},
{"week": 135, "date": "2028-05-02", "open": 537.80, "high": 542.50, "low": 535.40, "close": 540.30},
{"week": 136, "date": "2028-05-09", "open": 540.50, "high": 545.20, "low": 538.10, "close": 543.00},
{"week": 137, "date": "2028-05-16", "open": 543.20, "high": 547.90, "low": 540.80, "close": 545.70},
{"week": 138, "date": "2028-05-23", "open": 545.90, "high": 550.60, "low": 543.50, "close": 548.40},
{"week": 139, "date": "2028-05-30", "open": 548.60, "high": 553.30, "low": 546.20, "close": 551.10},
{"week": 140, "date": "2028-06-06", "open": 551.30, "high": 556.00, "low": 548.90, "close": 553.80},
{"week": 141, "date": "2028-06-13", "open": 554.00, "high": 558.70, "low": 551.60, "close": 556.50},
{"week": 142, "date": "2028-06-20", "open": 556.70, "high": 561.40, "low": 554.30, "close": 559.20},
{"week": 143, "date": "2028-06-27", "open": 559.40, "high": 564.10, "low": 557.00, "close": 561.90},
{"week": 144, "date": "2028-07-04", "open": 562.10, "high": 566.80, "low": 559.70, "close": 564.60},
{"week": 145, "date": "2028-07-11", "open": 564.80, "high": 569.50, "low": 562.40, "close": 567.30},
{"week": 146, "date": "2028-07-18", "open": 567.50, "high": 572.20, "low": 565.10, "close": 570.00},
{"week": 147, "date": "2028-07-25", "open": 570.20, "high": 574.90, "low": 567.80, "close": 572.70},
{"week": 148, "date": "2028-08-01", "open": 572.90, "high": 577.60, "low": 570.50, "close": 575.40},
{"week": 149, "date": "2028-08-08", "open": 575.60, "high": 580.30, "low": 573.20, "close": 578.10},
{"week": 150, "date": "2028-08-15", "open": 578.30, "high": 583.00, "low": 575.90, "close": 580.80},
{"week": 151, "date": "2028-08-22", "open": 581.00, "high": 585.70, "low": 578.60, "close": 583.50},
{"week": 152, "date": "2028-08-29", "open": 583.70, "high": 588.40, "low": 581.30, "close": 586.20},
{"week": 153, "date": "2028-09-05", "open": 586.40, "high": 590.10, "low": 583.10, "close": 587.80},
{"week": 154, "date": "2028-09-12", "open": 587.60, "high": 591.50, "low": 584.40, "close": 586.30},
{"week": 155, "date": "2028-09-19", "open": 586.10, "high": 590.20, "low": 582.90, "close": 585.00},
{"week": 156, "date": "2028-09-26", "open": 584.80, "high": 588.90, "low": 581.60, "close": 583.70}
]
},
"2_애널리스트_분석": {
"summary": "월가 애널리스트들은 Apple에 대해 신중한 낙관론을 보입니다. 약 52-65%가 매수, 33-43%가 보유, 3-7%가 매도를 제시하며, 평균 목표주가는 $237-251로 현재가($254.63) 대비 소폭 하락 여지를 시사합니다. iPhone 17 초기 판매 호조와 Apple Intelligence 출시가 긍정적이나, 중국 시장 경쟁 심화(Huawei 1위 탈환), EU 규제 압박($570M 벌금), AI 기능 지연이 우려 요인입니다. 최고 목표주가는 Wedbush와 Seaport의 $310, 최저는 Barclays의 $173로 큰 편차를 보입니다.",
"average_target_price": 244.42,
"current_price": 254.63,
"upside_potential": "-4.0%",
"recommendations": {
"buy": 18,
"hold": 12,
"sell": 2
},
"key_analysts": [
{
"firm": "Goldman Sachs",
"analyst": "Michael Ng",
"rating": "Buy",
"target_price": 266.00,
"date": "2025-09-15",
"source_url": "https://www.investing.com/news/analyst-ratings/goldman-sachs-reiterates-apple-stock-buy-rating-294-target-93CH-3903397"
},
{
"firm": "Morgan Stanley",
"analyst": "Erik W. Woodring",
"rating": "Overweight",
"target_price": 235.00,
"date": "2025-04-28",
"source_url": "https://macdailynews.com/2025/04/28/morgan-stanley-raises-apple-target-to-235/"
},
{
"firm": "JP Morgan",
"analyst": "Samik Chatterjee",
"rating": "Overweight",
"target_price": 280.00,
"date": "2025-09-19",
"source_url": "https://www.investing.com/news/analyst-ratings/jpmorgan-raises-apple-stock-price-target-to-280-on-iphone-17-demand-93CH-4246639"
},
{
"firm": "Bank of America",
"analyst": "Wamsi Mohan",
"rating": "Buy",
"target_price": 270.00,
"date": "2025-09-10",
"source_url": "https://invezz.com/news/2025/09/03/bank-of-america-lifts-price-targets-on-alphabet-and-apple-following-antitrust-ruling/"
},
{
"firm": "Wedbush Securities",
"analyst": "Dan Ives",
"rating": "Outperform",
"target_price": 310.00,
"date": "2025-09-22",
"source_url": "https://www.cnbc.com/2025/09/22/dan-ives-raises-apple-price-target-to-highest-on-wall-street-cites-strong-iphone-17-demand.html"
},
{
"firm": "Piper Sandler",
"analyst": "Matt Farrell",
"rating": "Neutral",
"target_price": 225.00,
"date": "2024-07-09",
"source_url": "https://appleinsider.com/articles/24/07/09/piper-sandler-raises-apple-target-price-on-promise-of-ai"
},
{
"firm": "Evercore ISI",
"analyst": "Amit Daryanani",
"rating": "Outperform",
"target_price": 290.00,
"date": "2025-09-26",
"source_url": "https://macdailynews.com/2025/09/26/evercore-ups-apple-price-target-to-290-on-better-than-expected-iphone-refresh-cycle/"
},
{
"firm": "Barclays",
"analyst": "Tim Long",
"rating": "Underweight",
"target_price": 173.00,
"date": "2025-04-24",
"source_url": "https://www.investing.com/news/analyst-ratings/barclays-cuts-apple-stock-price-target-to-173-from-197-93CH-4012647"
},
{
"firm": "Seaport Research",
"analyst": "Jay Goldberg",
"rating": "Buy",
"target_price": 310.00,
"date": "2025-10-01",
"source_url": "https://macdailynews.com/2025/09/26/evercore-ups-apple-price-target-to-290-on-better-than-expected-iphone-refresh-cycle/"
},
{
"firm": "Tigress Financial",
"analyst": "Not specified",
"rating": "Strong Buy",
"target_price": 305.00,
"date": "2025-09-15",
"source_url": "https://www.benzinga.com/quote/AAPL/analyst-ratings"
}
],
"sources": [
{
"title": "TipRanks AAPL Analyst Consensus",
"url": "https://www.tipranks.com/stocks/aapl/forecast",
"date": "2025-10-02"
},
{
"title": "MarketBeat AAPL Stock Forecast",
"url": "https://www.marketbeat.com/stocks/NASDAQ/AAPL/forecast/",
"date": "2025-10-02"
},
{
"title": "StockAnalysis AAPL Analyst Ratings",
"url": "https://stockanalysis.com/stocks/aapl/forecast/",
"date": "2025-10-02"
},
{
"title": "Benzinga Apple Analyst Ratings",
"url": "https://www.benzinga.com/quote/AAPL/analyst-ratings",
"date": "2025-10-02"
}
]
},
"3_최신뉴스_요약": {
"summary": "2025년 7-10월 Apple 뉴스는 복합적입니다. Q3 실적 호조($94B, +10% YoY)와 iPhone 17 출시가 긍정적이나, 중국 시장 점유율 하락(5위로 추락, Huawei 1위 탈환), EU 규제 강화($570M 벌금), Vision Pro 판매 부진(생산 중단), AI 기능 지연이 부정적입니다. Tim Cook은 $600B 미국 투자를 약속해 관세 면제를 확보했으나, 분기당 $800M-$1.1B의 관세 비용이 발생하고 있습니다. AI 경쟁에서 뒤처졌다는 내부 인식과 CEO 교체 요구도 나왔습니다. 전반적으로 재무는 강하나 전략적 도전이 커지고 있습니다.",
"sentiment": "혼합(Mixed) - 재무적으로 강하나 전략적 우려 존재",
"positive_news": [
{
"headline": "Q3 2025 실적, 예상 크게 상회 - 매출 $94B(+10%), EPS $1.57(+12%)",
"date": "2025-07-31",
"source": "Apple Newsroom / CNBC",
"url": "https://www.apple.com/newsroom/2025/07/apple-reports-third-quarter-results/",
"impact": "강력한 긍정 - 2021년 12월 이후 최고 성장률. iPhone 13.5% 성장, Services 13.3% 성장으로 기록 경신. 주가 장외거래 상승"
},
{
"headline": "iPhone 17 패밀리 출시 - 초박형 iPhone Air(5.6mm) 포함",
"date": "2025-09-09",
"source": "Apple Newsroom",
"url": "https://www.apple.com/newsroom/2025/09/apple-debuts-iphone-17/",
"impact": "강력한 긍정 - 혁신적인 폼팩터와 Apple Intelligence 통합으로 업그레이드 수요 촉진 기대. 63개국 동시 출시"
},
{
"headline": "Apple Intelligence 기능 정식 출시 - iOS 26 탑재",
"date": "2025-09-15",
"source": "Apple Newsroom",
"url": "https://www.apple.com/newsroom/2025/09/new-apple-intelligence-features-are-available-today/",
"impact": "긍정 - AI 경쟁에서 뒤처졌다는 비판 해소. Live Translation, Genmoji, Image Playground 등 9개 언어 지원"
},
{
"headline": "중국 시장에서 성장 복귀 - 2년 만에 첫 플러스 성장",
"date": "2025-07-28",
"source": "CNBC / Canalys",
"url": "https://www.cnbc.com/2025/07/28/apple-returns-to-growth-in-china-huawei-reclaims-top-smartphone-spot.html",
"impact": "긍정 - Q2 중국 출하량 4-8% 증가. 하락세 반전으로 투자자 신뢰 회복"
},
{
"headline": "미국 제조 투자 $600B로 확대 - 트럼프 대통령과 백악관 회동",
"date": "2025-08-06",
"source": "Apple Newsroom / White House",
"url": "https://www.apple.com/newsroom/2025/08/apple-increases-us-commitment-to-600-billion-usd-announces-ambitious-program/",
"impact": "긍정 - 100% 칩 관세 면제 확보. 공급망 리스크 감소 및 정치적 위기 관리"
}
],
"negative_news": [
{
"headline": "중국 시장점유율 5위로 추락, Huawei 1위 탈환 - 4월 출하량 50% 급락",
"date": "2025-05-14",
"source": "Asia Financial / CNBC",
"url": "https://www.asiafinancial.com/apple-sales-in-china-plunge-50-huawei-back-on-top-fortune",
"impact": "강력한 부정 - 4월 출하량 49.6% 급락. Huawei 18% 점유율로 1위, Apple 5위. 중국은 2대 시장으로 성장 전망 위협"
},
{
"headline": "EU 디지털시장법 위반 $570M 벌금 및 규제 전쟁",
"date": "2025-09-24",
"source": "Apple Newsroom / Euronews",
"url": "https://www.apple.com/newsroom/2025/09/the-digital-markets-acts-impacts-on-eu-users/",
"impact": "강력한 부정 - DMA 공개 비판. $570M 벌금 항소 중. iPhone Mirroring 등 기능 EU 미제공"
},
{
"headline": "Vision Pro 판매 부진으로 생산 중단 - 1년 판매 42-50만 대",
"date": "2025-01-01",
"source": "SiliconANGLE / TechTimes",
"url": "https://siliconangle.com/2025/01/01/apple-reportedly-ceases-vision-pro-production-amid-sluggish-sales/",
"impact": "부정 - 초기 목표 70-80만 대 대비 실패. $3,499 가격이 대중화 방해"
},
{
"headline": "고급 Siri 기능 대폭 지연 - 2026년으로 무기한 연기",
"date": "2025-03-15",
"source": "CNN / TechCrunch",
"url": "https://edition.cnn.com/2025/07/15/tech/apple-ceo-tim-cook",
"impact": "부정 - ChatGPT/Gemini 수준 기능 무기한 지연. AI 경쟁에서 뒤처진다는 인식 강화"
},
{
"headline": "Tim Cook CEO 교체 요구 - AI 실패 및 리더십 의문",
"date": "2025-07-15",
"source": "CNN Business",
"url": "https://edition.cnn.com/2025/07/15/tech/apple-ceo-tim-cook",
"impact": "부정 - LightShed 애널리스트 CEO 교체 공개 요구. 투자자 신뢰 손상"
}
]
},
"4_캔들데이터_분석": {
"data_period": "1980-12-12 to 2025-10-01",
"total_trading_days": 11292,
"long_term_trend": {
"description": "Apple은 1980년 IPO 이후 45년간 경이적인 장기 성장을 기록했습니다. $22 IPO 가격에서 현재 $255로 상승(분할 조정 시 142,537% 상승). 224대1 주식 분할 실시. iPhone 출시(2007) 이후 724% 급등하며 소비자 전자기기 거인으로 변모했습니다.",
"cagr_5y": "+19.47%",
"cagr_10y": "+25.70%",
"cagr_20y": "+28.78%",
"cagr_all_time": "+18.0%"
},
"volatility": {
"annual_volatility": "20.12%",
"rating": "중간 - 메가캡 기준 낮음",
"max_drawdown": "-81.8% (2003년 닷컴 버블)"
},
"seasonal_patterns": {
"Q1": "강세 - 홀리데이 시즌, iPhone 판매 최고조",
"Q2": "양호 - 안정적 성과",
"Q3": "혼조 - 변동성",
"Q4": "약세 - iPhone 출시에도 역사적 최약",
"strongest_month": "7월, 10월",
"weakest_month": "9월 (-4.47% 평균)",
"iphone_launch_impact": "역설적으로 9월 최약 - 소문에 사고 뉴스에 팔아라"
},
"key_events": [
{"date": "1980-12-12", "event": "IPO $22/주", "price_change": "+32% 첫날"},
{"date": "2007", "event": "iPhone 출시", "price_change": "+724% (10년)"},
{"date": "2023-07", "event": "시총 $3조 달성", "price_change": "세계 최초"}
],
"stock_splits": [
{"date": "2020-08", "ratio": "4-for-1", "impact": "총 224대1 누적"}
],
"moving_averages": {
"current_vs_MA50": "+2.3%",
"current_vs_MA200": "+7.6%",
"trend": "상승 - 모든 이동평균선 위"
},
"prediction_basis": "예측은 역사적 CAGR 19-26%를 보수적 12-15%로 조정, 계절성 패턴, 애널리스트 컨센서스 $244-310, Apple 낮은 변동성(주간 2-5%), iPhone 17 성공 가정, Apple Intelligence 점진적 채택, Services 13% 성장 지속을 기반으로 합니다. 3년 후 목표 $583.70은 현재 $255 대비 +129% 상승을 의미합니다."
}
}

View File

@ -1,17 +1,23 @@
"""
투자 상품별 AI 분석 요청 파일 생성기
투자 상품별 AI 분석 요청 파일 생성기 (디렉토리 구조화 버전)
사용법:
python generate_ai_request.py TSLA
python generate_ai_request.py AAPL
python generate_ai_request.py BTC-USD
생성 구조:
설계/2/AI분석요청/{티커명}/
{티커명}_candle_data_YYYYMMDD.csv
prompt_YYYYMMDD.json
"""
import sys
import psycopg2
import csv
from datetime import datetime
import json
import os
from datetime import datetime
# DB 연결 정보
DB_CONFIG = {
@ -48,7 +54,21 @@ def get_product_info(ticker):
}
return None
def extract_candle_data(ticker):
def create_ticker_directory(ticker):
"""티커별 디렉토리 생성"""
# 스크립트 파일의 위치 기준으로 디렉토리 생성
script_dir = os.path.dirname(os.path.abspath(__file__))
# 특수문자 처리 (예: BTC-USD -> BTC-USD, 005930.KS -> 005930KS)
safe_ticker = ticker.replace('.', '')
dir_path = os.path.join(script_dir, 'AI분석요청', safe_ticker)
os.makedirs(dir_path, exist_ok=True)
print(f'[INFO] 디렉토리 생성: {dir_path}/')
return dir_path
def extract_candle_data(ticker, dir_path):
"""캔들 데이터 추출 및 CSV 저장"""
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
@ -78,8 +98,10 @@ def extract_candle_data(ticker):
print(f'[INFO] 총 {len(rows)}개의 데이터 조회됨')
# CSV 파일명
csv_filename = f'{ticker.replace("-", "_")}_candle_data_{datetime.now().strftime("%Y%m%d")}.csv'
# CSV 파일명 (티커명 특수문자 처리)
safe_ticker = ticker.replace('.', '').replace('-', '_')
date_str = datetime.now().strftime("%Y%m%d")
csv_filename = f'{dir_path}/{safe_ticker}_candle_data_{date_str}.csv'
# CSV 파일로 저장
with open(csv_filename, 'w', newline='', encoding='utf-8') as f:
@ -94,14 +116,15 @@ def extract_candle_data(ticker):
conn.close()
return {
'filename': csv_filename,
'start_date': rows[0][0],
'end_date': rows[-1][0],
'filename': os.path.basename(csv_filename),
'full_path': csv_filename,
'start_date': str(rows[0][0]),
'end_date': str(rows[-1][0]),
'total_days': len(rows)
}
def generate_prompt(ticker, product_info, csv_info):
"""AI 분석용 프롬프트 생성"""
def generate_prompt_files(ticker, product_info, csv_info, dir_path):
"""AI 분석용 프롬프트를 텍스트 파일로 생성"""
# 티커 타입별 설명
if product_info['type'] == 'COIN':
@ -111,7 +134,25 @@ def generate_prompt(ticker, product_info, csv_info):
asset_type = "주식"
search_keyword = f"{product_info['name_en']} stock {ticker}"
prompt = f"""# {product_info['name_en']} ({ticker}) {asset_type} 예측 분석 요청
prompt_data = {
"ticker": ticker,
"product_info": {
"name_kr": product_info['name_kr'],
"name_en": product_info['name_en'],
"type": product_info['type'],
"asset_type": asset_type
},
"csv_info": {
"filename": csv_info['filename'],
"start_date": csv_info['start_date'],
"end_date": csv_info['end_date'],
"total_days": csv_info['total_days']
},
"search_keywords": {
"analyst": f"{search_keyword} analyst rating 2025",
"news": f"{search_keyword} news 2025"
},
"prompt": f"""# {product_info['name_en']} ({ticker}) {asset_type} 예측 분석 요청 (Phase 2.1)
## 📎 첨부 데이터
- **파일**: {csv_info['filename']}
@ -122,27 +163,79 @@ def generate_prompt(ticker, product_info, csv_info):
## 🎯 요청사항
다음 4가지를 분석하여 **JSON 형식으로** 응답해주세요:
다음 6가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 캔들데이터 (향후 3년 주봉 예측)
- {csv_info['end_date']} 이후 3년간 주간 단위 예측
- 156 (3 × 52)
- 포함 항목: Date, Open, High, Low, Close
### 1. 시나리오별 주가 예측 (향후 3년 주봉, **종가만**)
### 2. 애널리스트 분석 요약
다음 3가지 시나리오로 예측하되, **OHLC가 아닌 종가(close)** 제공:
**보수적 시나리오 (Conservative)** - 확률 20%
- 조건: 경기 침체, 실적 악화, 경쟁 심화
- 3 예상 수익률 최종 주가
- 156 데이터 (week, date, close만)
**중립 시나리오 (Neutral)** - 확률 60% 기본
- 조건: 현재 추세 유지
- 3 예상 수익률 최종 주가
- 156 데이터 (week, date, close만)
**낙관적 시나리오 (Optimistic)** - 확률 20%
- 조건: 신제품 성공, 시장 확대, 실적 호조
- 3 예상 수익률 최종 주가
- 156 데이터 (week, date, close만)
**중요**: Open, High, Low는 제외하고 **Close만** 제공
---
### 2. 예측 신뢰도
예측의 신뢰도를 평가:
- **전체 신뢰도 점수** (1-10, 소수점 가능)
- **신뢰도 등급** (높음/중간/낮음)
- **신뢰 근거** (데이터 품질, 애널리스트 , 뉴스 건수 )
- **불확실 요인** (3-5 주요 리스크)
- **기간별 신뢰도** (3개월/6개월/1/3)
- **투자자 권장사항** (어떤 시나리오를 기준으로 볼지)
---
### 3. 리스크 평가
주요 리스크 요인 3-5개를 체계적으로 분석:
리스크별로:
- **카테고리** (거시경제/산업/기업)
- **리스크 설명**
- **발생 확률** (높음/중간/낮음)
- **영향도** (높음/중간/낮음)
- **심각도** (높음/중간/낮음)
- **대응 전략** (초보 투자자 관점에서 실행 가능한 전략)
추가:
- **전체 리스크 점수** (1-10, 낮을수록 안전)
- **최악 시나리오** (조건, 예상 손실률, 회복 기간)
---
### 4. 애널리스트 분석 요약
- ** 검색**으로 최신 애널리스트 의견 확인
- 검색어: "{search_keyword} analyst rating 2025"
- 평균 목표주가, 추천 비율 (매수/보유/매도)
- 주요 투자기관 의견
- **반드시 출처 URL 포함**
### 3. 최신 뉴스 요약
---
### 5. 최신 뉴스 요약
- ** 검색**으로 최근 3개월 주요 뉴스 확인
- 검색어: "{search_keyword} news 2025"
- 긍정적/부정적 영향 분류
- **반드시 출처 URL 포함**
### 4. 캔들데이터 분석 내용
---
### 6. 캔들데이터 분석 내용
- 첨부된 CSV 파일 분석 결과
- 장기 트렌드, 계절성 패턴, 변동성
- 주요 이벤트 시점 (급등/급락) 분석
@ -155,23 +248,116 @@ def generate_prompt(ticker, product_info, csv_info):
```json
{{
"1_캔들데이터": {{
"period": "{csv_info['end_date']} 이후 3년",
"frequency": "weekly",
"total_weeks": 156,
"data": [
{{
"week": 1,
"date": "YYYY-MM-DD",
"open": 0.00,
"high": 0.00,
"low": 0.00,
"close": 0.00
}}
// ... 156 전체 데이터 (중간 생략 없이 모두 작성)
]
"metadata": {{
"ticker": "{ticker}",
"generated_date": "YYYY-MM-DD",
"data_period": "{csv_info['start_date']} to {csv_info['end_date']}",
"prediction_period": "{csv_info['end_date']} 이후 3년 (156주)",
"next_update_due": "YYYY-MM-DD (1개월 후)",
"version": "2.1",
"ai_model": "Claude Sonnet 4.5",
"extended_thinking": true
}},
"2_애널리스트_분석": {{
"1_시나리오별_예측": {{
"conservative": {{
"description": "보수적 시나리오 설명 (경기 침체 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
{{
"week": 1,
"date": "YYYY-MM-DD",
"close": 0.00
}},
{{
"week": 2,
"date": "YYYY-MM-DD",
"close": 0.00
}}
// ... 156 전체 (종가만, OHLC 제외)
]
}},
"neutral": {{
"description": "중립 시나리오 설명 (현재 추세 유지)",
"probability": "60%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156 종가 데이터
]
}},
"optimistic": {{
"description": "낙관적 시나리오 설명 (신제품 성공 등)",
"probability": "20%",
"3year_return": "+X%",
"final_price": 0.00,
"data": [
// ... 156 종가 데이터
]
}}
}},
"2_예측_신뢰도": {{
"confidence_score": 7.5,
"rating": "높음/중간/낮음",
"confidence_basis": [
"근거 1 (예: 과거 5년 데이터 분석 완료)",
"근거 2 (예: 애널리스트 12개 기관 의견 반영)",
"근거 3 (예: 최근 3개월 뉴스 18건 분석)"
],
"uncertainty_factors": [
"불확실 요인 1 (예: Fed 금리 정책 불확실성)",
"불확실 요인 2 (예: 중국 경기 침체 리스크)",
"불확실 요인 3 (예: 경쟁사 신제품 출시 영향)"
],
"confidence_by_period": {{
"3months": 8.5,
"6months": 7.5,
"1year": 6.5,
"3years": 5.0
}},
"recommendation": "중립 시나리오를 기준으로 하되, 보수적/낙관적 범위를 참고하여 투자 결정 권장"
}},
"3_리스크_평가": {{
"overall_risk": "높음/중간/낮음",
"risk_score": 6.0,
"risk_factors": [
{{
"category": "거시경제",
"risk": "Fed 금리 인상 지속",
"probability": "높음",
"impact": "중간",
"severity": "중간",
"mitigation": "장기 투자(2년 이상)로 리스크 분산"
}},
{{
"category": "산업",
"risk": "중국 전기차 경쟁 심화",
"probability": "높음",
"impact": "높음",
"severity": "높음",
"mitigation": "미국/유럽 시장 성장 모니터링"
}},
{{
"category": "기업",
"risk": "CEO 개인 리스크",
"probability": "중간",
"impact": "중간",
"severity": "중간",
"mitigation": "경영진 다각화 진행 상황 확인"
}}
],
"worst_case_scenario": {{
"condition": "경기 침체 + 실적 악화 + 경쟁 심화",
"predicted_loss": "-35%",
"recovery_period": "18-24개월"
}}
}},
"4_애널리스트_분석": {{
"summary": "애널리스트 종합 의견 요약",
"average_target_price": 0.00,
"current_price": 0.00,
@ -199,7 +385,8 @@ def generate_prompt(ticker, product_info, csv_info):
}}
]
}},
"3_최신뉴스_요약": {{
"5_최신뉴스_요약": {{
"summary": "최신 뉴스 종합 요약",
"sentiment": "긍정적/중립/부정적",
"positive_news": [
@ -221,7 +408,8 @@ def generate_prompt(ticker, product_info, csv_info):
}}
]
}},
"4_캔들데이터_분석": {{
"6_캔들데이터_분석": {{
"data_period": "{csv_info['start_date']} to {csv_info['end_date']}",
"total_trading_days": {csv_info['total_days']},
"long_term_trend": {{
@ -263,37 +451,51 @@ def generate_prompt(ticker, product_info, csv_info):
## ⚠️ 중요 사항
1. ** 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 검색으로 확인
2. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
3. **156 전체 데이터**: 캔들데이터는 누락 없이 156 전체 생성
4. **JSON 형식 엄수**: JSON 구조를 정확히 따를
5. **현실적 예측**: 과장되지 않은 보수적 예측
6. **자연스러운 변동**: 주간 등락이 있어야 현실적
1. **종가만 제공**: OHLC **Close만** 포함 (Open, High, Low 제외)
2. **3 시나리오 필수**: Conservative, Neutral, Optimistic 모두 156 생성
3. **신뢰도 평가 필수**: 1-10 점수 + 기간별 신뢰도
4. **리스크 체계화**: 카테고리/확률/영향도 명확히 구분
5. ** 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 검색으로 확인
6. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
7. **JSON 형식 엄수**: JSON 구조를 정확히 따를
8. **현실적 예측**: 과장되지 않은 보수적 예측
9. **자연스러운 변동**: 주간 등락이 있어야 현실적
---
## 📋 체크리스트
- [ ] 첨부된 CSV 파일 확인
- [ ] 검색으로 최신 뉴스 수집
- [ ] 검색으로 애널리스트 의견 수집
- [ ] 검색으로 최신 뉴스 수집 (출처 URL 포함)
- [ ] 검색으로 애널리스트 의견 수집 (출처 URL 포함)
- [ ] 과거 캔들 데이터 패턴 분석
- [ ] 3 주봉 예측 생성 (156, 누락 없이)
- [ ] 종가만 156×3 시나리오 = 468 데이터 포인트 생성
- [ ] 신뢰도 점수 1-10 (소수점 가능)
- [ ] 리스크 3-5 (거시경제/산업/기업 카테고리별)
- [ ] 모든 출처 URL 포함
- [ ] JSON 형식 검증
- [ ] 메타데이터 (업데이트 날짜, 버전 2.1)
**분석을 시작해주세요!** 🚀
"""
""",
"claude_settings": {
"model": "Claude Sonnet 4.5",
"features": ["Extended Thinking", "Research"],
"attachments": [csv_info['filename']]
}
}
return prompt
# 프롬프트 텍스트 파일 저장
date_str = datetime.now().strftime("%Y%m%d")
safe_ticker = ticker.replace('.', '').replace('-', '_')
prompt_filename = f'{dir_path}/prompt_{safe_ticker}_{date_str}.md'
def save_prompt_file(ticker, prompt):
"""프롬프트를 텍스트 파일로 저장"""
filename = f'{ticker.replace("-", "_")}_prompt.txt'
with open(filename, 'w', encoding='utf-8') as f:
f.write(prompt)
print(f'[SUCCESS] 프롬프트 파일 생성: {filename}')
return filename
with open(prompt_filename, 'w', encoding='utf-8') as f:
f.write(prompt_data['prompt'])
print(f'[SUCCESS] 프롬프트 파일 생성: {prompt_filename}')
return prompt_filename
def main():
if len(sys.argv) < 2:
@ -302,6 +504,7 @@ def main():
print(" python generate_ai_request.py TSLA")
print(" python generate_ai_request.py AAPL")
print(" python generate_ai_request.py BTC-USD")
print(" python generate_ai_request.py 005930.KS")
sys.exit(1)
ticker = sys.argv[1].upper()
@ -311,44 +514,44 @@ def main():
print(f"{'='*60}\n")
# 1. 상품 정보 조회
print("[1/4] 투자 상품 정보 조회...")
print("[1/4] 투자 상품 정보 조회...")
product_info = get_product_info(ticker)
if not product_info:
print(f"[ERROR] {ticker}를 invest_product_code 테이블에서 찾을 수 없습니다.")
sys.exit(1)
print(f" - 상품명: {product_info['name_kr']} ({product_info['name_en']})")
print(f" - 타입: {product_info['type']}")
print(f" 이름: {product_info['name_kr']} ({product_info['name_en']})")
print(f" 타입: {product_info['type']}")
# 2. 캔들 데이터 추출
print("\n[2/4] 캔들 데이터 추출 중...")
csv_info = extract_candle_data(ticker)
# 2. 티커별 디렉토리 생성
print(f"\n[2/4] 디렉토리 생성...")
dir_path = create_ticker_directory(ticker)
# 3. CSV 파일 생성
print(f"\n[3/4] CSV 파일 생성...")
csv_info = extract_candle_data(ticker, dir_path)
if not csv_info:
sys.exit(1)
# 3. 프롬프트 생성
print("\n[3/4] AI 분석 프롬프트 생성 중...")
prompt = generate_prompt(ticker, product_info, csv_info)
# 4. 프롬프트 파일 저장
print("\n[4/4] 프롬프트 파일 저장 중...")
prompt_file = save_prompt_file(ticker, prompt)
# 4. 프롬프트 파일 생성
print(f"\n[4/4] 프롬프트 파일 생성...")
prompt_file = generate_prompt_files(ticker, product_info, csv_info, dir_path)
print(f"\n{'='*60}")
print(" 완료!")
print("[SUCCESS] 완료!")
print(f"{'='*60}")
print(f"\n생성된 파일:")
print(f"\n생성된 디렉토리: {dir_path}/")
print(f" 1. {csv_info['filename']} (CSV 데이터)")
print(f" 2. {prompt_file} (AI 프롬프트)")
print(f" 2. {os.path.basename(prompt_file)} (프롬프트 파일)")
print(f"\n다음 단계:")
print(f" 1. claude.ai 접속")
print(f" 2. Claude 3.5 Sonnet (Extended thinking) 선택")
print(f" 3. Thinking + 연구 기능 활성화")
print(f" 2. Claude Sonnet 4.5 모델 선택")
print(f" 3. Extended Thinking + 연구(Research) 기능 활성화")
print(f" 4. {csv_info['filename']} 첨부")
print(f" 5. {prompt_file} 내용 복사하여 입력")
print(f" 6. 응답을 AI응답_{ticker.replace('-', '_')}.json 파일로 저장")
print(f" 5. {os.path.basename(prompt_file)} 파일 내용 전체 복사하여 붙여넣기")
print(f" 6. 응답을 {dir_path}/AI응답_{ticker.replace('.', '').replace('-', '_')}_v2.1.json으로 저장")
print(f"{'='*60}\n")
if __name__ == '__main__':

View File

@ -1,379 +0,0 @@
"""
투자 상품별 CSV + 프롬프트 파일 생성기
사용법:
python generate_files.py TSLA
python generate_files.py AAPL
python generate_files.py BTC-USD
생성 파일:
1. {TICKER}_candle_data_YYYYMMDD.csv
2. {TICKER}_ai_prompt.py
"""
import sys
import psycopg2
import csv
from datetime import datetime
# DB 연결 정보
DB_CONFIG = {
'host': '3.38.180.110',
'port': 8088,
'database': 'if_invest',
'user': 'eldsoft',
'password': 'eld240510'
}
def get_product_info(ticker):
"""투자 상품 정보 조회"""
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
query = '''
SELECT invest_code, code_desc_kr, code_desc_en, code_type
FROM invest_product_code
WHERE invest_code = %s
'''
cur.execute(query, (ticker,))
result = cur.fetchone()
cur.close()
conn.close()
if result:
return {
'invest_code': result[0],
'name_kr': result[1],
'name_en': result[2],
'type': result[3]
}
return None
def create_csv_file(ticker):
"""캔들 데이터 CSV 파일 생성"""
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
query = '''
SELECT
target_dt,
open,
high,
low,
close,
volume
FROM invest_candles
WHERE invest_code = %s
AND interval = '1d'
ORDER BY target_dt ASC
'''
cur.execute(query, (ticker,))
rows = cur.fetchall()
if not rows:
print(f"[ERROR] {ticker}에 대한 캔들 데이터가 없습니다.")
cur.close()
conn.close()
return None
# CSV 파일명
csv_filename = f'{ticker.replace("-", "_")}_candle_data_{datetime.now().strftime("%Y%m%d")}.csv'
# CSV 파일로 저장
with open(csv_filename, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['Date', 'Open', 'High', 'Low', 'Close', 'Volume'])
writer.writerows(rows)
print(f'[SUCCESS] CSV 생성: {csv_filename}')
print(f' 기간: {rows[0][0]} ~ {rows[-1][0]} ({len(rows)}일)')
cur.close()
conn.close()
return {
'filename': csv_filename,
'start_date': rows[0][0],
'end_date': rows[-1][0],
'total_days': len(rows)
}
def create_prompt_file(ticker, product_info, csv_info):
"""AI 프롬프트 .py 파일 생성"""
# 티커 타입별 설명
if product_info['type'] == 'COIN':
asset_type = "암호화폐"
search_keyword = f"{product_info['name_en']} cryptocurrency"
else:
asset_type = "주식"
search_keyword = f"{product_info['name_en']} stock {ticker}"
prompt_content = f'''"""
{product_info['name_en']} ({ticker}) {asset_type} 예측 분석을 위한 AI 프롬프트
프롬프트를 claude.ai에 입력하여 투자 예측 분석을 받으세요.
Claude.ai 설정:
- 모델: Claude 3.5 Sonnet (Extended thinking)
- 옵션: Thinking + 연구 기능 활성화
- 첨부 파일: {csv_info['filename']}
"""
PROMPT = """
# {product_info['name_en']} ({ticker}) {asset_type} 예측 분석 요청
## 📎 첨부 데이터
- **파일**: {csv_info['filename']}
- **기간**: {csv_info['start_date']} ~ {csv_info['end_date']} ({csv_info['total_days']})
- **형식**: Date, Open, High, Low, Close, Volume
---
## 🎯 요청사항
다음 4가지를 분석하여 **JSON 형식으로** 응답해주세요:
### 1. 캔들데이터 (향후 3년 주봉 예측)
- {csv_info['end_date']} 이후 3년간 주간 단위 예측
- 156 (3 × 52)
- 포함 항목: Date, Open, High, Low, Close
### 2. 애널리스트 분석 요약
- ** 검색**으로 최신 애널리스트 의견 확인
- 검색어: "{search_keyword} analyst rating 2025"
- 평균 목표주가, 추천 비율 (매수/보유/매도)
- 주요 투자기관 의견
- **반드시 출처 URL 포함**
### 3. 최신 뉴스 요약
- ** 검색**으로 최근 3개월 주요 뉴스 확인
- 검색어: "{search_keyword} news 2025"
- 긍정적/부정적 영향 분류
- **반드시 출처 URL 포함**
### 4. 캔들데이터 분석 내용
- 첨부된 CSV 파일 분석 결과
- 장기 트렌드, 계절성 패턴, 변동성
- 주요 이벤트 시점 (급등/급락) 분석
---
## 📤 출력 형식 (JSON)
다음 형식으로 **정확하게** 응답해주세요:
```json
{{
"1_캔들데이터": {{
"period": "{csv_info['end_date']} 이후 3년",
"frequency": "weekly",
"total_weeks": 156,
"data": [
{{
"week": 1,
"date": "YYYY-MM-DD",
"open": 0.00,
"high": 0.00,
"low": 0.00,
"close": 0.00
}}
// ... 156 전체 데이터 (중간 생략 없이 모두 작성)
]
}},
"2_애널리스트_분석": {{
"summary": "애널리스트 종합 의견 요약",
"average_target_price": 0.00,
"current_price": 0.00,
"upside_potential": "+0.0%",
"recommendations": {{
"buy": 0,
"hold": 0,
"sell": 0
}},
"key_analysts": [
{{
"firm": "투자기관명",
"analyst": "애널리스트명",
"rating": "Buy/Hold/Sell",
"target_price": 0.00,
"date": "YYYY-MM-DD",
"source_url": "https://..."
}}
],
"sources": [
{{
"title": "출처 제목",
"url": "https://...",
"date": "YYYY-MM-DD"
}}
]
}},
"3_최신뉴스_요약": {{
"summary": "최신 뉴스 종합 요약",
"sentiment": "긍정적/중립/부정적",
"positive_news": [
{{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}}
],
"negative_news": [
{{
"headline": "뉴스 헤드라인",
"date": "YYYY-MM-DD",
"source": "출처",
"url": "https://...",
"impact": "영향 설명"
}}
]
}},
"4_캔들데이터_분석": {{
"data_period": "{csv_info['start_date']} to {csv_info['end_date']}",
"total_trading_days": {csv_info['total_days']},
"long_term_trend": {{
"description": "장기 추세 설명",
"cagr_5y": "+0.0%",
"cagr_10y": "+0.0%"
}},
"volatility": {{
"annual_volatility": "0.0%",
"rating": "높음/중간/낮음",
"max_drawdown": "-0.0% (기간)"
}},
"seasonal_patterns": {{
"Q1": "평균 +0.0%",
"Q2": "평균 +0.0%",
"Q3": "평균 +0.0%",
"Q4": "평균 +0.0%",
"strongest_month": "월 (+0.0% 평균)",
"weakest_month": "월 (-0.0% 평균)"
}},
"key_events": [
{{
"date": "YYYY-MM-DD",
"event": "이벤트 설명",
"price_change": "+0.0% in X days"
}}
],
"moving_averages": {{
"current_vs_MA50": "+0.0%",
"current_vs_MA200": "+0.0%",
"trend": "상승/하락/횡보 추세"
}},
"prediction_basis": "예측 근거 설명"
}}
}}
```
---
## ⚠️ 중요 사항
1. ** 검색 필수**: 애널리스트 의견과 최신 뉴스는 반드시 검색으로 확인
2. **출처 URL 필수**: 모든 뉴스와 애널리스트 정보에 출처 URL 포함
3. **156 전체 데이터**: 캔들데이터는 누락 없이 156 전체 생성
4. **JSON 형식 엄수**: JSON 구조를 정확히 따를
5. **현실적 예측**: 과장되지 않은 보수적 예측
6. **자연스러운 변동**: 주간 등락이 있어야 현실적
---
## 📋 체크리스트
- [ ] 첨부된 CSV 파일 확인
- [ ] 검색으로 최신 뉴스 수집
- [ ] 검색으로 애널리스트 의견 수집
- [ ] 과거 캔들 데이터 패턴 분석
- [ ] 3 주봉 예측 생성 (156, 누락 없이)
- [ ] 모든 출처 URL 포함
- [ ] JSON 형식 검증
**분석을 시작해주세요!** 🚀
"""
# 프롬프트 출력 (복사해서 claude.ai에 붙여넣기)
if __name__ == '__main__':
print("="*80)
print("다음 프롬프트를 복사하여 claude.ai에 붙여넣으세요:")
print("="*80)
print()
print(PROMPT)
print()
print("="*80)
print("설정:")
print("- 모델: Claude 3.5 Sonnet (Extended thinking)")
print("- 옵션: Thinking + 연구 기능 활성화")
print("- 첨부 파일: {csv_info['filename']}")
print("="*80)
'''
# 프롬프트 파일명
prompt_filename = f'{ticker.replace("-", "_")}_ai_prompt.py'
# 파일 저장
with open(prompt_filename, 'w', encoding='utf-8') as f:
f.write(prompt_content)
print(f'[SUCCESS] 프롬프트 생성: {prompt_filename}')
return prompt_filename
def main():
if len(sys.argv) < 2:
print("사용법: python generate_files.py <TICKER>")
print("예시:")
print(" python generate_files.py TSLA")
print(" python generate_files.py AAPL")
print(" python generate_files.py BTC-USD")
print(" python generate_files.py 005930.KS")
sys.exit(1)
ticker = sys.argv[1].upper()
print(f"\\n{'='*60}")
print(f"티커: {ticker}")
print(f"{'='*60}\\n")
# 1. 상품 정보 조회
print("[1/3] 투자 상품 정보 조회...")
product_info = get_product_info(ticker)
if not product_info:
print(f"[ERROR] {ticker}를 DB에서 찾을 수 없습니다.")
sys.exit(1)
print(f" 이름: {product_info['name_kr']} ({product_info['name_en']})")
print(f" 타입: {product_info['type']}")
# 2. CSV 파일 생성
print(f"\\n[2/3] CSV 파일 생성...")
csv_info = create_csv_file(ticker)
if not csv_info:
sys.exit(1)
# 3. 프롬프트 파일 생성
print(f"\\n[3/3] 프롬프트 파일 생성...")
prompt_file = create_prompt_file(ticker, product_info, csv_info)
print(f"\\n{'='*60}")
print("✅ 완료!")
print(f"{'='*60}")
print(f"\\n생성된 파일:")
print(f" 1. {csv_info['filename']}")
print(f" 2. {prompt_file}")
print(f"\\n다음 단계:")
print(f" 1. claude.ai 접속")
print(f" 2. {csv_info['filename']} 첨부")
print(f" 3. python {prompt_file} 실행하여 프롬프트 복사")
print(f" 4. 응답을 AI응답_{ticker.replace('-', '_')}.json으로 저장")
print(f"{'='*60}\\n")
if __name__ == '__main__':
main()