Pulangan Harga vs Jumlah: Jurang Sebenar
Indeks utama S&P 500 tidak memasukkan dividen. Lihat jurang kompaun selepas dua puluh tahun dan fahami bila setiap ukuran digunakan untuk menilai pulangan sebenar.
Pulangan harga berbanding pulangan jumlah ialah perbezaan antara perkara yang ditunjukkan oleh carta pasaran dengan jumlah yang sebenarnya diperoleh oleh seseorang yang memegang kedudukan yang sama. Pulangan harga hanya mengira perubahan harga. Pulangan jumlah memasukkan semula semua dividen, yang dilabur semula pada harga saham pada hari ex-dividend. Ini membolehkan setiap pembayaran berkembang secara kompaun bersama-sama saham yang menjana dividen tersebut.
Paras utama S&P 500 yang dipetik dalam berita ialah indeks harga. Versi pulangan jumlahnya memegang syarikat yang sama dan melabur semula dividen. Dalam tempoh setahun, kedua-duanya kelihatan hampir sama. Dalam tempoh dua puluh tahun, kedua-duanya menunjukkan hasil yang sangat berbeza. Jurang antara kedua-duanya juga lebih besar daripada yang dicadangkan oleh hasil tahunan.
Apakah perbezaan antara pulangan harga dan jumlah pulangan?
Pulangan harga ialah harga akhir dibahagikan dengan harga permulaan, kemudian ditolak satu. Setiap paras indeks yang disebut di televisyen dan setiap carta harga yang pernah anda lihat menunjukkan angka ini.
Jumlah pulangan menggunakan pengiraan yang sama, tetapi setiap dividen tunai digunakan untuk membeli lebih banyak saham pada harga pada tarikh ex-dividend. Jadual prestasi dana dan indeks penanda aras yang menjadi ukuran prestasi dana menggunakan kaedah ini.
Contoh hipotetikal menjadikan mekanismenya lebih jelas. Anda membeli saham pada harga $100 yang membayar $2 setahun, kemudian menjualnya setahun kemudian pada harga $105. Pulangan harga ialah 5%. Jumlah pulangan kira-kira 7%. Tahun pertama itu tidak luar biasa. Pengkompaunanlah yang menjadikan perbezaan ini penting: $2 yang dilaburkan semula membeli sebahagian kecil daripada saham tambahan, bahagian itu menerima dividennya sendiri pada tahun berikutnya, dan kedua-dua siri pulangan tersebut berbeza pada kadar yang semakin meningkat.
Satu penjelasan sebelum data dibentangkan. Total return swap ialah kontrak derivatif yang membolehkan satu pihak memindahkan keseluruhan manfaat ekonomi sesuatu aset kepada pihak lain sebagai pertukaran bagi kadar pembiayaan. Istilah ini hanya berkongsi nama dengan konvensyen indeks yang diterangkan di bawah. Selebihnya halaman ini membincangkan indeks dan dana.
Seberapa besar jurang pada S&P 500?
$10,000 dilaburkan dalam penjejak S&P 500 terbesar pada akhir 2005 dan dipegang sehingga 31 Julai 2026. Baris pertama membelanjakan setiap dividen pada hari dividen itu diterima. Baris kedua melabur semula setiap dividen pada harga penutupan hari berkenaan.
SQL tepat di sebalik setiap nombor
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-12-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
base AS (
SELECT argMax(close, d) AS start_px
FROM daily
WHERE d <= toDate('2005-12-31')
),
year_end AS (
SELECT toYear(d) AS year,
argMax(close, d) AS close,
max(d) AS last_day
FROM daily
WHERE d >= toDate('2006-01-01')
GROUP BY year
),
reinvest AS (
SELECT dv.ex_dividend_date AS d,
log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
AND dv.ex_dividend_date >= toDate('2006-01-01')
AND dv.ex_dividend_date <= toDate('2026-07-31')
)
SELECT ye.year AS year,
round(10000 * ye.close / any(b.start_px)) AS price_only_usd,
round(10000 * ye.close / any(b.start_px) * exp(sum(ri.log_growth))) AS reinvested_usd,
round(100 * (1 - exp(-sum(ri.log_growth))), 1) AS dividend_share_pct
FROM year_end AS ye, reinvest AS ri, base AS b
WHERE ri.d <= ye.last_day
GROUP BY ye.year, ye.close
ORDER BY yearBaris yang hanya mengambil kira harga berakhir pada $59956. Baris yang melabur semula dividen berakhir pada $85775. Dividen menyumbang 30.1% daripada baki akhir tersebut, dan tiada bahagiannya dipaparkan pada carta harga.
Bahagian kiri carta menunjukkan perkara yang sering mengelirukan pelabur. Pada akhir 2007, kedua-dua baris masing-masing berada pada $11755 dan $11971, dengan dividen bernilai 1.8% daripada baki. Jurang kecil pada tahun pertama mudah dianggap sebagai perbezaan pembundaran. Dua puluh tahun perbezaan pembundaran yang sama, setiap satunya dikompaun berdasarkan perbezaan sebelumnya, menghasilkan spread di bahagian kanan.
Adakah jurang terus melebar dari semasa ke semasa?
Dana yang sama, tarikh akhir yang sama, lima tarikh mula yang berbeza.
SQL tepat di sebalik setiap nombor
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-07-31')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
spans AS (
SELECT y AS years,
concat(toString(y), '-year') AS horizon,
subtractYears(toDate('2026-07-31'), y) AS start_date
FROM (SELECT arrayJoin([1, 3, 5, 10, 20]) AS y)
),
divs AS (
SELECT dv.ex_dividend_date AS d,
log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
AND dv.ex_dividend_date <= toDate('2026-07-31')
),
endpoints AS (
SELECT s.horizon AS horizon,
s.years AS years,
argMin(dl.close, dl.d) AS start_px,
argMax(dl.close, dl.d) AS end_px
FROM spans AS s, daily AS dl
WHERE dl.d >= s.start_date
GROUP BY s.horizon, s.years
),
reinvest AS (
SELECT s.years AS years,
exp(sum(dvs.log_growth)) AS factor
FROM spans AS s, divs AS dvs
WHERE dvs.d > s.start_date
GROUP BY s.years
)
SELECT e.horizon AS horizon,
round(100 * (e.end_px / e.start_px - 1), 1) AS price_return_pct,
round(100 * (e.end_px / e.start_px * r.factor - 1), 1) AS total_return_pct,
round(100 * (e.end_px / e.start_px) * (r.factor - 1), 1) AS dividend_points_pct
FROM endpoints AS e
INNER JOIN reinvest AS r ON e.years = r.years
ORDER BY e.yearsSepanjang tempoh 1-year, pulangan harga ialah 18.2% berbanding pulangan keseluruhan sebanyak 19.5%, iaitu perbezaan 1.3 mata peratusan. Tempoh 10-year membezakan 244.3% daripada 304.5%, dengan jurang sebanyak 60.2 mata. Sepanjang tempoh 20-year, kedua-dua bacaan itu ialah 485% dan 736.9%, iaitu perbezaan 251.9 mata peratusan.
Lengkung itu tidak meningkat dalam garis lurus. Ia meningkat seperti baki akaun, kerana setiap dividen yang dilabur semula menambah modal asas yang menjadi asas penggandaan dividen seterusnya.
Mengapa dividen setahun kelihatan remeh
Berikut ialah setiap tahun kalendar dalam tempoh yang sama, dipecahkan kepada perubahan harga dan sumbangan dividen.
SQL tepat di sebalik setiap nombor
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
yearly AS (
SELECT toYear(d) AS year,
argMin(close, d) AS first_px,
argMax(close, d) AS last_px
FROM daily
GROUP BY year
),
divs AS (
SELECT toYear(dv.ex_dividend_date) AS year,
exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
GROUP BY year
)
SELECT y.year AS year,
round(100 * (y.last_px / y.first_px - 1), 1) AS price_return_pct,
round(100 * (y.last_px / y.first_px) * (d.factor - 1), 2) AS dividend_points_pct
FROM yearly AS y
INNER JOIN divs AS d ON y.year = d.year
ORDER BY yearBaca kedua-dua siri itu bersama-sama. Garis harga ialah siri yang lebih ketara kerana turun naiknya besar dalam kedua-dua arah. Garis dividen pula lebih sederhana: 1.9 mata pada 2007, 0.58 mata dalam tahun separa hingga Julai 2026, dan tidak pernah menjadi tajuk utama dalam tempoh antara kedua-duanya. Tiada satu baris pun dalam panel itu yang akan mengubah pandangan sesiapa terhadap apa-apa perkara. Apabila dikumpulkan dan dikompaun merentasi 20 baris, angka kecil yang sama itu membentuk keseluruhan jarak antara kedua-dua garis dalam carta pertama. Pelaburan semula dividen juga bermaksud pembelian automatik pada apa-apa harga yang berkuat kuasa pada hari tersebut, hampir sama seperti purata kos dolar. Atas sebab yang sama, hasil dividen S&P 500 kelihatan sederhana, tetapi kesannya jauh lebih besar dalam tempoh panjang berbanding yang dicadangkan oleh saiznya.
Saham manakah yang menunjukkan jurang paling besar?
Jurang itu menjejaki hasil: syarikat yang memulangkan lebih banyak nilai bagi setiap dolar harga memberikan pemegang saham lebih banyak untuk dilaburkan semula. Tujuh nama yang lazim digunakan bagi tempoh sepuluh tahun hingga 31 Julai 2026, dengan pulangan tahunan supaya tempoh perbandingan adalah setara.
SQL tepat di sebalik setiap nombor
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-08-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
px AS (
SELECT ticker,
argMin(close, d) AS start_px,
argMax(close, d) AS end_px
FROM daily
GROUP BY ticker
),
divs AS (
SELECT dv.ticker AS ticker,
exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.ticker = dv.ticker AND dl.d = dv.ex_dividend_date
WHERE dv.ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
AND dv.cash_amount > 0
AND dv.ex_dividend_date >= toDate('2016-08-01')
AND dv.ex_dividend_date <= toDate('2026-07-31')
GROUP BY dv.ticker
)
SELECT px.ticker AS ticker,
round(100 * (pow(px.end_px / px.start_px, 0.1) - 1), 2) AS price_cagr_pct,
round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1) - 1), 2) AS total_cagr_pct,
round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1)
- pow(px.end_px / px.start_px, 0.1)), 2) AS dividend_points_pct
FROM px
INNER JOIN divs ON px.ticker = divs.ticker
ORDER BY dividend_points_pct DESCVZ mencatat jurang tahunan paling besar dalam kalangan 7, iaitu 5.46 mata peratusan setahun: -1.51% secara tahunan berdasarkan harga sahaja, berbanding 3.96% dengan dividen dilaburkan semula. MSFT berada di hujung paling kecil, pada 1.53 mata. Dua perkara penting perlu diberi perhatian ketika membandingkan carta. Carta harga lebih banyak mengecilkan prestasi pembayar dividen tinggi berbanding pembayar dividen rendah. Mana-mana saringan yang menyusun nama berdasarkan prestasi harga juga secara tidak langsung menurunkan kedudukan pembayar dividen. Hasil dividen di sebalik setiap nama inilah yang menentukan saiz jurangnya.
Setiap versi digunakan di mana
- Penanda aras dan helaian fakta dana memetik jumlah pulangan. "Total Return Index", akhiran "TR" atau nota "net dividends reinvested" dalam cetakan halus semuanya bermaksud dividen diambil kira.
- Media kewangan dan skrin sebut harga menggunakan pulangan harga. "The S&P 500 closed up 0.4%" ialah pergerakan harga.
- Tab prestasi broker biasanya menggunakan jumlah pulangan untuk akaun kerana wang tunai itu benar-benar diterima dalam akaun tersebut. Lajur keuntungan bagi satu posisi sering menunjukkan perubahan harga berbanding cost basis, yang bukan angka yang sama.
- Ujian semula dan penulisan strategi menggunakan versi yang dibekalkan oleh suapan data penulis. Inilah punca banyak rekod prestasi yang meningkat secara senyap.
Percanggahan yang penting ialah apabila jumlah pulangan dana dibandingkan dengan indeks harga. Dana menerima kredit bagi dividennya sendiri, manakala penanda aras tidak menerima apa-apa daripada dividennya sendiri. Ini memberikan dana kelebihan awal yang bersamaan dengan keseluruhan aliran dividen indeks. Dalam tempoh 20-year di atas, kesilapan pemarkahan itu bernilai 251.9 mata peratusan, dan tiada satu pun daripadanya datang daripada pengurus. Perbandingan yang setara ialah jumlah pulangan berbanding jumlah pulangan. Cara pulangan bulanan diukur menunjukkan pengiraan yang sama pada peringkat bulanan, manakala terlepas hari terbaik menunjukkan perkara yang berlaku pada garis harga apabila beberapa sesi dikeluarkan daripadanya.
Cara angka ini dibina
- Harga ialah harga penutup sesi biasa harian. Dividen ialah agihan tunai yang difailkan, dan setiap satu dilaburkan semula pada harga penutup pada tarikh ex-dividend. Ini ialah konvensyen standard untuk membina siri jumlah pulangan.
- Tempoh tersebut bermula dari Disember 2005 hingga 31 Julai 2026. Tempoh ini meliputi sejarah harga intrahari yang menjadi asas kepada panel ini. Tempoh yang lebih panjang akan meluaskan jurang itu lagi.
- Dana yang menjejaki indeks digunakan sebagai pengganti indeks itu sendiri. Oleh itu, yuran dan cash drag termasuk dalam angka ini. Pulangan harga tahun kalendar diukur dari penutupan pertama tahun tersebut hingga penutupan terakhir. Kaedah ini tidak mengambil kira pergerakan pada sesi pertama.
Soalan lazim tentang pulangan harga berbanding pulangan keseluruhan
Adakah S&P 500 indeks harga atau indeks pulangan keseluruhan?
Angka utama itu ialah indeks harga. Ia menjejaki nilai pasaran komponen indeks dan tidak mengambil kira dividen. Versi pulangan keseluruhan bagi indeks yang sama turut tersedia dan melabur semula dividen tersebut. Penanda aras dana lazimnya menggunakan versi pulangan keseluruhan, manakala liputan berita lazimnya memetik versi harga.
Sejauh manakah dividen menambah pulangan S&P 500?
Bagi tempoh 10-year yang berakhir pada 31 Julai 2026, penjejak yang digunakan di sini mencatat pulangan 244.3% berdasarkan harga, berbanding 304.5% apabila dividen dilabur semula. Dalam satu tahun kalendar, sumbangannya jauh lebih kecil, iaitu sekitar 1.9 mata dalam 2007.
Adakah akaun broker saya menunjukkan pulangan harga atau pulangan keseluruhan?
Dividen tunai dikreditkan ke dalam akaun, jadi baki akaun itu sendiri sudah merangkuminya. Ruangan keuntungan bagi sesuatu pegangan sering membandingkan harga semasa dengan cost basis anda sahaja, iaitu pulangan harga. Kedua-duanya berbeza tepat sebanyak dividen yang diterima, melainkan pelan pelaburan semula digunakan untuk membeli lebih banyak saham sepanjang tempoh tersebut.
Adakah total return swap sama dengan pulangan keseluruhan?
Tidak. Total return swap ialah kontrak derivatif bilateral yang menukar keseluruhan manfaat ekonomi sesuatu aset dengan kadar pembiayaan. Pulangan keseluruhan dalam konteks indeks ialah kaedah piawai untuk mengukur prestasi. Persamaan istilah itu merujuk kepada idea asas yang sama, iaitu harga ditambah pendapatan, tetapi kedua-duanya tidak berkaitan sebagai instrumen.
Mengapakah prestasi dana kelihatan lebih baik apabila dibandingkan dengan indeks harga?
Angka yang diterbitkan oleh dana merangkumi dividennya, manakala indeks harga tidak merangkumi dividen indeks itu sendiri. Perbandingan tersebut memberikan dana kelebihan awal bersamaan saiz aliran dividen penanda aras, iaitu 251.9 mata peratusan sepanjang tempoh 20-year di atas.
Setiap angka di sini ialah hasil pertanyaan tersimpan dan berversi yang menggunakan harga penutupan harian serta rekod dividen yang difailkan. Buka mana-mana panel untuk membaca SQL, atau jalankan perbandingan harga berbanding pulangan keseluruhan yang sama bagi ticker yang anda ikuti di terminal Strasmore.