6ff021fbf4
Crypto opera 24/7: la cadenza settimanale lunedì-only era un retaggio TradFi senza giustificazione. La nuova cadenza è giornaliera (cron 0 14 * * *), con i gate quantitativi a decidere se entrare o saltare. Cambiamenti principali: * runtime/orchestrator.py — _CRON_ENTRY 0 14 * * * (era MON) * runtime/auto_pause.py — pause_until(days=) (era weeks=); minimo clamp 1 giorno (era 1 settimana) * core/backtest.py — MondayPick→DailyPick, monday_picks→daily_picks (1 pick per calendar-day all'ora target); Sharpe annualization su ~120 trade/anno (era 52) * config/schema.py — default cron daily; max_concurrent_positions 1→5; AutoPauseConfig.pause_weeks→pause_days, default 14 * runtime/option_chain_snapshot_cycle.py + orchestrator — cron */15 per accumulo continuo dataset di backtest empirico Strategy yamls (config_version 1.3.0 → 1.4.0, hash rigenerati): * strategy.yaml — max_concurrent 1→5, cap_aggregate coerente * strategy.aggressiva.yaml — max_concurrent 2→8, cap_aggregate 3200→6400, max_contracts_per_trade invariato a 16 * strategy.conservativa.yaml — max_concurrent 1→3 * tutti — pause_weeks→pause_days: 14 GUI (pages/7_📚_Strategia.py): * slider Trade/anno: range 20-200 (era 8-30), default 110, help riallineato sulla math 365 candidature × pass-rate 30-40% * card profili: versione letta dinamicamente da config_version invece che hard-coded "v1.2.0" * warning "entrambi perdono soldi" ora valuta i P/L effettivi (cons['annual_pl'], aggr['annual_pl']) invece del win_rate grezzo; aggiunto stato intermedio quando solo conservativo è in perdita Tests (450/450 passati): * test_auto_pause: pause_days, clamp ≥1 giorno * test_backtest: rinomina + ridisegno daily picks (assert su calendar-day dedupe e hour filter) * test_sizing_engine: other_open_positions=5 per cap default * test_config_loader: version 1.4.0 Docs (README + 9 file in docs/) — tutti i riferimenti weekly/lunedì allineati a daily/24-7, volume option_chain ricalcolato per cron */15 (~1.1 MB/giorno, ~400 MB/anno). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
109 lines
4.7 KiB
Markdown
109 lines
4.7 KiB
Markdown
# 00 — Overview
|
|
|
|
## Obiettivo
|
|
|
|
Eseguire in modo sistematico, deterministico e disciplinato la strategia
|
|
**Cerberus Bite** — credit spread su opzioni Ethereum su Deribit con
|
|
gestione attiva — minimizzando l'errore umano e rispettando i cap di
|
|
rischio definiti.
|
|
|
|
## Perché senza LLM
|
|
|
|
La strategia è **completamente codificabile in regole**. Non c'è alcuna
|
|
componente di interpretazione semantica del mercato che richieda un
|
|
modello linguistico. Tutte le decisioni del decision loop sono
|
|
matematiche o booleane:
|
|
|
|
- "il mark price dello spread è ≤ 50% del credito iniziale?" — confronto numerico
|
|
- "DVOL corrente è ≥ DVOL all'apertura + 10?" — confronto numerico
|
|
- "delta della short put ha superato 0.30 in valore assoluto?" — confronto numerico
|
|
- "sono trascorse 11 giorni da apertura?" — confronto numerico
|
|
|
|
L'introduzione di un LLM in questo loop introdurrebbe:
|
|
|
|
- non determinismo (stesso input → output diversi)
|
|
- latenza non controllata
|
|
- costi ricorrenti senza valore aggiunto
|
|
- difficoltà di test e di audit
|
|
- rischio di hallucination su dati di mercato
|
|
|
|
Il LLM (Milito) resta nel ruolo di **consulente offline**: aggiorna le
|
|
regole quando l'evidenza statistica lo richiede, riceve dati post-trade
|
|
per imparare, ma **non sta nel loop di esecuzione**.
|
|
|
|
## Confine del sistema
|
|
|
|
### Cosa fa Cerbero Bite
|
|
|
|
1. Legge dati di mercato dagli MCP (Deribit, Hyperliquid, sentiment, macro).
|
|
2. Valuta condizioni di entrata su finestra temporale fissa (giornaliera, 14:00 UTC; crypto è 24/7).
|
|
3. Calcola la struttura ottimale dello spread secondo le regole.
|
|
4. Verifica liquidità, cap di rischio, calendar macro.
|
|
5. Calcola sizing in contratti.
|
|
6. Costruisce la proposta di trade e la inoltra ad Adriano (Telegram).
|
|
7. Su conferma di Adriano, invia istruzione a Cerbero core.
|
|
8. Persiste lo stato della posizione (entry DVOL, credit, strikes, ecc.).
|
|
9. Monitora ogni 12 ore le posizioni aperte e applica le regole di uscita.
|
|
10. Su trigger di uscita, propone la chiusura ad Adriano e poi a Cerbero core.
|
|
11. Logga ogni evento per audit e per il successivo aggiornamento Kelly.
|
|
|
|
### Cosa NON fa
|
|
|
|
- Non esegue ordini direttamente sul broker.
|
|
- Non aggiorna autonomamente le proprie regole o i parametri.
|
|
- Non interpreta news o sentiment in modo qualitativo.
|
|
- Non sceglie un sottostante diverso da ETH (per ora).
|
|
- Non applica strategie di rolling (regola hard della strategia).
|
|
- Non considera setup intraday o eventi a frequenza inferiore alle 12 ore.
|
|
|
|
## Stakeholder
|
|
|
|
| Attore | Ruolo |
|
|
|---|---|
|
|
| Adriano | Owner del capitale, decisore finale, riceve report |
|
|
| Cerbero Bite | Rule engine deterministico (questo progetto) |
|
|
| Cerbero core | Motore di esecuzione ordini sul broker |
|
|
| Milito | Consulente offline (LLM), aggiorna regole su evidenza |
|
|
| Cerbero_Brain | Wiki tecnica condivisa con Milito (ricerca lezioni) |
|
|
|
|
## Vincoli ereditati
|
|
|
|
- **Cap Cerbero v4** (vedi `Cerbero_Office/CLAUDE.md`):
|
|
- Max 200 EUR per singolo trade
|
|
- Max 1.000 EUR di impegno totale aperto
|
|
- Max 4 posizioni concorrenti
|
|
- Max 6 trade per giorno
|
|
- Stop trading se perdita giornaliera > 3% equity
|
|
- No vendita vega 24h prima di FOMC, CPI, NFP
|
|
|
|
- **Hard Prohibitions** (non aggirabili nemmeno con override Adriano):
|
|
- Mai opzioni nude
|
|
- Mai leva > 3x sui perp (irrilevante per Bite, ma resta valido)
|
|
- Mai short premium senza SL on-exchange dove tecnicamente possibile
|
|
|
|
## Metriche di successo a 12 mesi
|
|
|
|
Soglie minime sotto le quali il sistema va riesaminato:
|
|
|
|
| Metrica | Target | Soglia di allarme |
|
|
|---|---|---|
|
|
| Win rate | ≥ 75% | < 65% |
|
|
| CAGR (capitale operativo) | ≥ 30% | < 10% |
|
|
| Drawdown massimo | ≤ 25% | > 35% |
|
|
| Sharpe ratio (annualizzato) | ≥ 0.8 | < 0.4 |
|
|
| Numero di violazioni di regole | 0 | ≥ 1 (incident review) |
|
|
| Errori di stato (posizioni desincronizzate) | 0 | ≥ 1 (kill switch + fix) |
|
|
|
|
I risultati sono confrontati a fine anno con la simulazione Monte Carlo
|
|
del documento `Cerbero_Office/NewStrategy/analisi_dai_storici/
|
|
analisi-montecarlo-kelly.md`.
|
|
|
|
## Glossario rapido
|
|
|
|
- **DVOL**: indice di volatilità implicita ETH calcolato da Deribit, analogo al VIX per S&P 500.
|
|
- **Bull Put Spread**: vendita di una put OTM e acquisto di una put più OTM come protezione, su stesso sottostante e stessa scadenza. Incassi credito netto.
|
|
- **DTE**: Days To Expiration, giorni alla scadenza dell'opzione.
|
|
- **Quarter Kelly**: 25% della frazione di Kelly piena, sizing professionale standard. In questa strategia coincide con il 13% del capitale corrente.
|
|
- **Vol stop**: regola di uscita che chiude la posizione se la volatilità implicita esplode oltre una soglia rispetto all'entry.
|
|
- **Combo order**: ordine atomico su Deribit che apre/chiude entrambe le gambe dello spread simultaneamente, eliminando il leg risk.
|