Strasmore Research
Formazione Matt ConnorDi Matt Connor

Prezzi degli event contract come probabilità

Un event contract paga 1 dollaro o zero: il prezzo indica una probabilità. Scopri perché Yes più No costa oltre 1 dollaro e come eliminare lo spread.

Il prezzo di un event contract esprime una probabilità, a cui si aggiunge uno spread. Il contratto paga 1,00 $ se si verifica l’esito indicato e 0,00 $ in caso contrario. È questo pagamento fisso a rendere possibile il calcolo: 30 centesimi su un contratto che paga un dollaro indicano che il mercato sta quotando una probabilità di circa il 30%. Per interpretare correttamente il dato occorre applicare una rettifica per lo spread e una per i meccanismi alla base del regolamento.

Cosa indica il prezzo di un event contract sulla probabilità

Tutto dipende dal payout. Acquista un contratto Yes al prezzo p e incassi $1.00 se l’esito si risolve in Yes, e nulla se si risolve in No. Su molte ripetizioni, il payout medio corrisponde alla probabilità effettiva di Yes. Se paghi esattamente quella probabilità, vai in pareggio. Il prezzo pagato è la probabilità di break-even. Per questo un unico numero svolge entrambe le funzioni.

Quattro termini, definiti una volta per tutte:

  • Contratto Yes: paga $1.00 se l’evento si verifica e $0.00 altrimenti.
  • Contratto No: paga $1.00 se l’evento non si verifica. Yes e No sono due facce della stessa medaglia.
  • Settlement: il momento in cui il contratto si risolve e una delle due parti incassa il dollaro.
  • Fonte di risoluzione: il report o feed indicato rispetto al quale il contratto viene regolato. Il pagamento dipende da ciò che dichiara quella fonte, non da ciò che è accaduto.

Le quotazioni degli event contract non fanno parte del set di dati alla base di questa pagina. Ogni pannello qui sotto misura la stessa identica aritmetica laddove può essere misurata direttamente, cioè nelle listed US equity options. Il delta di una call option va da 0 a 1 e approssima la probabilità di mercato che il contratto scada in the money: la stessa domanda binaria posta da un event contract, ossia se alla data di settlement il valore sarà sopra la soglia oppure no. Il delta è un’approssimazione di quella probabilità, ed è una probabilità risk-neutral, non una previsione. Entrambi i limiti emergono nei pannelli. La guida al delta delle opzioni illustra la misura in sé.

Perché Yes e No insieme superano 1 dollaro?

Un Yes e il No corrispondente coprono l’intero spazio degli esiti e paga esattamente uno dei due. In una catena di opzioni, la stessa coppia corrisponde a una call e a una put con lo stesso strike e la stessa scadenza: la call termina in the money sopra lo strike, mentre la put termina in the money sotto. Le rispettive probabilità devono quindi totalizzare il 100%. Ecco la stessa coppia lungo una catena su SPY osservata in una sola giornata, raggruppata in fasce del 2% intorno al prezzo spot.

QueryProbabilità Sì e No su una singola chain SPY: lato call, lato put e totale della coppia
L'esatto SQL dietro ogni numero
WITH chain AS (
    SELECT strike_price,
           toFloat64(any(underlying_close)) AS spot,
           avgIf(delta, delta > 0) AS call_delta,
           avgIf(-delta, delta < 0) AS put_delta_abs,
           countIf(delta > 0) AS calls,
           countIf(delta < 0) AS puts
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date = toDate('2026-06-30')
      AND expiration_date = toDate('2026-07-31')
      AND iv_converged = 1
      AND volume > 0
    GROUP BY strike_price
    HAVING calls > 0 AND puts > 0
),
banded AS (
    SELECT toInt32(round(100 * (toFloat64(strike_price) / spot - 1) / 2) * 2) AS band,
           call_delta,
           put_delta_abs
    FROM chain
)
SELECT concat(if(band > 0, '+', ''), toString(band), '% vs spot') AS strike_vs_spot,
       round(100 * avg(call_delta), 1) AS yes_prob_pct,
       round(100 * avg(put_delta_abs), 1) AS no_prob_pct,
       round(100 * avg(call_delta + put_delta_abs), 1) AS pair_total_pct,
       count() AS strikes
