No description
Find a file
Viktor Barzin a3cdd0f1a5
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: resolve all remaining TODOs, add dev mode auth bypass
- Learning engine: expand default weights from 3 to all 9 strategies
- Learning engine: resolve placeholder strategy_id with DB lookup
- Learning engine: pass strategy_sources from trade execution
- Trade executor: respect trading:paused Redis flag in RiskManager
- Portfolio sync: compute actual daily P&L from day-start snapshot
- Portfolio API: cumulative P&L from first snapshot, read pause flag
- Portfolio metrics: compute max drawdown and avg hold duration
- Add strategy_sources field to TradeExecution schema
- Add dev_mode config (TRADING_DEV_MODE) to bypass auth for local dev
- Dashboard: VITE_DEV_MODE bypasses ProtectedRoute and 401 redirects
- Vite proxy target configurable via VITE_API_TARGET
- Add top-level README.md and remaining-work-plan.md
- Update CLAUDE.md with correct counts and remove stale TODOs
- 404 tests passing

Made-with: Cursor
2026-02-25 22:02:25 +00:00
.claude fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
.planning/codebase docs: map existing codebase 2026-02-23 20:04:05 +00:00
alembic fix: make hypertable creation conditional on TimescaleDB extension 2026-02-25 21:03:31 +00:00
backtester fix: resolve 13 important issues from code review 2026-02-22 17:58:01 +00:00
dashboard fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
docker add K8s nginx config and parameterize Dockerfile.dashboard 2026-02-23 22:27:52 +00:00
docs/plans fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
scripts feat: wire 6 new strategies and fundamentals into signal generator 2026-02-23 21:55:59 +00:00
services fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
shared fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
tests fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00
.env.example feat: productionize local service — fix signal pipeline, lower thresholds, add company-name ticker extraction 2026-02-22 22:17:26 +00:00
.gitignore feat: docker compose infrastructure — postgres+timescaledb, redis, ollama 2026-02-22 15:11:50 +00:00
.woodpecker.yml fix: push final tags directly from buildx, remove publish-images step 2026-02-25 21:25:27 +00:00
alembic.ini feat: database models and alembic migrations — all tables per design 2026-02-22 15:17:07 +00:00
docker-compose.yml feat: productionize local service — fix signal pipeline, lower thresholds, add company-name ticker extraction 2026-02-22 22:17:26 +00:00
pyproject.toml feat: make backtest work end-to-end with Alpaca bars, ticker selection, all 9 strategies 2026-02-23 22:25:41 +00:00
README.md fix: resolve all remaining TODOs, add dev mode auth bypass 2026-02-25 22:02:25 +00:00

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

# Full stack with Docker Compose
docker compose up -d

# Seed default strategies
docker compose exec api-gateway python -m scripts.seed_strategies

Development

# 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