TradingAgents: 멀티 에이전트 LLM 금융 트레이딩 프레임워크
🎉 TradingAgents 공식 출시! 우리는 이 작업에 대해 많은 문의를 받았으며, 커뮤니티의 열정에 감사드립니다.
그래서 우리는 이 프레임워크를 완전히 오픈소스로 공개하기로 결정했습니다. 여러분과 함께 영향력 있는 프로젝트를 만들어 나가기를 기대합니다!
TradingAgents 프레임워크
TradingAgents는 실제 트레이딩 회사의 역동성을 반영한 멀티 에이전트 트레이딩 프레임워크입니다. 기본 분석가, 감정 전문가, 기술 분석가부터 트레이더, 리스크 관리 팀에 이르기까지 특화된 LLM 기반 에이전트를 배치함으로써 시장 상황을 협력적으로 평가하고 트레이딩 결정을 내립니다. 또한, 이러한 에이전트들은 최적의 전략을 찾기 위해 동적인 토론을 진행합니다.
TradingAgents 프레임워크는 연구 목적으로 설계되었습니다. 트레이딩 성능은 선택한 백본 언어 모델, 모델 온도, 트레이딩 기간, 데이터 품질 및 기타 비결정적 요인에 따라 달라질 수 있습니다. 이는 금융, 투자 또는 트레이딩 조언을 목적으로 하지 않습니다.
우리의 프레임워크는 복잡한 트레이딩 작업을 특화된 역할로 분해합니다. 이를 통해 시스템은 시장 분석과 의사 결정에 대해 견고하고 확장 가능한 접근 방식을 달성합니다.
분석가 팀
- 기본 분석가(Fundamentals Analyst): 회사 재무 및 성과 지표를 평가하여 내재 가치와 잠재적 위험 요소를 식별합니다.
- 감정 분석가(Sentiment Analyst): 감정 점수 알고리즘을 사용하여 소셜 미디어와 공공 감정을 분석하여 단기 시장 분위기를 측정합니다.
- 뉴스 분석가(News Analyst): 글로벌 뉴스와 거시경제 지표를 모니터링하며 사건이 시장 조건에 미치는 영향을 해석합니다.
- 기술 분석가(Technical Analyst): MACD 및 RSI와 같은 기술적 지표를 활용하여 트레이딩 패턴을 감지하고 가격 변동을 예측합니다.
연구팀
- 강세 및 약세 연구원들로 구성되어 있으며, 애널리스트 팀이 제공한 통찰력을 비판적으로 평가합니다. 구조화된 토론을 통해 잠재적 수익과 내재된 위험을 균형 있게 검토합니다.
트레이더 에이전트
- 애널리스트와 연구원들의 보고서를 종합하여 정보에 기반한 트레이딩 결정을 내립니다. 포괄적인 시장 통찰력을 바탕으로 거래 시기와 규모를 결정합니다.
리스크 관리 및 포트폴리오 매니저
- 시장 변동성, 유동성 및 기타 위험 요소를 평가하여 포트폴리오 리스크를 지속적으로 모니터링합니다. 리스크 관리 팀은 트레이딩 전략을 평가 및 조정하며, 평가 보고서를 포트폴리오 매니저에게 제출하여 최종 결정을 받습니다.
- 포트폴리오 매니저는 거래 제안을 승인/거절합니다. 승인될 경우 주문은 시뮬레이션된 거래소로 전송되어 실행됩니다.
설치 및 CLI
설치
TradingAgents 클론:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
선호하는 환경 관리자로 가상 환경 생성:
conda create -n tradingagents python=3.13
conda activate tradingagents
의존성 설치:
pip install -r requirements.txt
필수 API
금융 데이터를 위해 FinnHub API가 필요합니다. 모든 코드는 무료 티어로 구현되었습니다.
export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY
모든 에이전트에 OpenAI API가 필요합니다.
export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY
CLI 사용법
다음을 실행하여 CLI를 직접 사용해 볼 수 있습니다:
python -m cli.main
원하는 티커, 날짜, LLM, 연구 깊이 등을 선택할 수 있는 화면이 나타납니다.
에이전트 실행 진행 상황을 추적할 수 있도록 결과가 로드되는 인터페이스가 표시됩니다.
TradingAgents 패키지
구현 세부 사항
유연성과 모듈성을 보장하기 위해 LangGraph로 TradingAgents를 구축했습니다. 실험에는 심층 사고와 빠른 사고를 위한 LLM으로 o1-preview
와 gpt-4o
를 사용합니다. 그러나 테스트 목적으로는 비용 절감을 위해 o4-mini
와 gpt-4.1-mini
사용을 권장합니다. 우리 프레임워크는 많은 API 호출을 발생시킵니다.
파이썬 사용법
코드 내에서 TradingAgents를 사용하려면 tradingagents
모듈을 임포트하고 TradingAgentsGraph()
객체를 초기화하면 됩니다. .propagate()
함수는 결정을 반환합니다. main.py
를 실행할 수도 있으며, 다음은 간단한 예시입니다:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)
또한 기본 구성을 조정하여 자신이 선택한 LLM(대형 언어 모델), 토론 라운드 등을 설정할 수 있습니다.
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
# Create a custom config
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4.1-nano" # Use a different model
config["quick_think_llm"] = "gpt-4.1-nano" # Use a different model
config["max_debate_rounds"] = 1 # Increase debate rounds
config["online_tools"] = True # Use online tools or cached data
# Initialize with custom config
ta = TradingAgentsGraph(debug=True, config=config)
# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)
online_tools
의 경우 실시간 데이터에 접근할 수 있도록 실험 목적으로 활성화하는 것을 권장합니다. 에이전트의 오프라인 도구는 백테스팅에 사용하는 우리의 Tauric TradingDB에서 캐시된 데이터에 의존합니다. 현재 이 데이터셋을 정제 중이며, 곧 출시 예정인 프로젝트와 함께 공개할 계획입니다. 계속 지켜봐 주세요!
전체 구성 목록은 tradingagents/default_config.py
에서 확인할 수 있습니다.
기여하기
커뮤니티의 기여를 환영합니다! 버그 수정, 문서 개선, 새로운 기능 제안 등 어떤 형태든 여러분의 참여가 이 프로젝트를 더 나은 방향으로 이끕니다. 이 연구 분야에 관심이 있다면, 우리의 오픈소스 금융 AI 연구 커뮤니티 Tauric Research에 참여해 보세요.
인용
TradingAgents가 도움이 되셨다면 저희 작업을 인용해 주시기 바랍니다 :)
@misc{xiao2025tradingagentsmultiagentsllmfinancial,
title={TradingAgents: Multi-Agents LLM Financial Trading Framework},
author={Yijia Xiao and Edward Sun and Di Luo and Wei Wang},
year={2025},
eprint={2412.20138},
archivePrefix={arXiv},
primaryClass={q-fin.TR},
url={https://arxiv.org/abs/2412.20138},
}