docs: aggiornamento Phase 5 — IV-RV gate, F+D+A, backtest, option chain
- 01-strategy-rules.md:
* §2.8 (filtri quant: dealer gamma + liquidation risk)
* §2.9 (IV richness gate, opt-in, default disabled)
* §3.2 — variante delta_by_dvol step-function
* §7-bis.1 (vol-collapse harvest D)
* §7-bis.2 (graduated profit-take C — scaffolding)
* §7-bis.3 (auto-pause su drawdown F)
- 05-data-model.md:
* `system_state.auto_pause_until / _reason` (migration 0004)
* Nuova tabella `option_chain_snapshots` (migration 0005)
* Tabella migrations completa (1→5)
- 13-strategia-spiegata.md:
* §4-quinquies — catena opzioni storica (Phase 5):
cosa raccoglie, cosa sblocca, CLI `option-chain
trigger|analyze`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,34 @@ sono vere:
|
||||
patrimonio totale (correlazione direzionale già alta).
|
||||
8. **Liquidità degli strike candidati** entro le soglie del §3.
|
||||
|
||||
### 2.8 Filtri quant (introdotti in Phase 4)
|
||||
|
||||
Due gate aggiuntivi che leggono i campi del `market_snapshot`:
|
||||
|
||||
- **Dealer net gamma > 0** (default: `dealer_gamma_min: 0`). Long-gamma
|
||||
regime = dealer hedge che sopprime la vol → ideale per vendere
|
||||
credit spread. Short-gamma = vol-amplifying flow, statisticamente
|
||||
perdente. Disattivabile via `dealer_gamma_filter_enabled: false`.
|
||||
- **Liquidation risk ≠ high** (default: `liquidation_filter_enabled:
|
||||
true`). Salta entry quando il modulo sentiment flagga uno squeeze
|
||||
imminente su long o short side.
|
||||
|
||||
### 2.9 IV richness gate (introdotto in Phase 5, opt-in)
|
||||
|
||||
Filtro a maggior impatto sul win-rate. **Disabilitato** di default
|
||||
nella golden config — abilitato esplicitamente nel profilo
|
||||
`strategy.aggressiva.yaml`:
|
||||
|
||||
- `iv_minus_rv_filter_enabled: true|false` — master switch.
|
||||
- `iv_minus_rv_min: <pt vol>` — soglia: l'entry passa solo se la
|
||||
IV implicita 30g supera la realized vol 30g di almeno tot punti.
|
||||
Default 0; valori sensati 3-5 dopo calibrazione sui dati raccolti.
|
||||
|
||||
Razionale: il selling vol nudo è strutturalmente neutro a win-rate
|
||||
70-72%. L'edge della strategia esiste solo quando il premio è
|
||||
"ricco" — IV30 > RV30 + N. Vedere `13-strategia-spiegata.md §4-quater`
|
||||
per il razionale completo.
|
||||
|
||||
Se anche **una sola** condizione fallisce → **no entry**, log con motivo,
|
||||
ritento la settimana successiva.
|
||||
|
||||
@@ -77,6 +105,20 @@ assoluto.
|
||||
| Distanza minima OTM | 15% (anche se delta è dentro tolleranza) |
|
||||
| Distanza massima OTM | 25% |
|
||||
|
||||
**Variante dinamica per regime DVOL (Phase 5, opt-in).** Il campo
|
||||
`short_strike.delta_by_dvol` (lista step-function) sostituisce il
|
||||
delta target singolo con bande ordinate per `dvol_under`: a DVOL
|
||||
bassa il bot prende delta più alto (più premio), a DVOL alta sceglie
|
||||
delta più basso (più safety distance). Lista vuota = comportamento
|
||||
classico col delta target sopra. Esempio bande nel profilo
|
||||
`strategy.aggressiva.yaml`:
|
||||
|
||||
| dvol_under | delta_target | delta_min | delta_max |
|
||||
|---|---|---|---|
|
||||
| 50 | 0.15 | 0.13 | 0.17 |
|
||||
| 70 | 0.12 | 0.10 | 0.15 |
|
||||
| 90 | 0.10 | 0.08 | 0.12 |
|
||||
|
||||
Se nessuno strike disponibile rientra in entrambe le tolleranze → no entry.
|
||||
|
||||
### 3.3 Strike long (protezione)
|
||||
@@ -179,6 +221,49 @@ Per ogni posizione aperta, il rule engine valuta in ordine:
|
||||
|
||||
L'ordine è importante: il primo trigger soddisfatto vince.
|
||||
|
||||
## 7-bis. Estensioni opzionali (Phase 5)
|
||||
|
||||
Tre miglioramenti opt-in al decision loop. Tutti **disabled** di
|
||||
default nella golden config; il profilo `strategy.aggressiva.yaml`
|
||||
li abilita.
|
||||
|
||||
### 7-bis.1 Vol-collapse harvest (D)
|
||||
|
||||
Inserito tra il profit-take §7.1 e lo stop-loss §7.2:
|
||||
|
||||
> Se `vol_harvest_dvol_decrease > 0`, siamo in profit
|
||||
> (`debit < credit`) E `DVOL_now ≤ DVOL_entry − vol_harvest_dvol_decrease`,
|
||||
> `decision = CLOSE_VOL_HARVEST`.
|
||||
|
||||
Razionale: edge IV-RV già catturato, vol attesa rientrata, non c'è
|
||||
motivo di tenere fino al profit-take. Default disabilitato (`0`);
|
||||
profilo aggressivo: `15` punti vol.
|
||||
|
||||
### 7-bis.2 Profit-take graduale (C — scaffolding)
|
||||
|
||||
Schema in place per chiusure parziali; pipeline runtime di
|
||||
chiusura partial-close NON ancora wirata. Default vuoto. Quando
|
||||
popolato, ogni livello `{mark_at_pct_credit, close_pct_of_initial_contracts}`
|
||||
emette un'azione `CLOSE_PROFIT_PARTIAL` advisory che il runtime
|
||||
attualmente ignora. Il completamento richiede refactor del position
|
||||
model (contracts_open vs contracts_initial) — PR dedicato.
|
||||
|
||||
### 7-bis.3 Auto-pause su drawdown (F)
|
||||
|
||||
Circuit breaker sopra il kill-switch tecnico. Valutato all'inizio di
|
||||
ogni entry-cycle:
|
||||
|
||||
> Se `auto_pause.enabled` e P/L cumulato delle ultime
|
||||
> `lookback_trades` posizioni chiuse < `−max_drawdown_pct ×
|
||||
> capitale_corrente`, l'engine si auto-mette in pausa per
|
||||
> `pause_weeks` settimane (skip-week mode).
|
||||
|
||||
Difende dai regime change non rilevati dai filtri quant. La pausa
|
||||
si annulla automaticamente alla scadenza, oppure manualmente con
|
||||
`UPDATE system_state SET auto_pause_until = NULL`. Default
|
||||
disabilitato; profilo aggressivo: lookback 5 trade, soglia 15%, 2
|
||||
settimane di pausa.
|
||||
|
||||
## 8. Esecuzione di apertura
|
||||
|
||||
1. Engine costruisce **combo order Deribit** (un solo ordine atomico
|
||||
|
||||
Reference in New Issue
Block a user