Strasmore Research
Formazione Matt ConnorDi Matt Connor · Aggiornato 2026-08-08

Come si misura il rendimento mensile di un’azione

Il rendimento mensile cambia in base ai prezzi scelti, ai dividendi inclusi e alla rettifica per gli split. Confronto tra convenzioni su dati reali.

Chiedete quanto ha fatto un titolo a giugno e otterrete numeri diversi da fonti diverse, tutti corretti. Il rendimento mensile di un’azione dipende da scelte che la maggior parte delle persone non vede mai: quali due prezzi segnano i confini del mese, se i dividendi vengono inclusi e se la serie dei prezzi è stata rettificata per gli split. Questa pagina applica le diverse convenzioni ai dati reali di mercato, mettendole a confronto, così le differenze smettono di essere misteriose.

Da chiusura a chiusura: la convenzione standard

È la convenzione utilizzata dai provider di indici, dalle schede informative dei fondi e dalla maggior parte delle pagine di quotazione: il rendimento mensile va dal prezzo di chiusura dell’ultima seduta regolare del mese precedente al prezzo di chiusura dell’ultima seduta del mese corrente. La chiusura di maggio è il punto di partenza per giugno. Il calcolo è semplice: prezzo finale meno prezzo iniziale, diviso per il prezzo iniziale. Un esempio: un’azione che chiude maggio a 50,00 dollari e giugno a 53,50 dollari ha registrato un rendimento pari a (53,50 − 50,00) ÷ 50,00 = 0,07, ovvero il 7% nel mese. Ogni convenzione di questa pagina inserisce dati diversi nella stessa formula. Ecco il calcolo sui dati effettivi di giugno 2026, insieme alla principale alternativa:

QueryGiugno 2026 misurato in due modi: da chiusura a chiusura vs da apertura a chiusura, NVDA e SPY
tickerchiusura finale di maggioprima apertura di giugnochiusura finale di giugnovariazione percentuale tra chiusurevariazione percentuale apertura-chiusurapunti di gap della convenzione
NVDA211.15215.73199.76-5.39-7.42.01
SPY756.4755.36746.32-1.33-1.20.14
L'esatto SQL dietro ogni numero
SELECT ticker,
       round(argMaxIf(cl, day, day <= '2026-05-31'), 2) AS may_final_close,
       round(argMinIf(op, day, day >= '2026-06-01'), 2) AS june_first_open,
       round(argMaxIf(cl, day, day <= '2026-06-30'), 2) AS june_final_close,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
             / argMaxIf(cl, day, day <= '2026-05-31'), 2) AS close_to_close_pct,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
             / argMinIf(op, day, day >= '2026-06-01'), 2) AS open_to_close_pct,
       round(abs(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
                 / argMinIf(op, day, day >= '2026-06-01')
             - 100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
                 / argMaxIf(cl, day, day <= '2026-05-31')), 2) AS convention_gap_points
FROM (
    SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
)
GROUP BY ticker
ORDER BY ticker
Provalo tu stesso

Il rendimento di NVDA a giugno è stato pari a -5.39% da chiusura a chiusura, ma a -7.4% se misurato dall’apertura della prima seduta regolare di giugno alla chiusura dell’ultima seduta. Stesso titolo, stesso mese, 2.01 punti percentuali di differenza tra i due risultati corretti. L’intera differenza dipende da un intervallo tra una chiusura overnight e il successivo weekend: NVDA ha chiuso maggio a 211.15 dollari e ha aperto giugno a 215.73 dollari. Nel calcolo da apertura a chiusura, questo rialzo rientra nel rendimento di giugno; nel calcolo da chiusura a chiusura, appartiene al passaggio tra i due mesi. SPY mostra la stessa dinamica, in forma più contenuta: -1.33% da chiusura a chiusura contro -1.2% da apertura a chiusura.

Nessuno dei due risultati è errato. Il rendimento da chiusura a chiusura risponde alla domanda: «Quale risultato ha ottenuto chi ha mantenuto la posizione attraverso il passaggio tra i mesi?». Il rendimento da apertura a chiusura risponde invece a: «Quale risultato ha prodotto l’attività di trading del mese per chi ha acquistato all’apertura di giugno?». I due valori differiscono quando il mercato registra un gap durante il passaggio tra i mesi, e i gap overnight sono frequenti, non eccezionali.

Dividendi: price return contro total return

