일일 주식 분석: LLM 기반 다시장 주식 인텔리전스 시스템

실시간 뉴스, 의사결정 대시보드 및 자동화된 알림을 갖춘 LLM 기반 다시장 주식 분석 시스템. 48K 스타. 무료 예약 실행 지원.

  • 업데이트 2026-06-25

일일 주식 분석: LLM 기반 다시장 주식 인텔리전스 #

일일 주식 분석 은 LLM 기반의 오픈소스 주식 분석 시스템으로, 실시간 뉴스 집계, 자동화된 의사결정 대시보드 및 지능형 알림 시스템을 갖춘 다시장 인텔리전스를 제공합니다. 48,278개의 GitHub 스타를 달성하며, 기관급 분석을 추구하는 개인 투자자들을 위한 가장 인기 있는 퀀트 트레이딩 도구 중 하나가 되었습니다.

이 글은 설치, 시장 데이터 소스, LLM 통합, 대시보드 구성, 자동 분석 및 배포 전략을 다룹니다.

TL;DR #

일일 주식 분석은 실시간 시장 데이터, 뉴스 감정 분석 및 LLM 기반 통찰력을 통합 의사결정 플랫폼으로 결합합니다. 미국 주식, A주식, 암호화폐 및 선물 등 여러 시장을 지원합니다. 시스템은 예약된 자동 분석으로 완전히 무료로 실행할 수 있어, 누구나 기관급 주식 연구를 활용할 수 있습니다.

일일 주식 분석이란? #

일일 주식 분석은 대형 언어 모델을 활용하여 시장 데이터, 뉴스 감정 및 기술적 지표를 분석하는 포괄적인 주식 인텔리전스 플랫폼입니다. 단순히 가격 움직임을 보여주는 전통적인 차트 도구와 달리, 이 시스템은 시장이 왜 움직이고 있는지에 대한 문맥 분석과 다음 무엇을 일어날 수 있는지에 대한 통찰력을 제공합니다.

플랫폼은 여러 시장과 데이터 소스를 지원합니다:

  • 미국 시장: NYSE, NASDAQ, 실시간 및 지연 데이터 지원
  • A주식: 상하이 및 선전 거래소 포괄적 커버리지
  • 암호화폐: 바이낸스, Coinbase, Kraken 등 주요 거래소
  • 선물 및 상품: 유류, 금, 농산물 및 지수
  • 외환: 실시간 환율 주요 통화쌍

설치 가이드 #

사전 요구사항 #

  • Python: 3.10+ (3.11 권장)
  • 데이터베이스: PostgreSQL 14+ 또는 SQLite (경량 설정용)
  • LLM API: OpenAI, Anthropic 또는 Ollama를 통한 로컬 모델
  • 시장 데이터 API: Tushare (A주식), AKShare (무료) 또는 유료 제공자
  • 시스템: 최소 8GB RAM, SQLite 모드에서 4GB

옵션 1: Docker 배포 (가장 쉬움) #

# 저장소 복제
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 환경 변수 구성
cp .env.example .env
# API 키로 .env 편집

# 모든 서비스 시작
docker compose up -d

# 상태 확인
docker compose ps

옵션 2: 수동 설치 #

# 저장소 복제
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 가상 환경 생성
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 또는
venv\Scripts\activate     # Windows

# 종속성 설치
pip install -r requirements.txt

# 데이터베이스 설정
python setup_database.py --init

# LLM 및 데이터 소스 구성
cp config.example.yaml config.yaml
# 설정으로 config.yaml 편집

# 첫 번째 분석 실행
python main.py --market us --date $(date +%Y-%m-%d)

옵션 3: 로컬 LLM 설정 (무료) #

API 비용을 완전히 피하고 싶은 사용자를 위한 방법:

# 로컬 LLM 추론을 위해 Ollama 설치
curl -fsSL https://ollama.ai/install.sh | sh

# 적합한 모델 풀
ollama pull qwen2.5:14b

# config.yaml을 로컬 모델 사용으로 업데이트
cat >> config.yaml << EOF
llm:
  provider: ollama
  model: qwen2.5:14b
  base_url: http://localhost:11434
EOF

# 제로 API 비용으로 분석 실행
python main.py --market a_shares --date $(date +%Y-%m-%d)

시장 데이터 통합 #

AKShare 통합 (무료 A주식 데이터) #

AKShare는 API 키 없이 중국 시장 데이터에 대한 무료 접근을 제공합니다:

import akshare as ak

# 일일 A주식 시장 데이터 가져오기
df = ak.stock_zh_a_spot_em()
print(df.head())

