Risk controls / kill switch: RiskManager halts + flattens on max daily loss and drawdown, caps position size and trades/day. Manual POST /api/bot/kill.
Notifications: Telegram + generic webhook on trades, errors and halts (best-effort).
API token: optional bearer token on /api, injected server-side by the frontend nginx.
Exchanges: Kraken + Coinbase market data; Coinbase live broker. Unsupported live exchange now errors.
Presets: /api/presets CRUD + UI.
Fix: idempotent additive-column migration so existing SQLite DBs upgrade in place.
Testing
Backend: 67 tests pass, ruff clean.
Frontend: build + 5 tests pass.
Smoke-tested against live Binance/Kraken/Coinbase data and the kill switch.
## Summary
- **Risk controls / kill switch**: `RiskManager` halts + flattens on max daily loss and drawdown, caps position size and trades/day. Manual `POST /api/bot/kill`.
- **Notifications**: Telegram + generic webhook on trades, errors and halts (best-effort).
- **API token**: optional bearer token on `/api`, injected server-side by the frontend nginx.
- **Exchanges**: Kraken + Coinbase market data; Coinbase live broker. Unsupported live exchange now errors.
- **Presets**: `/api/presets` CRUD + UI.
- **Fix**: idempotent additive-column migration so existing SQLite DBs upgrade in place.
## Testing
- Backend: 67 tests pass, ruff clean.
- Frontend: build + 5 tests pass.
- Smoke-tested against live Binance/Kraken/Coinbase data and the kill switch.
- RiskManager halts + flattens on max daily loss / drawdown, caps position
size and trades per day; adds a manual kill switch (POST /api/bot/kill).
- Telegram and webhook notifications on trades, errors and halts.
- Optional API bearer token on /api, injected server-side by the frontend
nginx so the browser never sees it.
- Kraken and Coinbase market data (public); Coinbase live broker. Live on an
unsupported exchange now errors instead of silently falling back to paper.
- Strategy presets backed by the StrategyConfig table (CRUD API + UI).
- Idempotent additive-column migration so existing SQLite databases upgrade in
place (fixes the new strategy_configs.name column).
matitos
merged commit 186a6949ee into main2026-09-18 21:39:07 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
RiskManagerhalts + flattens on max daily loss and drawdown, caps position size and trades/day. ManualPOST /api/bot/kill./api, injected server-side by the frontend nginx./api/presetsCRUD + UI.Testing