- Add an SVG Bitcoin favicon and link it in index.html. - New indicators: macd() and roc(). - Five new strategies: macd_trend, bollinger_reversion, donchian_breakout, ema_cross, momentum (plus the existing sma_cross, rsi_reversion). - Default TIMEFRAME is now 5m (config, .env.example, compose, workflow, UI).
50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
# Local / self-contained stack: no Traefik, publishes ports directly.
|
|
# Usage: docker compose -f docker-compose.local.yml up --build
|
|
# Dashboard: http://localhost:8080 API docs: http://localhost:8000/docs
|
|
name: crypto_trading_local
|
|
|
|
services:
|
|
backend:
|
|
build: ./backend
|
|
container_name: crypto-trading-backend-local
|
|
restart: unless-stopped
|
|
environment:
|
|
- MODE=${MODE:-paper}
|
|
- EXCHANGE=${EXCHANGE:-binance}
|
|
- SYMBOL=${SYMBOL:-BTC/USDT}
|
|
- TIMEFRAME=${TIMEFRAME:-5m}
|
|
- POLL_INTERVAL=${POLL_INTERVAL:-5}
|
|
- STARTING_BALANCE=${STARTING_BALANCE:-10000}
|
|
- FEE_BPS=${FEE_BPS:-10}
|
|
- SLIPPAGE_BPS=${SLIPPAGE_BPS:-5}
|
|
- DATABASE_URL=sqlite:////data/trader.db
|
|
- CORS_ORIGINS=*
|
|
- EXCHANGE_API_KEY=${EXCHANGE_API_KEY:-}
|
|
- EXCHANGE_API_SECRET=${EXCHANGE_API_SECRET:-}
|
|
- EXCHANGE_SANDBOX=${EXCHANGE_SANDBOX:-false}
|
|
- MAX_DAILY_LOSS=${MAX_DAILY_LOSS:-0}
|
|
- MAX_DRAWDOWN_PCT=${MAX_DRAWDOWN_PCT:-0}
|
|
- MAX_POSITION_PCT=${MAX_POSITION_PCT:-1.0}
|
|
- MAX_TRADES_PER_DAY=${MAX_TRADES_PER_DAY:-0}
|
|
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
|
|
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
|
|
- NOTIFY_WEBHOOK_URL=${NOTIFY_WEBHOOK_URL:-}
|
|
- API_TOKEN=${API_TOKEN:-}
|
|
- API_TOKEN_HEADER=${API_TOKEN_HEADER:-X-API-Token}
|
|
volumes:
|
|
- ./data:/data
|
|
ports:
|
|
- "8000:8000"
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
container_name: crypto-trader-frontend-local
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- backend
|
|
environment:
|
|
- API_TOKEN=${API_TOKEN:-}
|
|
- API_TOKEN_HEADER=${API_TOKEN_HEADER:-X-API-Token}
|
|
ports:
|
|
- "8080:80"
|