PR7: backtest panel on the dashboard #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/dashboard-backtest"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bringt den Backtest aus PR5/PR6 ins Dashboard.
Inhalt
backtest.load_and_run()auscli._cmd_backtestherausgezogen: holt/cacht je Asset die nötigen Closes (Kraken oder Binance) und ruft dannrun(). CLI und der neue Endpunkt teilen sich die Logik; Fortschritts-/Horizont-Hinweise gehen jetzt an einennote-Callback (CLI → stderr, API → sammelt sie in die Antwort).GET /api/backtest– Query:days=oderfrom=/to=,timeframe=1d|1w,source=kraken|binance,refresh=. Antwort{report, notes}.422bei fehlendem / verdrehtem Fenster,400bei fehlender Überlappung,502bei Abruf-Fehlerohlcv_cacheschreiben (sonst nichts).api.py-Docstring entsprechend angepasst.notesals Meta-Zeile. Läuft nicht beim Seitenaufruf, nur auf Klick (Netz-/Rechen-Aktion).Verifiziert
pytest→ 76 passed (3 neu):/api/backtestaus vorgefülltemohlcv_cache, fehlendes + verdrehtes Fenster;app.jsverdrahtet/backtestohlcv_cacheper CLI (backtest --days 730 --source binance) befüllt, dannserve→GET /api/backtest?days=700&source=binanceliefert den Report aus dem Cache (kein Abruf),422für die Fehlerfälle; im Browser das Panel abgeschickt → Spinner → 3-Spalten-Tabelle korrekt gerendert (EUR-/%-Format, Vorzeichenfarben, Datums-Span)Sicherheit
127.0.0.1SETUP.mdvermerktCo-authored-by: Claude claude@anthropic.com
- extract backtest.load_and_run(): fetch/cache the closes each asset needs (kraken or binance), then run(); CLI and the new endpoint share it, progress notes go to a callback instead of straight to stderr - GET /api/backtest?days=|from=&to=&timeframe=&source=&refresh= -> {report, notes} (422 missing/reversed window, 400 no overlap, 502 on a fetch failure) - the one API route that may hit an exchange and write ohlcv_cache; module docstring updated to say so Co-authored-by: Claude <claude@anthropic.com>