La seconda scelta riguarda il trattamento della liquidità distribuita da un’azione durante il mese. Il price return la ignora; il total return la reintegra. Nella maggior parte dei singoli mesi la differenza è contenuta: un titolo che distribuisce dividendi trimestrali paga all’incirca un quarto del proprio rendimento da dividendo ogni trimestre. Su più anni, però, l’effetto composto può trasformare questa differenza in un divario molto ampio. Giugno 2026, inoltre, è stato un mese di distribuzione per SPY:

QuerySPY giugno 2026: rendimento del prezzo vs rendimento totale (incluso il dividendo ex-dividend di giugno)
chiusura finale di maggiochiusura finale di giugnodividendo per azione di giugnorendimento del prezzo (%)contributo dei dividendi (%)rendimento totale (%)
756.4746.321.9035-1.330.25-1.08
L'esatto SQL dietro ogni numero
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2026-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS jun_close
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
    )
    WHERE ticker = 'SPY'
),
dv AS (
    SELECT sum(cash_amount) AS div_per_share
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2026-06-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(may_close, 2) AS may_final_close,
       round(jun_close, 2) AS june_final_close,
       round(div_per_share, 4) AS june_dividend_per_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS price_return_pct,
       round(100 * div_per_share / may_close, 2) AS dividend_contribution_pct,
       round(100 * ((jun_close + div_per_share) - may_close) / may_close, 2) AS total_return_pct
FROM px CROSS JOIN dv
Provalo tu stesso

Il price return di SPY a giugno è stato pari a -1.33%. Aggiungendo la distribuzione di $1.9035 per azione andata ex-dividend durante il mese, il total return sale a -1.08%. La liquidità ha contribuito per 0.25%. Le famiglie di indici pubblicano entrambe le versioni. L’“S&P 500” citato più spesso è generalmente l’indice price return. Le pagine dei fondi devono mostrare il total return, mentre gli screener combinano liberamente le due metriche. Quando due fonti differiscono di alcuni decimi sul rendimento mensile di un titolo che paga dividendi, il dividendo è il primo elemento da verificare. La data ex-dividend determina a quale mese attribuire il pagamento.

Su un singolo mese di giugno si tratta di decimi di punto percentuale. È l’orizzonte temporale a separare le due convenzioni. Ecco lo stesso calcolo esteso su cinque anni:

QuerySPY su cinque anni, da giugno 2021 a giugno 2026: rendimento del prezzo vs rendimento con dividendi
chiusura di giugno 2021chiusura di giugno 2026dividendi pagati per azionepagamenti dei dividendirendimento del prezzo a cinque anni (%)rendimento a cinque anni con dividendi (%)punti aggiunti dai dividendi
428.07746.3234.072074.3582.37.96
L'esatto SQL dietro ogni numero
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= '2021-06-28 04:00:00' AND window_start < '2021-07-01 08:00:00')
        OR (window_start >= '2026-06-26 04:00:00' AND window_start < '2026-07-01 08:00:00'))
    GROUP BY day
),
px AS (
    SELECT argMaxIf(cl, day, day <= '2021-06-30') AS start_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS end_close
    FROM daily
),
dv AS (
    SELECT round(sum(cash_amount), 2) AS divs_per_share,
           count() AS payments
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2021-07-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(start_close, 2) AS june_2021_close,
       round(end_close, 2) AS june_2026_close,
       divs_per_share AS dividends_paid_per_share,
       payments AS dividend_payments,
       round(100 * (end_close - start_close) / start_close, 2) AS five_year_price_return_pct,
       round(100 * ((end_close + divs_per_share) - start_close) / start_close, 2) AS five_year_return_with_divs_pct,
       round(100 * divs_per_share / start_close, 2) AS dividend_points_added
FROM px CROSS JOIN dv
Provalo tu stesso

Dal prezzo di chiusura di giugno 2021, pari a $428.07, a quello di giugno 2026, pari a $746.32, il price return quinquennale di SPY misura 74.35%. Nello stesso periodo il fondo ha pagato 20 distribuzioni, per un totale di $34.07 per azione. Includendo questa liquidità, il dato sale a 82.3%, con una differenza di 7.96 punti prima ancora di reinvestire un singolo dividendo. Un indice total return effettivo reinveste ogni pagamento alla relativa data ex-dividend. Le azioni acquistate con il reinvestimento ampliano ulteriormente il divario. Per un titolo maturo che distribuisce dividendi, “ampi margini” non è una figura retorica. È il risultato normale di anni di pagamenti trimestrali in contanti.

Chiusura adjusted vs. chiusura raw: il problema degli split

La maggior parte degli strumenti grafici, Yahoo Finance, Google Finance e delle app dei broker riportano una adjusted close: una serie storica dei prezzi in cui i print passati sono stati ridotti in proporzione agli split (e, su alcune piattaforme, corretti anche per i dividendi), così che la linea resti confrontabile nel tempo. Il nostro warehouse conserva il tape esattamente come è stato registrato. In un mese ordinario, i due dati coincidono. In un mese che include uno stock split, invece, possono raccontare storie completamente diverse. È il caso dello split 10-for-1 di NVDA, eseguito il 10 giugno 2024:

QueryNVDA giugno 2024: calcolo grezzo da chiusura a chiusura vs rendimento rettificato per lo split
chiusura finale di maggio non rettificatachiusura finale di giugno non rettificataazioni dopo lo split per ogni vecchia azionevariazione grezza del prezzo (%)chiusura di maggio rettificata per lo splitrendimento rettificato (%)
1097.46123.4110-88.75109.7512.45
L'esatto SQL dietro ogni numero
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2024-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2024-06-30') AS jun_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMaxIf(toFloat64(close), window_start,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= '2024-05-29 04:00:00'
          AND window_start < '2024-07-01 08:00:00'
        GROUP BY day
    )
),
sp AS (
    SELECT split_to / split_from AS ratio
    FROM global_markets.stocks_splits
    WHERE ticker = 'NVDA'
      AND execution_date >= '2024-06-01'
      AND execution_date <= '2024-06-30'
)
SELECT round(may_close, 2) AS may_final_close_raw,
       round(jun_close, 2) AS june_final_close_raw,
       toInt32(ratio) AS shares_after_split_per_old_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS raw_price_change_pct,
       round(may_close / ratio, 2) AS may_close_split_adjusted,
       round(100 * (jun_close - may_close / ratio) / (may_close / ratio), 2) AS adjusted_return_pct
