본문 바로가기
인공지능

XGBoost 기반 이벤트 드리븐 트레이딩- XGBoost + 뉴스 이벤트

by aiproductmanager 2025. 6. 7.
728x90
반응형
 
 

 

**"XGBoost 기반 이벤트 드리븐 트레이딩"**은 인공지능을 활용한 뉴스 이벤트 기반 자동매매 전략입니다. 다음 내용을 중심으로 자세히 설명드리겠습니다:


✅ 개념 정의

구분 설명
🎯 XGBoost Gradient Boosting 기반의 머신러닝 알고리즘, 강력한 예측 성능을 자랑함
📰 이벤트 기반 뉴스, IR 발표, 금리 발표, 기업 실적 등 외부 이벤트를 트리거로 사용
💹 트레이딩 전략 이벤트 발생 시점의 데이터를 바탕으로 주가 상승/하락을 예측하여 매매 결정
 

🔧 구성 요소

  1. 뉴스 수집
    • 예시: NewsAPI, Twitter API, Google News 등
    • 실시간 뉴스 제목/내용 + 기업명 추출
  2. 감성 분석 / 이벤트 레이블링
    • FinBERT, KoBERT, GPT 등으로 뉴스 감정 점수 부여
    • 예: 긍정(1), 부정(-1), 중립(0)
  3. XGBoost 학습 데이터 구성
    • 입력: 감성 점수 + 주가 히스토리 + 거래량 등
    • 출력: 다음날 수익률 상승 여부 (binary classification 또는 regression)
  4. 트레이딩 결정
    • 예측 결과가 특정 임계치 초과 시 Buy
    • 부정적이면 Sell 또는 No action

🧠 모델 학습 예시

from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# X = 뉴스 감성점수 + 과거 주가/거래량 피처
# y = 이벤트 다음날 수익률 상승 여부 (1/0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = XGBClassifier()
model.fit(X_train, y_train)
preds = model.predict(X_test)

print("정확도:", accuracy_score(y_test, preds))

📊 실전 적용 예시

이벤트 유형 감성 점수 예측 수익률 행동
"삼성전자, AI 투자 확대" +0.8 +2.3% 매수
"현대차, 리콜 발표" -0.6 -1.4% 매도 or 보류
 

📈 장점과 주의사항

✅ 장점

  • 실시간 뉴스 트레이딩 자동화
  • 높은 예측 정확도(XGBoost)
  • 백테스트로 전략 검증 가능

⚠️ 주의사항

  • 뉴스 지연/왜곡 가능성
  • 이벤트 반영 시점과 주가 반영 시점의 시차 고려
  • 데이터 편향 문제

📌 다음 구현 가능 기능

  • ✔️ NewsAPI 연동 실시간 뉴스 감정 점수 분석
  • ✔️ XGBoost 모델 실시간 재학습 (AutoML 형태)
  • ✔️ 트레이딩 시뮬레이터 + 수익률 대시보드

 이 전체 시스템을 실행 가능한 Streamlit 코드
(뉴스 수집 → 감정 분석 → XGBoost 예측 → 매매 판단)

 

# XGBoost 기반 이벤트 드리븐 트레이딩 시스템 (Streamlit + NewsAPI + XGBoost)

import streamlit as st
import pandas as pd
import yfinance as yf
import requests
from datetime import datetime, timedelta
from transformers import pipeline
from xgboost import XGBClassifier
import numpy as np

# Streamlit 설정
st.set_page_config(page_title="이벤트 드리븐 트레이딩", layout="wide")
st.title("📰 XGBoost 기반 이벤트 트레이딩 시스템")

# API 키 설정
NEWS_API_KEY = st.secrets["NEWS_API_KEY"]

# 뉴스 감정 분석기 (Hugging Face pipeline 활용)
sentiment_pipeline = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")

# 뉴스 수집 함수
def get_news(query="삼성전자"):
    url = f"https://newsapi.org/v2/everything?q={query}&language=ko&from={(datetime.now()-timedelta(days=1)).strftime('%Y-%m-%d')}&sortBy=publishedAt&apiKey={NEWS_API_KEY}"
    response = requests.get(url)
    articles = response.json().get("articles", [])
    return articles[:5]