# 역사적 가격 데이터 가져오기
hist_df = ak.stock_zh_a_hist(
    symbol="000001",
    period="daily",
    start_date="20260101",
    end_date="20260625",
    adjust="qfq"
)

# 섹터 성과 가져오기
sector_df = ak.stock_board_industry_name_em()
print(sector_df)

Tushare 통합 (프리미엄 A주식 데이터) #

기본 정보를 포함한 더 포괄적인 A주식 데이터를 위한:

import tushare as ts

# API 토큰으로 초기화
pro = ts.pro_api("YOUR_TUSHARE_TOKEN")

# 일일 A주식 데이터 가져오기
df = pro.daily(
    ts_code="000001.SZ",
    start_date="20260101",
    end_date="20260625"
)

# 재무제표 가져오기
income_df = pro.income(
    ts_code="000001.SZ",
    period="20260331",
    fields="total_operating_income,net_profit,total_expense"
)

# 주주 정보 가져오기
holder_df = pro.stock_holder_top10(
    ts_code="000001.SZ",
    ann_date="20260331"
)

미국 시장 데이터 #

import yfinance as yf

# 미국 주식 데이터 가져오기
ticker = yf.Ticker("AAPL")
df = ticker.history(period="3mo")

# 옵션 체인 가져오기
options = ticker.options

# 애널리스트 추천 가져오기
recommendations = ticker.recommendations

# 뉴스 감정 가져오기
news = ticker.news
for item in news:
    print(f"{item['title']}: {item['providerPublishTime']}")

암호화폐 데이터 #

import ccxt

# 거래소 연결
exchange = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET',
})

# 티커 데이터 가져오기
ticker = exchange.fetch_ticker('BTC/USDT')
print(f"가격: {ticker['last']}")
print(f"거래량: {ticker['quoteVolume']}")

# 호가창 가져오기
order_book = exchange.fetch_order_book('ETH/USDT')
print(f"매수: {order_book['bids'][0][0]}")
print(f"매도: {order_book['asks'][0][0]}")

LLM 기반 분석 #

감정 분석 파이프라인 #

일일 주식 분석의 핵심은 LLM 기반 감정 분석 파이프라인입니다:

from daily_stock_analysis.llm import LLMAnalyzer
from daily_stock_analysis.data import MarketDataProvider

# 컴포넌트 초기화
llm = LLMAnalyzer(model="gpt-4o", temperature=0.3)
data_provider = MarketDataProvider(source="akshare")

# 시장 데이터 및 뉴스 가져오기
market_data = data_provider.get_market_data(
    symbol="000001.SZ",
    period="1d",
    indicators=["rsi", "macd", "bollinger"]
)

news_data = data_provider.get_news(
    symbol="000001.SZ",
    days=7,
    sources=["eastmoney", "cls", "cnbc"]
)

# LLM 분석 실행
analysis = llm.analyze_market(
    market_data=market_data,
    news_data=news_data,
    prompt_template="comprehensive_analysis"
)

print(f"전체 감정: {analysis.sentiment}")
print(f"신뢰도: {analysis.confidence:.1%}")
print(f"핵심 요소: {', '.join(analysis.key_factors)}")
print(f"위험 수준: {analysis.risk_level}")

사용자 정의 분석 프롬프트 #

다양한 사용 사례에 대해 LLM 분석 프롬프트를 사용자 정의할 수 있습니다:

# 기술 분석 프롬프트
tech_prompt = """
다음 주식 기술적 지표를 분석하고 다음을 제공하세요:
1. 추세 방향 (강세/약세/중립)
2. 주요 지지 및 저항 수준
3. 모멘텀 평가
4. 거래량 분석 해석
5. 전체 기술적 평가 (1-10)

데이터: {market_data}
"""

# 기본 분석 프롬프트
fund_prompt = """
다음 기본 데이터를 분석하고 다음을 제공하세요:
1. 매출 성장 평가
2. 수익성 평가
3. 부채 지속 가능성
4. 가치 평가 비교
5. 전체 기본 평가 (1-10)

데이터: {fundamental_data}
"""

# 종합 분석
combined = llm.analyze(
    prompt_template="combined_analysis",
    market_data=market_data,
    fundamental_data=fundamental_data,
    news_data=news_data
)

다시장 비교 분석 #

서로 다른 시장의 주식을 동시에 비교:

# 미국 기술주 비교
us_techs = llm.compare_stocks(
    symbols=["AAPL", "MSFT", "GOOGL", "AMZN", "META"],
    market="us",
    comparison_metrics=["pe_ratio", "revenue_growth", "profit_margin"]
)