FROM px CROSS JOIN sp
Provalo tu stesso

Letta sui dati raw, NVDA sarebbe “scesa” da $1097.46 a $123.41 nel giugno di quell’anno, con un crollo del -88.75%. Non è successo nulla del genere: alla data di esecuzione, ogni vecchia azione è diventata 10 nuove azioni e il prezzo si è diviso nella stessa proporzione, lasciando invariato il valore in dollari per ciascun titolare. Dividendo la chiusura di maggio per lo stesso rapporto, si ottiene $109.75 su base adjusted per lo split; il giugno 2024 risulta quindi 12.45%, cioè un mese positivo. Qualsiasi fonte che utilizzi dati adjusted riporta un valore vicino al secondo dato; un calcolo ingenuo sui print raw restituisce invece il primo. La adjusted close è il motivo più comune per cui due fonti divergono nettamente su un rendimento mensile storico. Quando una variazione appare impossibilmente ampia in una delle due direzioni, controllate prima di tutto il calendario degli split.

Quale “chiusura” si intende?

Un’altra distinzione riguarda le convenzioni relative al prezzo di chiusura. Il valore riportato in ogni fact sheet è il prezzo ufficiale dell’asta di chiusura, cioè l’unico prezzo stabilito dalla asta di chiusura alle 16:00 ET. Le contrattazioni però proseguono after-hours e l’ultimo print della sessione estesa può discostarsi dalla chiusura ufficiale:

QuerySPY il 30 giugno 2026: chiusura ufficiale vs ultimo prezzo in extended-hours
chiusura della sessione regolareultima quotazione della sessione estesavariazione fuori orario (%)
746.32746.3-0.003
L'esatto SQL dietro ogni numero
SELECT round(argMaxIf(toFloat64(close), window_start, rth), 2) AS regular_session_close,
       round(argMax(toFloat64(close), window_start), 2) AS last_extended_print,
       round(100 * (argMax(toFloat64(close), window_start) - argMaxIf(toFloat64(close), window_start, rth))
             / argMaxIf(toFloat64(close), window_start, rth), 3) AS after_hours_drift_pct
FROM (
    SELECT window_start, close,
           toTimeZone(window_start, 'America/New_York') >= toDateTime('2026-06-30 09:30:00', 'America/New_York')
           AND toTimeZone(window_start, 'America/New_York') < toDateTime('2026-06-30 16:00:00', 'America/New_York') AS rth
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2026-06-30 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
)
Provalo tu stesso

