# Trading Bot Automated stock trading bot combining news sentiment analysis with technical strategies. Built as event-driven Python microservices communicating via Redis Streams, with a React/TypeScript dashboard and Alpaca paper trading. ## Architecture ``` RSS/Reddit ─→ news_fetcher ─→ [news:raw] ─→ sentiment_analyzer ─→ [news:scored] ┐ │ Alpaca OHLCV ─→ market_data ─→ [market:bars] ────────────────────────────────────┤ │ signal_generator ←──────────────────┘ │ [signals:generated] │ trade_executor ─→ [trades:executed] ─→ learning_engine │ │ Alpaca API Redis (weights) ``` **Services**: news-fetcher, sentiment-analyzer, signal-generator, trade-executor, learning-engine, market-data, api-gateway, dashboard **9 Trading Strategies**: Momentum, Mean Reversion, News-Driven, Value, MACD Crossover, Bollinger Breakout, VWAP, Liquidity, MA Stack — combined via weighted ensemble with multi-armed bandit weight adjustment. ## Tech Stack - **Backend**: Python 3.12, FastAPI, SQLAlchemy 2.0 (async), Pydantic v2, alpaca-py - **Frontend**: React 19, TypeScript, Vite, Tailwind CSS, TanStack Query, TradingView lightweight-charts - **ML**: transformers (FinBERT), Ollama (local LLM fallback) - **Database**: PostgreSQL 16 + TimescaleDB, Alembic migrations (16 tables) - **Messaging**: Redis Streams + pub/sub - **Auth**: WebAuthn/Passkeys + JWT sessions - **Observability**: OpenTelemetry + Prometheus metrics - **CI/CD**: Woodpecker → Docker → Kubernetes ## Quick Start ```bash # Full stack with Docker Compose docker compose up -d # Seed default strategies docker compose exec api-gateway python -m scripts.seed_strategies ``` ## Development ```bash # Create virtual environment python3 -m venv .venv && source .venv/bin/activate # Install all dependencies pip install -e ".[api,news,sentiment,trading,backtester,dev]" # Run unit tests (404 tests) python -m pytest tests/ -v -m "not integration" # Run integration tests (requires Redis + PostgreSQL) python -m pytest tests/ -v -m integration # Dashboard development cd dashboard && npm install && npm run dev ``` ## Project Structure ``` trading-bot/ ├── shared/ # Shared libraries (config, DB, Redis, models, schemas, broker, strategies, fundamentals) ├── services/ # 7 microservices (news_fetcher, sentiment_analyzer, signal_generator, │ # trade_executor, learning_engine, market_data, api_gateway) ├── backtester/ # Historical replay engine with simulated broker ├── dashboard/ # React 19 / TypeScript / Vite frontend ├── docker/ # Dockerfiles and nginx configs ├── scripts/ # Seed scripts and smoke tests ├── tests/ # 404 unit + 9 integration tests ├── alembic/ # Database migrations ├── docker-compose.yml # Full stack orchestration ├── .woodpecker.yml # CI/CD pipeline └── pyproject.toml # Python monorepo with optional dependency groups ```