# A주식 섹터 비교
a_share_sectors = llm.compare_sectors(
    sectors=["신에너지", "반도체", "의약품", "소비재"],
    market="a_shares",
    time_period="1m"
)

대시보드 구성 #

웹 대시보드 설정 #

일일 주식 분석은 내장 웹 대시보드를 포함합니다:

# 대시보드 서버 시작
python dashboard.py --host 0.0.0.0 --port 8080

# http://localhost:8080에서 접근

대시보드는 다음을 제공합니다:

  • 히트맵과 함께하는 실시간 시장 개요
  • 대화형 차트와 함께하는 개별 주식 분석
  • 섹터 성과 비교
  • 뉴스 감정 타임라인
  • 자동화된 분석 보고서

대시보드 사용자 정의 #

# dashboard_config.yaml
dashboard:
  refresh_interval: 300  # 5분
  default_market: "a_shares"
  charts:
    - type: "heatmap"
      title: "시장 히트맵"
      data_source: "sector_performance"
    - type: "line"
      title: "주가 역사"
      data_source: "historical_prices"
    - type: "sentiment"
      title: "뉴스 감정"
      data_source: "llm_sentiment"
  alerts:
    - threshold: 0.8
      action: "notification"
      channels: ["email", "telegram"]

보고서 내보내기 #

# PDF 형식으로 일일 보고서 생성
python report_generator.py --format pdf --output daily_report.pdf

# 차트가 포함된 HTML 보고서 생성
python report_generator.py --format html --output daily_report.html

# 분석 데이터를 CSV로 내보내기
python report_generator.py --format csv --output analysis_data.csv

자동 스케줄링 #

크론 작업 설정 #

자동 분석 실행 예약:

# crontab 편집
crontab -e

# 매일 아침 7시에 일일 분석 추가
0 7 * * * cd /path/to/daily_stock_analysis && python main.py --market a_shares --auto

# 장 개장 후 미국 시장 분석 추가
0 21 * * 1-5 cd /path/to/daily_stock_analysis && python main.py --market us --auto

# 일요일에 주간 종합 보고서
0 9 * * 0 cd /path/to/daily_stock_analysis && python weekly_report.py

systemd 서비스 #

지속적인 백그라운드 작동을 위한:

# /etc/systemd/system/daily-stock-analysis.service
[Unit]
Description=일일 주식 분석 서비스
After=network.target postgresql.service

[Service]
Type=simple
User=stockuser
WorkingDirectory=/opt/daily_stock_analysis
ExecStart=/opt/daily_stock_analysis/venv/bin/python main.py --daemon
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
# 서비스 활성화 및 시작
sudo systemctl enable daily-stock-analysis
sudo systemctl start daily-stock-analysis
sudo systemctl status daily-stock-analysis

알림 시스템 #

Telegram 알림 #

# Telegram 봇 구성
python notify.py --setup telegram \
  --bot-token "${TELEGRAM_BOT_TOKEN}" \
  --chat-id "${TELEGRAM_CHAT_ID}"

# 테스트 알림 보내기
python notify.py --send "AAPL 일일 분석 완료" \
  --channel telegram

이메일 알림 #

from daily_stock_analysis.notify import Notifier

# 이메일 알림기 구성
notifier = Notifier(
    provider="smtp",
    smtp_server="smtp.gmail.com",
    smtp_port=587,
    username="your_email@gmail.com",
    password="your_app_password"
)

# 분석 보고서 보내기
notifier.send_email(
    to="your_email@gmail.com",
    subject="일일 주식 분석 보고서",
    body=analysis_report,
    attach_pdf=True
)

사용자 정의 웹훅 알림 #

# 사용자 정의 웹훅으로 보내기 (예: Slack, Discord)
notifier.send_webhook(
    url="https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
    payload={
        "text": f"{symbol} 분석 완료",
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": f"*{symbol}* - 감정: {sentiment}"
                }
            }
        ]
    }
)

비교: 일일 주식 분석 vs 대안 #

기능일일 주식 분석TradingView윈드 금융Choice Info
가격무료$15-60/월¥5,000+/년¥3,000+/년
오픈소스아니요아니요아니요
LLM 분석내장아니요기본아니요
다시장중국 전용중국 전용
API 접근전체 REST유료 API제한적제한적
사용자 정의 스크립트Pine Script아니요아니요
자체 호스팅아니요아니요아니요
A주식 지원포괄적기본전체전체

