Adriano d159075182 feat(ga): fitness continua v1 con tanh(sharpe) + penalita' moltiplicativa di drawdown
Phase 1 v0 usava `max(0, dsr - 0.5*max_dd)` che azzerava brutalmente la fitness
quando max_dd > 2*dsr. Real run v4 aveva 55/55 strategie a fitness=0 (DSR ~0.001,
max_dd > 0.5), zero pressione selettiva sul GA.

v1: base = 0.5*dsr + 0.5*0.5*(tanh(sharpe)+1) in [0,1], modulata da penalty
moltiplicativa 1/(1+k*max_dd) in (0,1]. Hard kill (no-trade, HIGH adversarial)
preservati. Fitness sempre >0 per strategie con almeno 1 trade -> il GA
puo' preferire "meno cattivo" a "catastrofico" anche su sharpe negativo.

Tests: +3 nuovi (continuous mediocre, bounded, monotonic drawdown), 4 esistenti
restano verdi. Suite 138 -> 141 passed. ruff + mypy strict puliti.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 21:24:05 +02:00

Multi_Swarm_Coevolutive — Phase 1

Lean spike del PoC. Vedi docs/superpowers/specs/2026-05-09-decisione-strategica-design.md per il razionale e docs/superpowers/plans/2026-05-09-phase1-lean-spike.md per il piano implementativo.

Setup

uv sync
cp .env.example .env  # compilare token e API key
uv run pytest         # verifica che tutto installi

Cerbero locale

Phase 1 backtest legge dataset OHLCV cached, ma alcune feature di indicatore sono delegate a Cerbero. Avviare Cerbero locale prima di eseguire un run:

cd /home/adriano/Documenti/Git_XYZ/CerberoSuite/Cerbero_mcp
docker compose up -d

Comandi principali

uv run pytest                                # tutti i test
uv run pytest tests/unit -v                  # solo unit
uv run pytest tests/integration -v -m integration  # solo integration
uv run python scripts/run_phase1.py          # run completo Phase 1
uv run streamlit run src/multi_swarm/dashboard/streamlit_app.py
S
Description
No description provided
Readme 418 KiB
Languages
Python 100%