Il 30 giugno i due valori differivano di -0.003%, uno scarto contenuto quella sera. In occasione della pubblicazione dei risultati di una singola società, però, la sessione estesa può registrare movimenti nell’ordine di punti percentuali, che il rendimento mensile ufficiale attribuirà al mese successivo. La contrattazione after-hours e premarket analizza in dettaglio questo confine. Un caso particolare correlato si verifica quando la fine del mese cade in una seduta con orario ridotto per festività: la sessione ordinaria termina alle 13:00 ET e la chiusura ufficiale viene determinata da un’asta di chiusura anticipata. Il calendario delle festività di mercato ne riporta le date.

Capitalizzazione su dodici mesi

Il rendimento annuale non è la somma dei dodici rendimenti mensili, ma il loro prodotto. La formula per concatenarli è questa: trasformare ogni mese in un fattore di crescita (1 + rendimento), moltiplicare tra loro i dodici fattori e sottrarre 1. Un mese al −5% seguito da un mese al +5% dà una somma pari a zero, ma una capitalizzazione pari a 0,95 × 1,05 − 1 = −0,25%. Questo è l’andamento mensile effettivo di SPY nei dodici mesi terminati a giugno 2026:

QueryRendimenti mensili di SPY da chiusura a chiusura: dodici mesi terminati a giugno 2026, semplice e log
mesechiusura finale mensilerendimento semplice (%)rendimento logaritmico (%)
2025-07631.972.282.25
2025-08645.042.072.05
2025-09666.113.273.21
2025-10681.992.382.36
2025-11683.390.210.21
2025-12681.84-0.23-0.23
2026-01691.851.471.46
2026-02686.23-0.81-0.82
2026-03650.24-5.25-5.39
2026-04718.4310.499.97
2026-05756.45.295.15
2026-06746.32-1.33-1.34
L'esatto SQL dietro ogni numero
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           formatDateTime(month_start, '%Y-%m') AS month,
           round(month_close, 2) AS month_final_close,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
)
SELECT month,
       month_final_close,
       round(r, 2) AS simple_return_pct,
       round(100 * log(1 + r / 100), 2) AS log_return_pct
FROM rets
WHERE isFinite(r)
ORDER BY month_start
Provalo tu stesso

Dodici mesi calcolati da chiusura a chiusura, da 2.28% a 2025-07 fino a -1.33% e 2026-06; l’ultima riga mostra lo stesso dato di giugno 2026 per SPY misurato dal primo pannello. Collega correttamente i dodici mesi e confronta il risultato con la scorciatoia che consiste nel sommare semplicemente le percentuali:

QuerySomma vs capitalizzazione: dodici rendimenti mensili di SPY collegati in tre modi
mesi concatenatisomma dei rendimenti semplici (%)rendimento composto geometrico (%)rendimento diretto su dodici mesi (%)punti di differenza della capitalizzazionesomma dei rendimenti logaritmici mensili (%)rendimento logaritmico su dodici mesi (%)
1219.8320.7920.790.9618.8918.89
L'esatto SQL dietro ogni numero
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
),
ends AS (
    SELECT argMin(month_close, month_start) AS base_close,
           argMax(month_close, month_start) AS final_close
    FROM monthly
)
SELECT count() AS months_linked,
       round(sum(r), 2) AS simple_sum_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1), 2) AS geometric_compound_pct,
       round(100 * (any(final_close) / any(base_close) - 1), 2) AS direct_twelve_month_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1) - sum(r), 2) AS compounding_gap_points,
       round(sum(100 * log(1 + r / 100)), 2) AS sum_of_monthly_log_returns_pct,
       round(100 * log(any(final_close) / any(base_close)), 2) AS twelve_month_log_return_pct
FROM rets CROSS JOIN ends
WHERE isFinite(r)
Provalo tu stesso

La somma dei dodici mesi è 19.83%, ma la capitalizzazione produce 20.79%. Il calcolo diretto, dalla chiusura di giugno 2025 alla chiusura di giugno 2026, dà 20.79%, in linea con il dato capitalizzato e non con la somma. In questo caso la differenza è di 0.96 punti, in un anno relativamente tranquillo; aumenta con la volatilità e con l’orizzonte temporale. Sommare le percentuali mensili è un’abitudine comune nei fogli di calcolo, ma è sostanzialmente errato.