# 감성 분석 → 점수 변환 (긍정: +1 ~ 부정: -1)
def analyze_sentiment(text):
    try:
        result = sentiment_pipeline(text)[0]
        label = result['label']
        if "1" in label: return -1.0
        elif "2" in label: return -0.5
        elif "3" in label: return 0.0
        elif "4" in label: return 0.5
        elif "5" in label: return 1.0
        else: return 0.0
    except: return 0.0

# 주가 데이터 수집
@st.cache_data
def get_price_data(ticker="005930.KS"):
    df = yf.download(ticker, period="7d")
    df["Return"] = df["Close"].pct_change().fillna(0)
    return df

# 학습용 데이터 구성
news_list = get_news("삼성전자")
st.subheader("📋 최근 뉴스")

sentiment_scores = []
for article in news_list:
    title = article['title']
    url = article['url']
    st.markdown(f"- [{title}]({url})")
    score = analyze_sentiment(title)
    sentiment_scores.append(score)

# 피처 + 타깃 구성
stock_df = get_price_data("005930.KS")
X = pd.DataFrame({"sentiment": sentiment_scores[:len(stock_df)-1]})
y = (stock_df["Return"].shift(-1)[:len(X)] > 0).astype(int)

if len(X) > 0:
    st.subheader("📊 XGBoost 모델 학습 및 예측")
    model = XGBClassifier()
    model.fit(X, y)
    prediction = model.predict(X.tail(1))

    if prediction[0] == 1:
        st.success("✅ 예측 결과: 주가 상승 예상 → 매수")
    else:
        st.error("⛔ 예측 결과: 주가 하락 또는 중립 → 보류")

    st.markdown(f"감성점수: {X.tail(1).values[0][0]}")

# 백테스트 리포트 표시
if st.checkbox("📈 과거 수익률 그래프 보기"):
    st.line_chart(stock_df["Close"])

순위 AI 투자 방안 이름 활용 기술 상세 바로가기
1 AI 퀀트 포트폴리오 최적화 Markowitz, RL, MPT, AI 최적화 바로가기
2 감정 분석 기반 뉴스 트레이딩 NLP, BERT, LLM 바로가기
3 AI ETF 자동 리밸런싱 AutoML, Alpha Vantage API 바로가기
4 머신러닝 기반 주가 예측 XGBoost, LightGBM 바로가기
5 딥러닝 LSTM 시계열 예측 TensorFlow, PyTorch LSTM 바로가기
6 강화학습 기반 자동 매매 OpenAI Gym, PPO, DQN 바로가기
7 AI 기반 가치주 선별 (Value Factor) AI 팩터스코어링, 계량모델 바로가기
8 GPT 기반 재무제표 요약 투자 GPT-4, LangChain, OCR 바로가기
9 AI 리스크 해지 전략 (VIX, 금리, 환율) AI 헷지백테스트, 시나리오 모델 바로가기
10 SVM 기반 종목 필터링 SVM + 재무데이터 바로가기
11 AI IPO 스코어링 모델 AI 점수화 + IPO 성과예측 바로가기
12 챗봇 기반 투자 자문 시스템 LLM + Chat UI + API 연결 바로가기
13 XGBoost 기반 이벤트 드리븐 트레이딩 XGBoost + 뉴스 이벤트 바로가기
14 AutoML 기반 알고리즘 전략 탐색 TPOT, H2O.ai, FeatureTools 바로가기
15 AI 기반 ESG 점수 분석 투자 AI ESG 분석 + ETF 필터링 바로가기
16 옵션 가격 예측 딥러닝 모델 DNN, OptionNet, VolNet 바로가기
17 고빈도 트레이딩용 AI 패턴 인식 CNN, 딥러닝 패턴 분석 바로가기
18 AI 기반 섹터 로테이션 모델 순환분류 + 군집분석 바로가기
19 LLM 기반 글로벌 투자 리서치 요약 GPT + PDF 요약 + 질의응답 바로가기
20 AI + Satellite Data 기반 농산물 투자 AI + 위성데이터 + 시계열학습 바로가기

이 글이 도움이 되었다면,아래 링크를 통해서 후원해주세요.( 커피나 차 한잔 이나 맥주나 와인한잔 )

 

728x90
반응형