FROM banded
WHERE abs(band) <= 8
GROUP BY band
ORDER BY band
Run this yourself

A -8% vs spot il lato call indica 91.6% e il lato put 7.8%, per un totale della coppia pari a 99.5%. All’estremità opposta della scala, +6% vs spot, i due valori sono 3.6% e 82.5%, per un totale di 86.2%. Tutte le 8 fasce rientrano, per arrotondamento, nel 100%. La linea piatta del grafico rappresenta il vincolo a cui è soggetto ogni mercato binario. Il posizionamento aggregato sui due lati è ciò che misura il put call ratio.

I valori teorici sono coerenti. Le quotazioni no. Supponiamo che un contratto sia quotato 62 denaro e 66 lettera, mentre il suo lato No presenti 36 denaro e 40 lettera. Acquistando Yes a 66 e No a 40, si pagano 1,06 dollari per una posizione che garantisce un rimborso di 1,00 dollaro. Vendendo entrambi ai rispettivi bid, si incassano 98 centesimi a fronte di una passività di 1,00 dollaro. La differenza di 6 centesimi tra le due ask è l’overround, l’importo che uno scommettitore sportivo chiama vig; è il compenso per la venue e per il market maker che forniscono liquidità. La pagina sul bid ask spread spiega perché questa differenza esista.

L’aritmetica del de-vig, passo dopo passo

Entrano due prezzi quotati. Escono due probabilità fair la cui somma è pari a uno.

  1. Prendi il mid di ciascun lato. Il mid del Sì è 64 centesimi, quello del No è 38 centesimi.
  2. Sommali. Il book ammonta a 102 centesimi.
  3. Dividi ciascun mid per quel totale. 64 / 102 è il 62,7%. 38 / 102 è il 37,3%.
  4. Controlla la somma. Ora la coppia totalizza il 100%.

Questo è tutto ciò che significa fare de-vigging, ed è la stessa normalizzazione che un bettor applica alle quote decimali.

Applichiamo ora il calcolo a un mercato più liquido. Lo stesso contratto quota 63 bid e 64 ask, mentre il No quota 36 bid e 37 ask. I mid sono 63,5 e 36,5, il book ammonta esattamente a 100 centesimi e la probabilità de-vig è 63,5%. Le due risposte, 62,7% sul mercato con spread ampio e 63,5% su quello più liquido, sono distanti meno di un punto. La fascia di valori effettivamente compatibile con queste quotazioni, però, è più ampia. Qualsiasi probabilità compresa tra la bid a 62 centesimi e l’ask a 66 centesimi è coerente con la quotazione ampia. Un mercato con uno spread di 4 centesimi fissa quindi le probabilità entro circa 4 punti, e non oltre. Scrivere «62,7%» sulla base di un mercato con uno spread di 4 centesimi significa attribuire tre cifre decimali di precisione a un mercato che non le contiene. L’ampiezza dello spread determina la precisione.

Un prezzo pari al 30% significa che l’evento si verifica il 30% delle volte?

La calibrazione è il test: si raccolgono tutti i casi a cui il mercato ha assegnato un prezzo vicino al 30%, poi si misura con quale frequenza l’evento si è verificato. Sono inclusi tutti i contratti call su SPY presenti negli archivi da gennaio 2022, fotografati circa 30 giorni prima della scadenza, suddivisi in fasce di probabilità implicita e confrontati con la chiusura di SPY sopra quello strike alla data di scadenza.

