chore: avance acumulado de sesiones previas (reorg dev/issues + ajustes)
Reorganizacion de dev/issues en subcarpetas (completed/, cpp/, gamedev/, kanban/, trading/, imagegen/, matrix/) y cambios acumulados en cmd/fn/pyrunner, .claude/commands y settings. Trabajo de otro LLM/sesion, commiteado a peticion del usuario para desbloquear el working tree. Excluido logs/ardour_mcp_server.log (ruido).
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: "0088g"
|
||||
title: "Trading: app `backtester`"
|
||||
status: pendiente
|
||||
type: feature
|
||||
domain:
|
||||
- trading
|
||||
scope: app-scoped
|
||||
priority: alta
|
||||
depends: ["0088b", "0088c", "0088d", "0088e", "0088f"]
|
||||
blocks: []
|
||||
related: []
|
||||
created: 2026-05-17
|
||||
updated: 2026-05-17
|
||||
tags: []
|
||||
---
|
||||
# 0088g — Trading: app `backtester`
|
||||
|
||||
**Status:** pendiente
|
||||
**Created:** 2026-05-14
|
||||
**Type:** feature
|
||||
**Parent:** 0088
|
||||
**Depends:** 0088b, 0088c, 0088d, 0088e, 0088f
|
||||
**Blocks:** 0088h (activar live solo tras backtest verde + paper estable)
|
||||
|
||||
## Problema
|
||||
|
||||
Necesitamos un backtest harness deterministico que corra una Strategy contra OHLCV historico, aplique el mismo pipeline de risk que en live, simule fills via `broker_paper`, y produzca un reporte estandarizado. Sin este harness, no hay forma de comparar estrategias ni de validar que `sharpe_backtest ≈ sharpe_live`.
|
||||
|
||||
## Piezas
|
||||
|
||||
1. App `projects/trading/apps/backtester/` (CLI + opcional web).
|
||||
2. Pipeline canonico: `load_ohlcv → loop ticks → Strategy.decide → apply_risk → broker_paper → ledger → siguiente`.
|
||||
3. Reporte deterministico (JSON + markdown) con:
|
||||
- Total return, CAGR, sharpe, sortino, max drawdown, calmar, win-rate, avg win/loss, exposure %.
|
||||
- Equity curve (lista timestamp, equity).
|
||||
- Tabla de trades con `client_order_id`.
|
||||
4. CLI:
|
||||
- `./fn run backtester --strategy <id> --params params.yaml --symbol BTCUSDT --interval 1h --from 2024-01-01 --to 2024-12-31`.
|
||||
5. Determinismo: misma semilla, mismos datos, mismo reporte byte-a-byte.
|
||||
6. `e2e_checks`:
|
||||
- `build`, `smoke` (corre backtest dummy 100 velas).
|
||||
- `determinism`: 2 corridas idem producen mismo hash de reporte.
|
||||
7. Reuso obligatorio: cada paso es funcion del registry (no inline en la app).
|
||||
|
||||
## Aceptacion
|
||||
|
||||
- Reporte hash-estable entre corridas con misma seed.
|
||||
- 2 strategies de referencia (0088e) corren contra >= 1 simbolo y producen reporte completo.
|
||||
- Reporte importable desde `analysis/strategy_lab` para comparar estrategias.
|
||||
|
||||
## No-objetivos
|
||||
|
||||
- Optimizacion de parametros (grid search, bayesian) — saldria a sub-issue futuro.
|
||||
- Walk-forward / cross-validation — futuro.
|
||||
- UI rica de reporte — primero CLI + markdown.
|
||||
Reference in New Issue
Block a user