diff --git a/src/live/analista.py b/src/live/analista.py
index e669d98..ba0812e 100644
--- a/src/live/analista.py
+++ b/src/live/analista.py
@@ -206,9 +206,22 @@ def testata(voce: dict) -> str:
p, lb = voce.get("pnl") or {}, voce.get("libro") or {}
dq, cum = p.get("delta_equity"), p.get("cumulato_da_arming")
eq = p.get("equity_fine")
+ # (#35 C8) il cron gira alle 00:30 sul giorno CHIUSO: "oggi" e' ieri -> "nel giorno". E se
+ # ci sono movimenti di capitale CERTI (mov_giorno; bool() come journal.scorporo: assente o
+ # 0 -> nessun movimento) la cifra da mostrare e' trading_giorno (al netto), non l'equity
+ # grezza: altrimenti un versamento si legge come P&L (successo il 25/08, +$1.399 letti come
+ # profitto). Se trading_giorno non e' calcolabile si resta su delta_equity, ma con l'etichetta
+ # nuova: non e' "oggi", e non e' comunque il trading al netto.
+ dq_t = p.get("trading_giorno")
+ if p.get("mov_giorno") and dq_t is not None:
+ nota_dq = f" ({dq_t:+.2f} nel giorno, di cui {p['mov_giorno']:+.2f} movimenti)"
+ elif dq is not None:
+ nota_dq = f" ({dq:+.2f} nel giorno)"
+ else:
+ nota_dq = ""
r = [f"๐ Giornale โ {_b(voce['giorno'])}"]
r.append(" equity " + (f"${eq:,.2f}" if eq is not None else "n/d")
- + ("" if dq is None else f" ({dq:+.2f} oggi)")
+ + nota_dq
+ ("" if cum is None else f" ยท dall'arming {cum:+.2f}"
+ (f" (di cui {p['mov_arming']:+.2f} versati -> trading "
f"{p['trading_da_arming']:+.2f})"
diff --git a/tests/test_analista.py b/tests/test_analista.py
index d24eec5..1348f7d 100644
--- a/tests/test_analista.py
+++ b/tests/test_analista.py
@@ -285,6 +285,39 @@ def test_la_testata_porta_i_numeri_che_si_leggono_dalla_notifica():
t = A.testata(_voce_piena())
assert "$637.36" in t and "+2.36" in t and "+39.30" in t
assert "BTC $+116" in t and "leva 0.41x" in t and "1 fill" in t
+ # (#35 C8) il cron gira alle 00:30 sul giorno CHIUSO: non e' "oggi", e' "nel giorno".
+ assert "nel giorno" in t and "oggi" not in t
+
+
+def test_testata_con_movimento_mostra_trading_giorno_non_il_grezzo():
+ """(#35 C8) Un versamento di $1.399 non deve leggersi come P&L: con mov_giorno != 0 e
+ trading_giorno calcolabile, la cifra mostrata e' trading_giorno, non delta_equity."""
+ voce = _voce_piena()
+ voce["pnl"] = dict(voce["pnl"], delta_equity=1401.36, mov_giorno=1399.0, trading_giorno=2.36)
+ t = A.testata(voce)
+ assert "+2.36 nel giorno" in t
+ assert "di cui +1399.00 movimenti" in t
+ assert "+1401.36" not in t # il grezzo non compare piu' in testata
+
+
+def test_testata_con_movimento_ma_trading_giorno_none_resta_sul_grezzo():
+ """(#35 C8) Se trading_giorno non e' calcolabile (None) si resta su delta_equity, ma con
+ l'etichetta nuova, non "oggi"."""
+ voce = _voce_piena()
+ voce["pnl"] = dict(voce["pnl"], delta_equity=1401.36, mov_giorno=1399.0, trading_giorno=None)
+ t = A.testata(voce)
+ assert "+1401.36 nel giorno" in t
+ assert "di cui" not in t
+
+
+def test_testata_senza_movimento_mostra_il_grezzo_con_etichetta_nuova():
+ """(#35 C8) mov_giorno assente o 0: nessun movimento da scorporare, stesso trattamento di
+ journal.scorporo (bool())."""
+ voce = _voce_piena()
+ voce["pnl"] = dict(voce["pnl"], mov_giorno=0.0, trading_giorno=2.36)
+ t = A.testata(voce)
+ assert "+2.36 nel giorno" in t
+ assert "di cui" not in t
def test_il_messaggio_sfugge_l_HTML_e_converte_il_grassetto():