467c8952e3
Il commento dichiarava cron settimanale (55 13 * * MON) ma lo scheduler reale (orchestrator._CRON_OPTION_CHAIN_SNAPSHOT) è */15 24/7, allineato a market_snapshot. Aggiornato per evitare confusione nei lettori futuri. Anche fixato l'header file (0004 → 0005). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
1.5 KiB
SQL
43 lines
1.5 KiB
SQL
-- 0005_option_chain_snapshots.sql — catena opzioni storica
|
|
--
|
|
-- Snapshot della option chain Deribit prelevata ogni 15 minuti (stesso
|
|
-- scheduler di market_snapshots, cron */15) per ogni strike entro ±30%
|
|
-- dallo spot e per ogni scadenza nella finestra 14-28 DTE. Dato di
|
|
-- base per il backtest non-stilizzato e per calibrare empiricamente
|
|
-- lo skew premium del modello BS.
|
|
--
|
|
-- Granularità: una riga per (snapshot_ts, instrument). Lo
|
|
-- snapshot_ts è il timestamp del cron tick — TUTTI i quote raccolti
|
|
-- in quello stesso tick condividono il timestamp, così filtrare per
|
|
-- "lo snapshot del 2026-05-04 alle 13:55" è una semplice
|
|
-- WHERE timestamp = X.
|
|
|
|
CREATE TABLE option_chain_snapshots (
|
|
timestamp TEXT NOT NULL,
|
|
asset TEXT NOT NULL,
|
|
instrument_name TEXT NOT NULL,
|
|
strike TEXT NOT NULL,
|
|
expiry TEXT NOT NULL,
|
|
option_type TEXT NOT NULL CHECK (option_type IN ('C','P')),
|
|
bid TEXT,
|
|
ask TEXT,
|
|
mid TEXT,
|
|
iv TEXT,
|
|
delta TEXT,
|
|
gamma TEXT,
|
|
theta TEXT,
|
|
vega TEXT,
|
|
open_interest INTEGER,
|
|
volume_24h INTEGER,
|
|
book_depth_top3 INTEGER,
|
|
PRIMARY KEY (timestamp, instrument_name)
|
|
) WITHOUT ROWID;
|
|
|
|
CREATE INDEX idx_option_chain_asset_ts
|
|
ON option_chain_snapshots(asset, timestamp DESC);
|
|
|
|
CREATE INDEX idx_option_chain_expiry
|
|
ON option_chain_snapshots(asset, expiry);
|
|
|
|
PRAGMA user_version = 5;
|