한계 #

  • LLM 의존성: 분석 품질은 LLM 제공자의 능력과 정확도에 의존
  • 데이터 지연: 무료 데이터 소스는 유료 실시간 피드보다 지연이 있을 수 있음
  • 시장 커버리지: 광범위하지만 모든 소형주나 이국적인 증권이 커버되는 것은 아님
  • 규제 준수: 사용자는 분석 도구가 현지 규정을 준수하는지 확인하는 책임이 있음
  • 과거 성과 면책: LLM 분석은 정보 제공 목적으로만 제공되며 금융 조언으로 간주되어서는 안 됨

시작 체크리스트 #

# 1. 저장소 복제
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis

# 2. 환경 설정
cp .env.example .env
# API 키 추가

# 3. 종속성 설치
pip install -r requirements.txt

# 4. 데이터베이스 초기화
python setup_database.py --init

# 5. 첫 번째 분석 실행
python main.py --market a_shares --date $(date +%Y-%m-%d)

# 6. 대시보드 시작
python dashboard.py --port 8080

# 7. 자동 스케줄링 설정
crontab -e
# 일일 분석 크론 작업 추가

결론 #

일일 주식 분석은 기관급 주식 연구와 개인 투자자 접근성 사이의 격차를 해소합니다. LLM 기술과 무료 데이터 소스를 활용하여, 비싸고 값비싼 블룸버그 터미널이나 윈드 금융 시스템이 traditionally 요구하던 포괄적인 다시장 분석을 제공합니다.

숙련된 퀀트 트레이더이든 시장을 탐색하는 초보자이든, 일일 주식 분석은 정보에 기반한 결정을 내리는 데 필요한 도구와 통찰력을 제공합니다. 오픈소스 특성은 투명성을 보장하며, 활발한 커뮤니티는 지속적인 개선과 지원을 보장합니다.

출처 #

CTA #

오늘부터 무료 주식 분석 여정을 시작하세요. 시작하려면 GitHub 저장소를 방문하세요. 분석 시스템을 호스팅하려면 HTStack의 저렴한 VPS 호스팅이나 DigitalOcean의 관리형 클라우드 서비스를 고려하세요.

로컬 LLM 추론을 위한 GPU 자원이 필요한 중국 사용자를 위해, 후완윈은 시간당 ¥0.5부터 저렴한 GPU 서버를 제공합니다.

FAQ #

q: 이 시스템을 무료 비용으로 사용할 수 있나요? #

a: 예. AKShare로 무료 A주식 데이터, Ollama로 로컬 LLM 추론, PostgreSQL 대신 SQLite를 사용하여 전체 시스템을 무료 비용으로 실행할 수 있습니다. 필요한 것은 인터넷 연결과 Python을 실행할 수 있는 컴퓨터뿐입니다.

q: 주식 분석에 어떤 LLM 모델이 권장되나요? #

a: 최상의 결과를 위해 포괄적 분석에는 GPT-4o 또는 Claude Sonnet을 사용하세요. 로컬 배포의 경우, Qwen2.5 14B 또는 32B 모델은 품질과 속도 간의 좋은 균형을 제공합니다. 시스템은 모든 OpenAI 호환 API 엔드포인트를 지원합니다.

q: 분석은 얼마나 자주 실행해야 하나요? #

a: A주식의 경우, 장 개장 전(베이징 시간 오전 7-8시) 일일 분석이 권장됩니다. 미국 주식의 경우, 장 마감 후(베이징 시간 밤 11시) 분석을 실행하세요. 암호화폐 시장은 24/7 운영되므로 시간별 또는 실시간 분석이 유리합니다.

q: 사용자 정의 지표를 추가할 수 있나요? #

a: 예. 시스템은 Python 플러그인을 통해 사용자 정의 기술 지표를 지원합니다. 고유한 공식을 정의하고, 역사적 데이터로 백테스트한 다음, LLM 분석 파이프라인에 통합할 수 있습니다.

q: 시스템은 알고리즘 트레이딩에 적합합니까? #

a: 일일 주식 분석은 훌륭한 연구 및 분석 기능을 제공하지만, 주로 정보 제공 목적으로 설계되었습니다. 알고리즘 트레이딩을 위해서는 출력을 거래 실행 시스템에 통합하고 적절한 리스크 관리 프로토콜을 구현해야 합니다.

q: 옵션 및 선물 분석을 지원하나요? #

a: 시스템은 CCXT 및 시장 데이터 제공자를 통해 기본 옵션 및 선물 데이터 지원을 포함합니다. 그러나 고급 파생상품 분석 기능은 여전히 개발 중입니다. 파생상품 지원에 대한 최신 정보는 GitHub 이슈 페이지를 확인하세요.

💬 댓글 토론