Le ultime due colonne mostrano la convenzione concepita per essere sommata: il rendimento logaritmico, cioè il logaritmo naturale del fattore di crescita, ln(1 + rendimento). I rendimenti logaritmici mensili si sommano a 18.89%, identico al rendimento logaritmico su dodici mesi pari a 18.89%. È esattamente per questo che analisti e modelli di rischio li utilizzano. Nei mesi con variazioni ridotte le due convenzioni differiscono appena (2025-11: 0.21% semplice, 0.21% logaritmico); maggiore è la variazione mensile, più ampia è la differenza (2026-04: 10.49% semplice, 9.97% logaritmico). Le schede informative dei fondi riportano rendimenti semplici; i rendimenti logaritmici sono usati nella ricerca e nei calcoli della volatilità.

La checklist per riconciliare due fonti

Quando due dati di rendimento mensile non coincidono, nella quasi totalità dei casi differiscono per una delle quattro impostazioni seguenti:

  1. Estremi temporali: da chiusura a chiusura, il criterio standard, oppure da apertura a chiusura, limitandosi alla contrattazione del mese. I risultati differiscono ogni volta che si verifica un gap al confine tra i periodi.
  2. Dividendi: price return oppure total return. I risultati differiscono in qualsiasi mese che includa una ex-dividend date.
  3. Rettifica: prints non rettificati oppure serie dei prezzi di chiusura rettificati. La differenza può essere molto ampia in qualsiasi mese che includa uno split.
  4. La chiusura considerata: il print ufficiale dell’asta, il criterio standard, oppure l’ultima operazione, che può includere gli extended hours.

Applicando le stesse impostazioni a entrambe le fonti, la discrepanza scompare. Anche il confronto tra un fondo e un indice è valido solo quando entrambi i dati utilizzano le stesse quattro impostazioni. Se una impostazione non coincide, il confronto misura implicitamente la differenza di criterio invece della performance. Il nostro riepilogo di giugno 2026 indica la convenzione adottata fin dall’inizio proprio per questo motivo: ogni dato mensile è calcolato da chiusura a chiusura, sui prints ufficiali e in termini di price return.

FAQ sui rendimenti mensili

Che cos’è un rendimento close-to-close?

È la variazione percentuale tra il prezzo di chiusura della seduta regolare precedente e il prezzo di chiusura finale del periodo corrente. È la convenzione standard per i rendimenti azionari giornalieri, mensili e annuali nelle schede informative e nei report sugli indici.

Perché due siti mostrano rendimenti diversi per lo stesso titolo e lo stesso mese?

Quasi sempre la differenza dipende da una delle quattro convenzioni seguenti: endpoint diversi, come close-to-close rispetto a open-to-close; dividendi inclusi o esclusi; prezzi raw rispetto a prezzi rettificati per gli split; oppure una fonte diversa per il prezzo di chiusura. Nel caso di NVDA, le misure di giugno 2026 sono -5.39% o -7.4% considerando soltanto il primo criterio.

Uno stock split modifica il calcolo del rendimento mensile?

No. Uno split modifica contemporaneamente il numero di azioni e il prezzo, lasciando invariato il valore della posizione. Tuttavia, può compromettere qualsiasi calcolo basato sui prezzi raw. Per NVDA, giugno 2024 appare pari a -88.75% usando i prezzi di chiusura raw e a 12.45% dopo l’aggiustamento per lo split 10-for-1.

I rendimenti azionari mensili includono i dividendi?

Solo i total return li includono. I price return, compreso il livello headline dell’indice S&P 500, li escludono. A giugno 2026, il dividendo ha aggiunto 0.25% al rendimento mensile di SPY: questa è la differenza tra il suo price return e il suo total return.

Il rendimento mensile del mio portafoglio personale viene calcolato allo stesso modo?

Non quando entrano o escono disponibilità liquide. I rendimenti di un singolo titolo, come quelli riportati in questa pagina, sono time-weighted. Un conto con versamenti e prelievi richiede invece un calcolo money-weighted, basato sull’internal rate of return. In caso contrario, i flussi di cassa possono sembrare performance. La maggior parte dei broker comunica precisamente un rendimento time-weighted per escludere dal dato i versamenti effettuati.


Ogni dato riportato sopra proviene da una stored query versionata sui dati reali di mercato. È possibile espandere l’SQL di qualsiasi pannello oppure misurare il rendimento mensile di qualunque ticker con qualsiasi convenzione sul terminale Strasmore.

#returns#conventions#dividends#splits#education