QueryProbabilità implicita vs risultato effettivo: call SPY a 30 giorni dalla scadenza, dal 2022 a giugno 2026
L'esatto SQL dietro ogni numero
WITH px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2022-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
),
snap AS (
    SELECT ticker AS contract,
           argMin(delta, abs(days_to_expiry - 30)) AS implied_prob,
           toFloat64(any(strike_price)) AS strike,
           any(expiration_date) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date >= toDate('2022-01-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 25 AND 35
      AND iv_converged = 1
      AND volume > 0
      AND delta > 0.02
      AND delta < 0.98
    GROUP BY contract
)
SELECT multiIf(implied_prob < 0.10, '2-10%',
               implied_prob < 0.20, '10-20%',
               implied_prob < 0.30, '20-30%',
               implied_prob < 0.40, '30-40%',
               implied_prob < 0.50, '40-50%',
               implied_prob < 0.60, '50-60%',
               implied_prob < 0.70, '60-70%',
               implied_prob < 0.80, '70-80%',
               implied_prob < 0.90, '80-90%',
                                    '90-98%') AS implied_bucket,
       count() AS contracts,
       round(100 * avg(implied_prob), 1) AS implied_prob_pct,
       round(100 * avg(close_px > strike), 1) AS finished_above_pct
FROM snap
INNER JOIN px ON px.session = snap.expiry
GROUP BY implied_bucket
ORDER BY implied_prob_pct
Run this yourself

La colonna della probabilità implicita cresce lungo la scala per costruzione. La colonna dei risultati realizzati è invece la parte che nessuno conosceva in anticipo. In fondo alla scala, la fascia 2-10% ha registrato una probabilità implicita media pari a 4.7% su 4276 contratti e SPY ha chiuso sopra lo strike nel 4.9% dei casi. In cima, 90-98% ha registrato una media pari a 94.3% e il titolo ha chiuso sopra lo strike nel 97.8% dei casi. La quota realizzata in fondo alla scala è molto inferiore a quella in cima. È questo l’aspetto della calibrazione quando la relazione tiene, almeno in modo approssimativo.

Ogni tabella di questo tipo presenta due avvertenze. Conta il periodo osservato: un campione composto soprattutto da prezzi in rialzo aumenta la colonna dei risultati realizzati in tutte le fasce di call, mentre un periodo diverso modifica la stessa misurazione. Inoltre, il delta indica quale probabilità rende coerente il pricing, non ciò che ritiene un previsore. La stessa chain esprime un’intera distribuzione, non una sola soglia (il movimento atteso).

Se ci si restringe ai contratti che il mercato ha valutato come un lancio di moneta, con un prezzo vicino a 50 centesimi per dollaro, si ottiene il seguente confronto su sei nomi molto conosciuti:

QueryContratti prezzati vicino al 50-50: risultato implicito vs realizzato per nome, dal 2023 a giugno 2026
L'esatto SQL dietro ogni numero
WITH px AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2023-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
snap AS (
    SELECT underlying_symbol AS symbol,
           ticker AS contract,
           argMin(delta, abs(days_to_expiry - 30)) AS implied_prob,
           toFloat64(any(strike_price)) AS strike,
           any(expiration_date) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')
      AND date >= toDate('2023-01-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 25 AND 35
      AND iv_converged = 1
      AND volume > 0
      AND delta BETWEEN 0.40 AND 0.60
    GROUP BY symbol, contract
)
SELECT snap.symbol AS symbol,
       count() AS contracts,
       round(100 * avg(implied_prob), 1) AS implied_prob_pct,
       round(100 * avg(close_px > strike), 1) AS finished_above_pct
FROM snap
INNER JOIN px ON px.ticker = snap.symbol AND px.session = snap.expiry
GROUP BY symbol
ORDER BY finished_above_pct DESC
Run this yourself

La probabilità implicita è vicina al 50% in ogni riga per costruzione. La colonna dei risultati realizzati è invece molto più dispersa: SPY ha chiuso sopra lo strike nel 68.4% dei casi su 4785 contratti, contro il 49.9% di XOM. 6 nomi, un’unica probabilità implicita e un’ampia variabilità nei risultati effettivi. Un prezzo vicino a 50 centesimi descrive le probabilità assegnate dal mercato. Ogni singolo contratto, però, si regola comunque a $1,00 o a $0,00.

Qual è il break-even su un contratto da $0,70?

Un contratto acquistato a 70 centesimi paga $1,00 su Yes e nulla su No. Il profitto è di 30 centesimi, la perdita di 70 centesimi e la probabilità di break-even coincide esattamente con il prezzo. Con una probabilità reale del 70%, la posizione equivale a un testa o croce con passaggi aggiuntivi. Sopra il 70% l’aritmetica favorisce il compratore; sotto questa soglia lo penalizza, prima ancora dei costi.

I costi spostano questa soglia in modo asimmetrico. Aggiungere un centesimo di costo complessivo a un contratto da 70 centesimi sposta il break-even dal 70% a circa il 71%, con un impatto minimo sulla posizione. Aggiungere lo stesso centesimo a un contratto da 5 centesimi sposta il break-even dal 5% al 6% e assorbe un quinto dell’edge teorico. Le commissioni fisse danneggiano soprattutto le scommesse a lunga probabilità più economiche, perché rappresentano la quota maggiore del prezzo pagato. Il tipo di ordine funziona allo stesso modo: attraversare lo spread significa pagare l’intero ask, mentre un ordine limit resting resta al prezzo indicato e potrebbe non essere mai eseguito (ordine market vs ordine limit).

Perché un esito quasi certo viene scambiato a 0,97 dollari?

Un esito su cui nessuno discute raramente viene comunque scambiato a 1,00 dollari. In quegli ultimi 3 centesimi confluiscono quattro elementi:

  • Valore temporale del denaro. Il dollaro arriva al settlement. Pagare oggi 97 centesimi per ricevere 1,00 dollari tra tre mesi genera un rendimento sul capitale, e quella liquidità può essere impiegata diversamente (parcheggiare la liquidità inattiva).
  • Rischio legato alla fonte di risoluzione. Il contratto si regola sulla base di ciò che comunica la fonte indicata, secondo il calendario che la fonte stessa adotta. Revisioni, ritardi e formulazioni ambigue restano possibili anche quando l’esito è condiviso.
  • Lo spread. Un mercato quotato con bid a 96 e ask a 98 ha un mid a 97 centesimi, ma nessuno scambio viene eseguito a 97. In percentuale, il book è spesso più ampio proprio agli estremi.
  • La coda di rischio. «Certo» è una parola usata con troppa disinvoltura. I contratti si regolano secondo la definizione prevista dal regolamento.

La convergenza è misurabile. Prendiamo le call su SPY prezzate vicino al cinquanta per cento un mese prima della scadenza, dividiamole in base all’esito finale e osserviamo la probabilità implicita media in sei momenti di verifica.

QueryCome si risolve un quasi 50-50: probabilità implicita media per checkpoint, suddivisa per esito
L'esatto SQL dietro ogni numero
WITH px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-06-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
),
coin_flips AS (
    SELECT ticker AS contract
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date >= toDate('2025-06-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 28 AND 32
      AND iv_converged = 1
      AND volume > 0
      AND delta > 0
    GROUP BY contract
    HAVING avg(delta) BETWEEN 0.35 AND 0.65
),
obs AS (
    SELECT g.days_to_expiry AS dte,
           g.delta AS implied_prob,
           if(px.close_px > toFloat64(g.strike_price), 1, 0) AS finished_above
    FROM global_markets.options_greeks AS g
    INNER JOIN coin_flips AS c ON g.ticker = c.contract
    INNER JOIN px ON px.session = g.expiration_date
    WHERE g.underlying_symbol = 'SPY'
      AND g.date >= toDate('2025-06-01')
      AND g.expiration_date <= toDate('2026-06-30')
      AND g.iv_converged = 1
      AND g.volume > 0
      AND g.delta > 0
      AND (g.days_to_expiry BETWEEN 28 AND 32
        OR g.days_to_expiry BETWEEN 19 AND 23
        OR g.days_to_expiry BETWEEN 12 AND 16
        OR g.days_to_expiry BETWEEN 6 AND 8
        OR g.days_to_expiry BETWEEN 3 AND 4
        OR g.days_to_expiry <= 1)
)
SELECT multiIf(dte >= 28, '30 days out',
               dte >= 19, '21 days out',
               dte >= 12, '14 days out',
               dte >= 6, '7 days out',
               dte >= 3, '3 days out',
                         '1 day out') AS checkpoint,
       round(100 * avgIf(implied_prob, finished_above = 1), 1) AS eventual_yes_pct,
       round(100 * avgIf(implied_prob, finished_above = 0), 1) AS eventual_no_pct,
       count() AS contract_days
FROM obs
GROUP BY checkpoint
HAVING countIf(finished_above = 1) > 0 AND countIf(finished_above = 0) > 0
ORDER BY avg(dte) DESC
Run this yourself

A 30 days out, i contratti che alla fine hanno chiuso sopra lo strike presentavano una probabilità implicita media pari a 52.6%, contro 47.8% per quelli che non lo hanno superato. A 1 day out, gli stessi due gruppi mostravano rispettivamente 79.8% e 14.4%. La distinzione è tracciata a posteriori. Al primo momento di verifica nessuno, osservando la catena delle opzioni, avrebbe potuto distinguere i due gruppi: è la condizione in cui si trova sempre un contratto su un evento ancora aperto. La certezza arriva alla data di settlement e il prezzo vi converge gradualmente. Le regole di settlement fissano il momento esatto: opzioni regolate AM o PM mostra quanto possa contare questo dettaglio temporale, mentre volatilità implicita fornisce la risposta della stessa catena alla domanda sulla dimensione, non sulla direzione.

Note e limiti dei dati

Il delta è un indicatore sostitutivo del prezzo Yes, non lo stesso oggetto. Approssima la probabilità risk-neutral di scadere in the money e differisce leggermente dalla probabilità del modello relativa allo stesso evento. In questo caso, gli esiti confrontano il prezzo di chiusura della sessione regolare alla data di scadenza con lo strike: un’approssimazione del settlement, non la riproduzione del valore ufficiale di settlement. Ogni pannello sulle opzioni filtra la volatilità implicita convergente e il volume diverso da zero per quel contratto in quella data; i contratti poco scambiati vengono quindi esclusi dal campione. Ogni contratto entra nei pannelli di calibrazione una sola volta, nello snapshot più vicino ai 30 giorni dalla scadenza.

FAQ sulla determinazione del prezzo degli event contract

Il prezzo di un event contract corrisponde a una probabilità?

È una probabilità a cui si applicano due rettifiche. La quotazione include lo spread applicato dalla venue e dai market maker e valorizza un dollaro ricevuto al settlement anziché oggi. Eliminando entrambi gli effetti, ciò che resta è la stima di mercato delle probabilità di clearing.

Cosa comporta rimuovere il vig da un mercato a due esiti?

Riscala i due prezzi mid affinché la loro somma sia pari al 100%. Si sommano il mid del Yes e il mid del No, poi si divide ciascun valore per il totale. Un Yes a 64 centesimi e un No a 38 centesimi totalizzano 102 centesimi; dopo la rimozione del vig, la coppia indica il 62,7% e il 37,3%.

Perché i prezzi del Yes e del No sommano più di un dollaro?

Uno dei due pagherà certamente $1.00, quindi una coppia senza frizioni costerebbe esattamente $1.00 nel complesso. I centesimi aggiuntivi sul lato ask costituiscono l’overround, cioè il ricavo da spread incorporato in un mercato a due esiti. Vendendo entrambi i lati si incassa invece meno di un dollaro: è il riflesso speculare dello stesso scarto.

Un contract quotato 90 centesimi fallisce una volta su dieci?

Approssimativamente sì, se il mercato è ben calibrato su molti contract simili. Nel pannello SPY qui sopra, il bucket 90-98% presentava una probabilità implicita media pari a 94.3% e ha chiuso sopra il proprio strike 97.8% delle volte. Un singolo contract si risolve comunque a un dollaro oppure a zero.

Quanto incide uno spread ampio sulla probabilità implicita?

Circa quanto l’ampiezza dello spread. Un mercato con uno spread di 1 centesimo circoscrive le probabilità entro un punto percentuale. Un mercato con uno spread di 4 centesimi lascia una fascia di 4 punti, e ogni probabilità all’interno di quella fascia è compatibile con la quotazione.


Tutti i numeri riportati sopra provengono da una stored query sui dati dei contract quotati; il SQL alla base di ciascun pannello è disponibile con un solo clic. Eseguite lo stesso calcolo di rimozione del vig su una chain live dal terminale Strasmore.

#prediction markets#event contracts#probability#market mechanics#options