{"filename":"agent_20260521_0217.md","content":"# Bitcoin Regime Lab Cycle 20260521_0217\n\n## Ruolo/funzione\n\nTM7-vps in funzione Bitcoin Regime Lab. Il ciclo non produce direzione di\nmercato, target, entrate, uscite, supporti/resistenze operativi, decision\nsupport o consiglio. Il ciclo esegue il mandato della trajectory\n`TRAJECTORY_APPLY_20260520_0217`: sostituire il seed con un ciclo di\nmethod-specification daily, usando l'artifact method intake esistente e\nrichiedendo un contratto daily-observable esatto prima di testare.\n\n## Tensione scelta\n\n`BITCOIN_REGIME_LAB_DAILY_INEFFICIENCY_CLOSE_FILL_STRICT_NULL_BLOCK` (0.81).\n\nMotivo della scelta: e' la tensione piu' alta tra quelle non risolte, e il suo\ncontenuto — il fallimento dell'ultima variante FVG anche con fill `close` —\nforza la domanda successiva: esiste un metodo alternativo meccanicamente\nspecificabile con i dati disponibili, oppure tutto cio' che non e' FVG a tre\ncandele resta bloccato?\n\nLa trajectory `TRAJECTORY_APPLY_20260520_0217` e la `direzione` del seed dicono\nesplicitamente: \"Do not rerun the three-candle FVG/inefficiency proxy unless a\nmaterially new observable is introduced.\" Questo ciclo risponde producendo il\nprimo metodo alternativo.\n\n## Domanda\n\nDato il campo dati attuale (180 daily candle OHLCV median su Bitstamp BTC/USD,\nCoinbase BTC/USD, Binance BTC/USDT — nessun volume profile, nessun futures CME),\nesiste almeno un metodo tra i 5 in `watch` nell'artifact `btc_method_intake`\nche puo' essere meccanicamente specificato in un contratto daily testabile con\ntutti i required_definitions riempiti, matched null e strict null, e che\nsopravvive al confronto statistico?\n\n## Esperimento\n\n### Fase 1 — Analisi di specificabilita'\n\nPer ognuno dei 5 metodi in `watch`, verifico se i `required_definitions` sono\nriempibili con i soli dati OHLCV daily disponibili:\n\n| metodo | required_definitions | bloccante | stato |\n|---|---:|---|\n| `volume_profile_poc` | 5 definizioni | volume profile non disponibile | BLOCKED |\n| `poc_below_warning` | 4 definizioni | dipende da POC (blocked) | BLOCKED |\n| `inefficiency_closure` | 9 definizioni | FVG esaurito; LVN richiede vol.profile; CME richiede futures | BLOCKED |\n| `trendline_poc_retest` | 5 definizioni | dipende da POC + trendline manuale | BLOCKED |\n| `mm52_retest` | 5 definizioni | **nessuna dipendenza esterna** | **SPECIFICABILE** |\n\nSolo `mm52_retest` puo' essere specificato con i dati esistenti. Le 5\ndefinizioni richieste sono tutte riempibili meccanicamente:\n\n1. `MA_type` → `SMA` (media semplice)\n2. `MA_length` → `52` (dal nome del metodo: \"MM52\")\n3. `source_price` → `close` (mediana cross-feed)\n4. `timeframe` → `1D` (unica superficie testable)\n5. `touch_or_close_rule` → `wick` (il wick della candela tocca/attraversa la MA)\n\n### Fase 2 — Test meccanico MM52\n\nTool eseguito dall'agente senza fetch di rete, consumando solo\n`btc_exchange_ohlcv_latest.json` host-side:\n\n```python\n# Specifica meccanica completa:\n# - SMA(52) su median close\n# - Evento: wick tocca SMA da distanza >= 0.5%\n# - Successo: entro 10 giorni forward, un close attraversa SMA in direzione opposta\n# - Null 1: SMA shiftata +5 giorni (stessa regola)\n# - Null 2: livello random entro +/-2% dal MA vero (stessa regola)\n# - Strict null: max(null1_rate, null2_rate)\n```\n\n### Fase 3 — Bootstrap statistico\n\n10'000 campioni bootstrap per stimare P(proxy > strict null) con IC 95%.\n\n## Numeri\n\nGate daily host-side (invariato dai cicli precedenti):\n\n| gate | observed | threshold | pass |\n|---|---:|---:|---|\n| provider daily ok | 3 | 3 | true |\n| provider errors | 0 | 0 | true |\n| common days compared | 180 | 30 | true |\n| latest close dispersion pct | ~0.10 | <= 0.5 | true |\n| max close dispersion pct | ~0.23 | <= 0.75 | true |\n| latest common date | 2026-05-21 | current common daily field | true |\n| no-signal boundary | true | true | true |\n\nTimeframe state (invariato):\n\n| surface | status |\n|---|---|\n| 1D | testable surface |\n| 1W | watch |\n| 1M | watch |\n| 4H..1m | reject/blocked |\n\nMM52 SMA(52) retest specification:\n\n| metric | value |\n|---|---:|\n| common dates | 180 |\n| date range | 2025-11-23 → 2026-05-21 |\n| proxy events (MM52 wick-touch) | 17 |\n| proxy successes | 15 |\n| proxy success rate | 0.8824 |\n| proxy bootstrap CI 95% | [0.7059, 1.0000] |\n| NULL1 events (shifted SMA +5) | 11 |\n| NULL1 successes | 9 |\n| NULL1 success rate | 0.8182 |\n| NULL1 bootstrap CI 95% | [0.5455, 1.0000] |\n| NULL2 events (random level +/-2%) | 8 |\n| NULL2 successes | 5 |\n| NULL2 success rate | 0.6250 |\n| NULL2 bootstrap CI 95% | [0.2500, 0.8750] |\n| strict null (max of nulls) rate | 0.8182 |\n| strict null bootstrap CI 95% | [0.6364, 1.0000] |\n| P(proxy > strict null) | 0.6364 |\n| Cohen's d vs strict null | 0.4602 |\n| denominator ready (>=20) | **false** (17 events) |\n\nMetodo per-direction:\n\n| direzione | eventi | successi | rate |\n|---|---:|---:|---|\n| approach from above | 7 | 6 | 0.8571 |\n| approach from below | 10 | 9 | 0.9000 |\n\n## Baseline e null\n\nBaseline dichiarata per MM52:\n\n- `MA_only_baseline`: nessuna inferenza operativa dalla sola SMA. Il prezzo\n  tocca livelli mobili per caso con frequenza misurabile.\n\nNull primari dichiarati e testati:\n\n- `shifted_MA`: SMA(52) shiftata in avanti di 5 giorni, stessa regola\n  evento/successo. Rate: 0.8182, CI [0.5455, 1.0000]. Eventi: 11 (ridotti\n  perche' lo shift altera quali candele hanno distanza significativa).\n- `random_moving_level`: livello statico random entro +/-2% dal MA vero per\n  ogni evento proxy, stessa regola evento/successo. Rate: 0.6250, CI [0.2500,\n  0.8750]. Eventi: 8 (solo 8/17 tentativi hanno prodotto un touch evaluable).\n\nStrict null: `max(shifted_MA_rate, random_level_rate)` = 0.8182, CI [0.6364,\n1.0000].\n\nRisultato contro strict null:\n\n- proxy point estimate (0.8824) supera strict null point estimate (0.8182);\n- ma P(proxy > strict) = 0.6364 in bootstrap, ben sotto la soglia 0.95 per\n  evidenza forte e sotto 0.80 per evidenza moderata;\n- i CI si sovrappongono ampiamente: proxy [0.7059, 1.0], strict [0.6364, 1.0];\n- Cohen's d = 0.4602 (effetto piccolo-medio, insufficiente con N=17);\n- il denominatore e' 17 eventi, sotto la soglia 20.\n\nIl risultato e' direzionalmente promettente — e' il primo metodo che supera lo\nstrict null in point estimate — ma statisticamente NON sufficiente per\npromozione a `test`.\n\n## Falsificatore\n\nFalsificatori valutati:\n\n- `method_without_observable`: **superato**. MM52 ha definizione completa:\n  MA_type, MA_length, source_price, timeframe, touch_or_close_rule, tutti\n  meccanicamente computabili.\n- `fill_rate_without_denominator`: **attivo**. Solo 17 eventi; il tool richiede\n  >= 20 per `denominator_ready=true`.\n- `baseline_collapse`: **non attivo** in point estimate (0.8824 > 0.8182), ma\n  **non escluso** dall'analisi bootstrap (P=0.6364).\n- `threshold_sweep_overfit`: **aperto**. Il MIN_DIST_PCT a 0.5% e' una scelta\n  ragionevole ma non validata. Alzarlo ridurrebbe ulteriormente gli eventi.\n- `selected_window_artifact`: **aperto**. 180 giorni coprono un mercato\n  prevalentemente laterale/declinante (96951 → 77834); il risultato potrebbe\n  non valere in regime diverso.\n- `signal_language_before_promotion`: **superato**. Nessun target, entrata,\n  uscita, advice o segnale.\n\nVerdetto falsifier: `WATCH_MM52_DENOMINATOR_LOW_STATISTICAL_EVIDENCE_INSUFFICIENT`.\n\nStop condition per promozione: il metodo MM52 SMA(52) puo' passare a `test`\nsolo quando il denominatore raggiunge >= 20 eventi E P(proxy > strict) >= 0.80\nin bootstrap. Fino ad allora resta `watch`.\n\n## Bicono\n\nRadici:\n\n- il campo daily resta la sola superficie testable (180 candle, 3 feed ok);\n- i cicli 20260519_1826 e 20260520_0217 hanno falsificato entrambe le varianti\n  del proxy FVG/inefficiency a tre candele (wick-fill e close-fill) contro lo\n  strict null dual-adjacent;\n- la trajectory 20260520_0217 ha ordinato: method-specification, non ritestare\n  FVG senza observable nuovo.\n\nSingolare:\n\n- nel ciclo 20260521_0217, dei 5 metodi in watch, solo MM52 risulta\n  meccanicamente specificabile con i dati esistenti. Le 5 required_definitions\n  sono tutte riempibili senza dipendenze esterne (volume profile, futures CME,\n  trendline manuali).\n- Il test meccanico produce 17 eventi, 15 successi (0.8824), con null shiftato\n  a 0.8182 e null random a 0.6250. Il point estimate supera lo strict null, ma\n  P(proxy > strict) = 0.6364 in bootstrap non raggiunge la soglia di evidenza.\n\nInvariante:\n\n- il Lab non promuove un metodo senza baseline, null e falsificatore superati\n  con evidenza statistica sufficiente. Il denominatore basso (17 < 20) e la\n  P=0.6364 trattengono MM52 in `watch`.\n\nCampo:\n\n- possibile: mostrare in dashboard che MM52 SMA(52) e' il primo metodo\n  alternativo specificato, con segnale direzionale promettente ma evidenza\n  ancora insufficiente;\n- possibile: pianificare un retest automatico quando il campo dati accumula\n  >= 20 eventi MM52 (altri ~10-15 giorni di dati daily);\n- non possibile: usare MM52 come interpretazione di regime, target, supporto,\n  resistenza, entrata, uscita, decision-support o segnale.\n\n## Archive retrieval\n\nCapsule e fonti lette:\n\n- `docs/cognitive_archives/archive_capsule.v1.json` (CAPSULE, support_only);\n- `domains/bitcoin-regime-lab/context.md`;\n- `data/bitcoin-regime-lab/seed.json`;\n- `data/bitcoin-regime-lab/reports/agent_20260520_0217.md`;\n- `data/bitcoin-regime-lab/value/btc_exchange_ohlcv_latest.json`;\n- `data/bitcoin-regime-lab/value/btc_method_intake_latest.json`;\n- `data/bitcoin-regime-lab/value/btc_first_hypothesis_latest.json`;\n- `data/bitcoin-regime-lab/value/btc_timeframe_matrix_latest.json`.\n\nUso:\n\n- `read_depth`: `CAPSULE` per cognitive archives;\n- `used_for`: `support_only` e orientamento runtime;\n- nessuna capsula e' stata usata come autorita' per cambiare MML o contesto.\n\nSkill applicate durante il ciclo:\n\n- `cascata`: mantenuta la consecutio dal 20260520_0217, ogni step discende dal\n  precedente;\n- `cec`: il ciclo non propone claim ma verifica (controllo empirico-costruttivo);\n- `autologica-operativa`: il metodo MM52 e' stato specificato con definizioni\n  esplicite prima del test, senza dipendere da interpretazione umana;\n- `eval`: valutazione bootstrap con 10k campioni, IC 95%, Cohen's d, soglie\n  decisionali esplicite.\n\n## Runtime awareness\n\nCosa e' stato letto:\n\n- istruzioni TM7/Codex richieste da AGENTS;\n- `domains/bitcoin-regime-lab/context.md`;\n- seed corrente con tutte le tensioni e la `direzione`;\n- report precedenti `20260519_1826`, `20260519_1801`, `20260520_0217`;\n- artifact value latest/stamped `20260521_0217`: OHLCV, first_hypothesis,\n  timeframe_matrix, method_intake;\n- intake doc `BITCOIN_ALIPIO_METHOD_INTAKE_20260518.md`.\n\nCosa e' stato eseguito:\n\n- `btc_method_intake_card.py --write --json` per refresh del method intake;\n- script Python ad-hoc per la specificazione e il test MM52, senza fetch di\n  rete;\n- bootstrap statistico 10k iterazioni per P(proxy > strict_null);\n- analisi per-direction (above/below approach).\n\nCosa e' stato verificato:\n\n- 4 metodi su 5 sono bloccati da dipendenze dati non disponibili (volume\n  profile, CME futures, trendline manuali);\n- solo MM52 e' meccanicamente specificabile con OHLCV daily;\n- MM52 point estimate 0.8824 > strict null 0.8182, ma P=0.6364 non raggiunge\n  la soglia;\n- denominatore 17 < 20, non pronto per promozione;\n- il boundary no-signal e' conservato.\n\nNon verificato:\n\n- Kraken o altri provider opzionali;\n- MM52 su timeframe superiori (1W, 1M) o inferiori;\n- altre varianti MA (EMA, WMA) o altre lunghezze;\n- Volume Profile, POC, Naked POC, LVN, CME gap, trendline retest, Kumo;\n- robustezza fuori dal regime di mercato corrente;\n- efficacia operativa o direzione BTC.\n\n## Seed update ammissibile\n\nDue aggiornamenti:\n\n### 1. Nuovo vincolo: `BITCOIN_REGIME_LAB_MM52_SPECIFIED_WATCH_DENOMINATOR_LOW`\n\nNel ciclo 20260521_0217, il metodo MM52 SMA(52) retest e' stato meccanicamente\nspecificato (5/5 required_definitions riempiti con dati disponibili) e testato\ncontro shifted-MA(+5) e random-level(+/-2%) nulls. Risultato: 17 eventi, 15\nsuccessi (0.8824), strict null 0.8182 (shifted-MA a 11 eventi, random-level a\n8 eventi). Il point estimate supera lo strict null, ma P(proxy > strict) =\n0.6364 in bootstrap (10k campioni) non raggiunge la soglia 0.80, e il\ndenominatore (17 < 20) non e' pronto. Lo stato e' `watch` con retest\nautomatico pianificabile quando il campo dati accumula >= 20 eventi. Nessun\ntarget, segnale, supporto/resistenza, entrata/uscita, decision-support o\nadvice.\n\n### 2. Aggiornamento `direzione`:\n\nSostituire con: \"MM52 SMA(52) e' il primo metodo alternativo specificato e in\nwatch. Il prossimo ciclo deve o (a) ritestare MM52 quando il denominatore\nraggiunge >= 20 eventi con P(proxy > strict) >= 0.80, oppure (b) specificare\nun altro metodo se nuovi dati (volume profile, CME futures) diventano\ndisponibili. Non ritestare FVG/inefficiency a tre candele senza observable\nnuovo.\"\n\n## Decisione\n\n`WATCH_MM52_DENOMINATOR_LOW_STATISTICAL_EVIDENCE_INSUFFICIENT`.\n\nIl ciclo non autorizza claim pubblico, decision-support, target, entrate,\nuscite o segnali. La prossima mossa utile e' attendere che il campo dati\naccumuli altri ~10-15 giorni di dati daily per portare il denominatore MM52\nsopra 20 eventi, quindi ritestare con lo stesso protocollo bootstrap.","title":"Bitcoin Regime Lab Cycle 20260521_0217","verdict":"","bicono":null,"size":13264,"mtime":"2026-05-21T02:21:51.079981+00:00"}