추세추종 투자 방법론을 기반으로 한 MCP(Model Context Protocol) 서버입니다. 주식 시장 분석, 매매 시점 판단, 포트폴리오 관리를 위한 종합적인 투자 도구를 제공합니다.
Trend Following MCP Server는 다음과 같은 핵심 기능을 제공합니다:
- 📈 주식 정보 수집: 실시간 주가, 재무제표, 뉴스 데이터
- 📊 기술적 분석: 이동평균, RSI, MACD, 볼린저 밴드 등
- 🎯 매매 시점 신호: 추세 추종 전략 기반 매수/매도 시점 판단
- 📋 포트폴리오 관리: 자산 배분, 리스크 관리, 성과 추적
- 🤖 AI 기반 분석: 머신러닝을 활용한 시장 예측 및 최적화
get_stock_info: 실시간 주가 데이터 수집 및 기업 정보 조회screen_stocks: 기술적/기본적 조건에 따른 주식 스크리닝- 기업 재무제표 분석 (손익계산서, 재무상태표, 현금흐름표)
- 뉴스 및 이벤트 모니터링
- 섹터별 시장 동향 분석
analyze_technical: 종합적인 기술적 분석 수행- 이동평균선 분석 (20일, 50일, 200일 SMA/EMA)
- 모멘텀 지표 (RSI, MACD, 스토캐스틱)
- 변동성 지표 (볼린저 밴드, ATR)
- 거래량 분석 (OBV, 거래량 가중 평균)
- 추세 방향 및 강도 분석
generate_signal: 추세 추종 매매 시점 판단backtest_signals: 전략 백테스팅 및 성과 분석- 리스크 관리 및 손절매 설정
- 포지션 사이징 최적화
- 신호 신뢰도 및 강도 계산
manage_portfolio: 포트폴리오 분석, 최적화, 리밸런싱analyze_risk: 포트폴리오 리스크 분석 (VaR, CVaR)- 자산 배분 최적화
- 리스크 대비 수익률 분석
- 성과 추적 및 리포팅
TradeMonster/
├── src/
│ ├── mcp/ # MCP 서버 핵심
│ │ ├── server.py # MCP 서버 메인
│ │ ├── schemas.py # 데이터 스키마 (Pydantic 모델)
│ │ └── tools/ # MCP 도구들
│ │ ├── stock_info.py # 주식 정보 도구
│ │ ├── technical.py # 기술적 분석 도구
│ │ ├── signals.py # 매매 신호 도구
│ │ └── portfolio.py # 포트폴리오 관리 도구
│ ├── analysis/ # 분석 엔진
│ │ ├── trend_analysis.py # 추세 분석 엔진
│ │ ├── momentum.py # 모멘텀 분석 (구현 예정)
│ │ └── volatility.py # 변동성 분석 (구현 예정)
│ ├── utils/ # 유틸리티
│ │ ├── config.py # 설정 관리 (Pydantic 기반)
│ │ └── logger.py # 로깅 시스템
│ └── main.py # 메인 실행 파일
├── tests/ # 테스트 파일들
│ └── test_mcp_server.py # MCP 서버 테스트
├── pyproject.toml # 프로젝트 설정 (업데이트됨)
├── README.md # 프로젝트 문서
├── env.example # 환경 변수 예시
└── LICENSE # MIT 라이선스
- 추세 확인: 장기 이동평균선을 기준으로 상승/하락 추세 판단
- 모멘텀 활용: RSI, MACD 등 모멘텀 지표로 강도 측정
- 변동성 관리: 볼린저 밴드, ATR로 변동성 기반 진입/청산
- 리스크 제어: 손절매, 익절매, 포지션 사이징으로 리스크 관리
- 매수 조건: 상승 추세 + 모멘텀 상승 + 변동성 확대
- 매도 조건: 하락 추세 + 모멘텀 하락 + 지지선 이탈
- 홀딩 조건: 추세 지속 + 리스크 관리 범위 내
# 강력한 매수 신호
if (trend_direction == "up" and
current_price > sma_20 > sma_50 > sma_200 and
rsi < 70 and # 과매수 아님
macd > macd_signal and
price_position < 0.8): # 볼린저 상단 밴드 이하
signal_type = "strong_buy"# 저장소 클론
git clone https://github.com/yourusername/TradeMonster.git
cd TradeMonster
# 가상환경 생성 및 활성화
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 의존성 설치
pip install -e .# .env 파일 생성
cp env.example .env
# API 키 설정 (선택사항 - yfinance는 기본적으로 API 키가 필요 없음)
YAHOO_FINANCE_API_KEY=your_api_key
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_api_key# 메인 실행 파일로 실행
python src/main.py
# 또는 직접 MCP 서버 실행
python -m src.mcp.server --dev
# 또는 개발 모드
python -m src.mcp.server --dev --stdio# 전체 테스트 실행
pytest tests/
# 특정 테스트 실행
pytest tests/test_mcp_server.py -v# Apple 주식 정보 조회
stock_info = await session.call_tool("get_stock_info", {
"symbol": "AAPL",
"include_financials": True,
"include_news": True
})# 기술적 지표 분석
analysis = await session.call_tool("analyze_technical", {
"symbol": "AAPL",
"period": "1y",
"indicators": ["sma", "rsi", "macd", "bollinger"]
})# 추세추종 매매 신호
signal = await session.call_tool("generate_signal", {
"symbol": "AAPL",
"strategy": "trend_following",
"risk_level": "moderate"
})# 포트폴리오 분석
portfolio = await session.call_tool("manage_portfolio", {
"action": "analyze",
"portfolio": [
{"symbol": "AAPL", "shares": 100, "cost_basis": 150.0},
{"symbol": "GOOGL", "shares": 50, "cost_basis": 2800.0}
]
})# 포트폴리오 리스크 분석
risk_analysis = await session.call_tool("analyze_risk", {
"portfolio": portfolio_data,
"confidence_level": 0.95
})# src/mcp/tools/new_tool.py
from mcp import Tool
from typing import Dict, Any
class NewTool(Tool):
name = "new_tool"
description = "새로운 도구 설명"
async def execute(self, params: Dict[str, Any]) -> Dict[str, Any]:
# 도구 로직 구현
return {"result": "success"}# src/utils/config.py에서 설정 추가
class Config(BaseSettings):
new_setting: str = Field(default="default_value", description="새로운 설정")from src.utils.logger import get_logger
logger = get_logger(__name__)
logger.info("정보 메시지")
logger.error("에러 메시지")- 승률: 65% 이상 목표
- 샤프 비율: 1.5 이상 목표
- 최대 낙폭: 15% 이하 목표
- 연간 수익률: 20% 이상 목표
- ATR 기반 손절매: 변동성에 따른 동적 손절매 설정
- 포지션 사이징: 신뢰도와 리스크 수준에 따른 포지션 크기 조절
- 포트폴리오 다각화: 자산 간 상관관계를 고려한 배분
- VaR/CVaR 분석: 포트폴리오 리스크 측정
# 보수적 (Conservative)
stop_loss_multiplier = 2.0
position_size = 0.05 # 5%
# 중간 (Moderate) - 기본값
stop_loss_multiplier = 1.5
position_size = 0.1 # 10%
# 공격적 (Aggressive)
stop_loss_multiplier = 1.0
position_size = 0.15 # 15%- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Python 3.13+ 사용
- Type hints 필수
- Pydantic 모델 사용
- Async/await 패턴 사용
- 테스트 코드 작성
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 프로젝트는 교육 및 연구 목적으로 제작되었습니다. 실제 투자에 사용하기 전에 충분한 검증과 테스트를 거쳐야 합니다. 투자 손실에 대한 책임은 사용자에게 있습니다.
중요: 이 도구는 투자 조언이 아닙니다. 모든 투자 결정은 본인의 판단에 따라 이루어져야 합니다.
프로젝트에 대한 문의사항이나 제안사항이 있으시면 이슈를 생성해 주세요.
함께 더 나은 투자 도구를 만들어가요! 🚀