fad4006f60
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
---
|
|
id: "0088i"
|
|
title: "Trading: app `trading_journal` (reflection log)"
|
|
status: pendiente
|
|
type: feature
|
|
domain:
|
|
- trading
|
|
scope: app-scoped
|
|
priority: alta
|
|
depends: []
|
|
blocks: []
|
|
related: []
|
|
created: 2026-05-17
|
|
updated: 2026-05-17
|
|
tags: []
|
|
---
|
|
# 0088i — Trading: app `trading_journal` (reflection log)
|
|
|
|
**Status:** pendiente
|
|
**Created:** 2026-05-14
|
|
**Type:** feature
|
|
**Parent:** 0088
|
|
**Depends:** 0088a, 0088d
|
|
**Blocks:** 0088j (assertions sobre adherencia a reflection)
|
|
|
|
## Problema
|
|
|
|
Sin post-mortem por trade y por sesion, "mejorar" es una ilusion. El journal fuerza la reflexion en momentos clave (close de trade, fin de sesion, dia de drawdown notable). Es la pieza de **skill autoiterado** propiamente dicha: no es codigo del runner, es el ledger psicologico/operativo del operador.
|
|
|
|
## Piezas
|
|
|
|
1. App `projects/trading/apps/trading_journal/` (Mantine UI + sqlite_api + Go service).
|
|
2. Schema:
|
|
- `sessions` (id, started_at, ended_at, market_context, mood_tag, notes).
|
|
- `trade_reflections` (id, trade_group_id (link a transactions), opened_at, closed_at, thesis, what_went_right, what_went_wrong, lessons, tags, screenshots_paths).
|
|
- `weekly_reviews` (id, week_iso, sharpe_week, drawdown_week, n_trades, adherence_score, lessons).
|
|
- `tags` (id, name, color).
|
|
3. Reglas de UX:
|
|
- **Forzar reflection** antes de marcar un trade_group como "closed". Si no se rellena, queda `closed_pending_reflection` y aparece destacado.
|
|
- Atajo desde Mantine para vincular un trade con N screenshots (drop en local_files/).
|
|
4. Funciones puras:
|
|
- `compute_adherence_score_py_finance(trades, plan_yaml) -> float` (mide cuanto de lo ejecutado coincide con el plan declarado).
|
|
- `aggregate_weekly_metrics_py_finance(trades, reflections) -> dict`.
|
|
5. `e2e_checks`: build + smoke + check de `force_reflection` (intentar cerrar sin reflection devuelve 422).
|
|
6. Capability group `journal`. Pagina madre `docs/capabilities/journal.md`.
|
|
|
|
## Aceptacion
|
|
|
|
- Cerrar trade sin reflection es imposible via UI/API.
|
|
- Adherence score computable y exportable.
|
|
- Weekly review autogenerado los domingos (cron) — opcional para cerrar el issue, no obligatorio.
|
|
|
|
## No-objetivos
|
|
|
|
- AI auto-resumiendo reflections — futuro.
|
|
- Sentiment analysis sobre notas.
|