Perangkap Hasil Dividen: Cara Mengesannya
Perangkap hasil dividen berlaku apabila harga saham jatuh lalu menghasilkan kadar tinggi. Ketahui prestasi desil hasil teratas dan empat semakan untuk mengesannya lebih awal.
Perangkap hasil dividen ialah hasil dividen yang tinggi akibat kejatuhan harga saham, bukannya pembayaran dividen yang besar. Hasil ialah dividen tahunan sesaham dibahagikan dengan harga. Oleh itu, saham yang kehilangan separuh nilainya akan menggandakan hasil yang dipaparkan tanpa syarikat menambah sesen pun kepada cek yang dibayarnya. Senarai teratas dalam mana-mana penapis hasil biasanya dipenuhi saham yang telah diturunkan nilainya oleh pasaran. Sebahagian daripadanya akan mengurangkan atau menghentikan dividen dalam tempoh setahun berikutnya. Halaman ini mengukur bahagian tersebut dan menghuraikan empat semakan yang membezakan saham pembayar dividen yang murah daripada saham yang bermasalah.
Mengapa hasil dividen tertinggi terdapat pada kejatuhan harga terbesar
Hasil mempunyai dua komponen yang tidak banyak persamaannya. Pembilangnya ialah kadar dividen tahunan, yang ditetapkan oleh lembaga pengarah beberapa kali setahun dan kekal tidak berubah antara keputusan tersebut. Penyebutnya ialah harga, yang bergerak setiap saat pasaran dibuka. Hanya satu daripada kedua-duanya boleh berubah dengan pantas. Oleh itu, hampir setiap lonjakan mendadak dalam hasil lebih mencerminkan pergerakan harga berbanding perubahan pembayaran.
Berikut ialah pecahan itu, diukur berdasarkan kohort tetap. Semua saham yang tersenarai di AS, ditutup melebihi $5 pada 30 Jun 2025 dan telah membayar dividen tunai suku tahunan biasa dalam tempoh dua belas bulan sebelumnya, disusun mengikut jalur berdasarkan hasil hadapan yang ditunjukkan pada hari tersebut: pembayaran suku tahunan terkini didarab empat, kemudian dibahagikan dengan harga penutup. Panel itu kemudiannya meneliti pergerakan setiap bahagian pecahan tersebut dalam tempoh dua belas bulan sebelum tarikh berkenaan.
SQL tepat di sebalik setiap nombor
WITH px_base AS (
SELECT ticker,
argMax(toFloat64(close), window_start) AS price
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2025-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
HAVING price >= 5
),
px_prior AS (
SELECT ticker,
argMax(toFloat64(close), window_start) AS price
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2024-06-28')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING price > 0
),
rate_base AS (
SELECT ticker,
argMax(toFloat64(cash_amount) * frequency, ex_dividend_date) AS annual_rate
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND ex_dividend_date > toDate('2024-06-30')
AND ex_dividend_date <= toDate('2025-06-30')
GROUP BY ticker
),
rate_prior AS (
SELECT ticker,
argMax(toFloat64(cash_amount) * frequency, ex_dividend_date) AS annual_rate
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND ex_dividend_date > toDate('2023-06-30')
AND ex_dividend_date <= toDate('2024-06-28')
GROUP BY ticker
)
SELECT multiIf(100 * rb.annual_rate / b.price >= 8, '8% and up',
100 * rb.annual_rate / b.price >= 6, '6-8%',
100 * rb.annual_rate / b.price >= 4, '4-6%',
100 * rb.annual_rate / b.price >= 2, '2-4%',
'under 2%') AS yield_band,
count() AS names,
round(quantileDeterministic(0.5)(100 * rb.annual_rate / b.price, cityHash64(b.ticker)), 2) AS median_yield_pct,
round(quantileDeterministic(0.5)(100 * (b.price / p.price - 1), cityHash64(b.ticker)), 1) AS median_price_change_pct,
round(quantileDeterministic(0.5)(100 * (rb.annual_rate / rp.annual_rate - 1), cityHash64(b.ticker)), 1) AS median_dividend_change_pct
FROM px_base AS b
INNER JOIN px_prior AS p ON b.ticker = p.ticker
INNER JOIN rate_base AS rb ON b.ticker = rb.ticker
INNER JOIN rate_prior AS rp ON b.ticker = rp.ticker
GROUP BY yield_band
ORDER BY median_yield_pctSusunan itu bergerak dalam satu arah. Saham dalam jalur 8% and up mencatat hasil median sebanyak 9.69%, dengan perubahan harga median sebanyak -2.4% sepanjang tahun sebelumnya. Jalur under 2% mencatat 11.9% dalam tempoh yang sama. Bahagian pembayaran hampir tidak membezakan kedua-duanya: kadar dividen tahunan median berubah sebanyak 0% dalam jalur teratas berbanding 5.5% dalam jalur terbawah. Menyusun senarai berdasarkan hasil, pada asasnya, bermakna menyusunnya berdasarkan kemerosotan harga selama dua belas bulan. Skrin saham dengan hasil dividen tertinggi memaparkan versi langsung senarai itu. Halaman ini menerangkan perkara yang mendasari halaman pertama tersebut.
Perkara yang berlaku kepada pembayar hasil tertinggi dalam tempoh dua belas bulan berikutnya
Kohort yang sama, tarikh yang sama, kini dilihat ke hadapan. Bagi setiap jalur, panel ini membandingkan kadar tahunan tersirat pada pembayaran berkala terakhir sebelum 30 Jun 2025 dengan pembayaran berkala terakhir yang dibuat dalam tempoh dua belas bulan selepasnya. Kadar yang lebih rendah sebanyak lebih daripada 1% dikira sebagai pengurangan. Tiada pembayaran dividen tunai berkala langsung dalam tempoh dua belas bulan tersebut dikira sebagai dihentikan. Bagi pembayar yang menukar jadual pembayaran, perbandingan dibuat berdasarkan kadar tahunan tersirat, supaya perubahan daripada suku tahunan kepada bulanan tidak tersalah kira.
SQL tepat di sebalik setiap nombor
WITH px_base AS (
SELECT ticker,
argMax(toFloat64(close), window_start) AS price
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2025-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
HAVING price >= 5
),
rate_before AS (
SELECT ticker,
argMax(toFloat64(cash_amount) * frequency, ex_dividend_date) AS annual_rate
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND ex_dividend_date > toDate('2024-06-30')
AND ex_dividend_date <= toDate('2025-06-30')
GROUP BY ticker
),
rate_after AS (
SELECT ticker,
argMax(toFloat64(cash_amount) * frequency, ex_dividend_date) AS annual_rate
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency > 0
AND cash_amount > 0
AND ex_dividend_date > toDate('2025-06-30')
AND ex_dividend_date <= toDate('2026-06-30')
GROUP BY ticker
)
SELECT multiIf(100 * b.annual_rate / p.price >= 8, '8% and up',
100 * b.annual_rate / p.price >= 6, '6-8%',
100 * b.annual_rate / p.price >= 4, '4-6%',
100 * b.annual_rate / p.price >= 2, '2-4%',
'under 2%') AS yield_band,
count() AS payers,
round(quantileDeterministic(0.5)(100 * b.annual_rate / p.price, cityHash64(p.ticker)), 2) AS median_yield_pct,
round(100 * countIf(ifNull(a.annual_rate, 0) = 0) / count(), 1) AS pct_stopped_paying,
round(100 * countIf(ifNull(a.annual_rate, 0) > 0 AND a.annual_rate < b.annual_rate * 0.99) / count(), 1) AS pct_reduced_rate,
round(100 * countIf(ifNull(a.annual_rate, 0) = 0 OR a.annual_rate < b.annual_rate * 0.99) / count(), 1) AS pct_reduced_or_stopped,
round(100 * countIf(ifNull(a.annual_rate, 0) >= b.annual_rate * 0.99) / count(), 1) AS pct_maintained_or_raised
FROM px_base AS p
INNER JOIN rate_before AS b ON p.ticker = b.ticker
LEFT JOIN rate_after AS a ON p.ticker = a.ticker
GROUP BY yield_band
ORDER BY median_yield_pctDaripada 330 nama yang berada dalam jalur 8% and up pada 30 Jun 2025, 36.4% sama ada mengurangkan kadar tahunan tersirat atau tidak membuat sebarang pembayaran berkala dalam tempoh dua belas bulan berikutnya. Jumlah itu terdiri daripada 28.8% yang mengurangkan kadar dan 7.6% yang menghentikan pembayaran. Jalur under 2%, yang mengandungi 1369 nama, mencatat 23.4%. Merentasi kesemua 5 jalur, angka itu meningkat seiring dengan hasil.
Baca bahagian lain pada panel yang sama sebelum membuat kesimpulan: 63.6% daripada jalur tertinggi itu mengekalkan kadar atau menaikkannya. Hasil yang tinggi ialah kadar kejayaan, bukan penentu muktamad bagi mana-mana syarikat. Kohort ini menunjukkan kadar asas yang perlu dihadapi pembaca apabila membeli saham di bahagian teratas saringan, serta sejauh mana hasilnya menjadi lebih pelbagai pada tahap tersebut. Mekanisme yang menentukan tindakan lembaga pengarah apabila tunai mula ketat dibincangkan dalam pengurangan dividen.
Semakan pertama: adakah nisbah agihan masih mempunyai ruang
Nisbah agihan ialah dividen sesaham dibahagikan dengan pendapatan sesaham. Di bawah 100%, keuntungan yang dilaporkan mencukupi untuk menampung dividen dan masih berbaki. Di atas 100%, syarikat mengagihkan lebih daripada jumlah yang diperoleh. Pembayaran itu dibiayai daripada tunai sedia ada, penjualan aset atau pinjaman. Pengelasan pembayar hari ini mengikut julat hasil menunjukkan betapa rapatnya hubungan antara kedua-duanya.
SQL tepat di sebalik setiap nombor
SELECT multiIf(dividend_yield * 100 >= 8, '8% and up',
dividend_yield * 100 >= 6, '6-8%',
dividend_yield * 100 >= 4, '4-6%',
dividend_yield * 100 >= 2, '2-4%',
'under 2%') AS yield_band,
count() AS payers,
round(quantileDeterministic(0.5)(dividend_yield * 100, cityHash64(ticker)), 2) AS median_yield_pct,
round(quantileDeterministicIf(0.5)(dividend_yield * price / earnings_per_share * 100,
cityHash64(ticker), earnings_per_share > 0), 1) AS median_payout_ratio_pct,
round(100 * countIf(earnings_per_share > 0 AND dividend_yield * price > earnings_per_share)
/ countIf(earnings_per_share > 0), 1) AS pct_paying_over_earnings,
round(100 * countIf(earnings_per_share <= 0) / count(), 1) AS pct_no_positive_eps
FROM global_markets.stocks_ratios
WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
AND price >= 5
AND market_cap >= 1000000000
AND dividend_yield > 0
AND earnings_per_share IS NOT NULL
GROUP BY yield_band
HAVING countIf(earnings_per_share > 0) > 0
ORDER BY median_yield_pctMedian nisbah agihan meningkat pada setiap julat, daripada 21.5% dalam kumpulan under 2% kepada 160.6% dalam kumpulan 8% and up. Peratusan syarikat yang mengagihkan lebih daripada jumlah yang diperoleh turut mengikuti corak yang sama: 2.6% pada julat terendah berbanding 80.4% pada julat tertinggi. Sebanyak 23.3% lagi syarikat dalam julat tertinggi tidak melaporkan pendapatan sesaham yang positif langsung, berbanding 9.6% dalam julat terendah. Pengiraan penuh, termasuk keadaan apabila nisbah melebihi 100% adalah perkara biasa, terdapat dalam panduan nisbah agihan.
Semakan kedua: adakah hasil jauh melebihi julat syarikat sendiri
Hasil hanya bermakna jika dibandingkan dengan rujukan. Median pasaran menjawab satu soalan, yang dibincangkan dalam apakah yang dianggap sebagai hasil dividen yang baik, manakala julat lima tahun syarikat sendiri menjawab soalan yang lebih khusus: pernahkah saham ini membayar sebanyak ini sebelum ini. Conagra Brands, syarikat makanan berbungkus, menjejaki corak tersebut bulan demi bulan sepanjang lima tahun lalu.
SQL tepat di sebalik setiap nombor
WITH px AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
argMax(toFloat64(close), window_start) AS price,
max(toDate(toTimeZone(window_start, 'America/New_York'))) AS last_day
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CAG'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-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 month_start
),
dv AS (
SELECT ex_dividend_date, toFloat64(cash_amount) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'CAG'
AND distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND ex_dividend_date >= toDate('2021-01-01')
)
SELECT formatDateTime(px.month_start, '%Y-%m') AS month,
formatDateTimeInJodaSyntax(px.month_start, 'MMMM yyyy') AS month_label,
round(any(px.price), 2) AS price_usd,
round(argMax(dv.cash_amount, dv.ex_dividend_date) * 4, 2) AS annual_dividend_usd,
round(argMax(dv.cash_amount, dv.ex_dividend_date) * 4 / any(px.price) * 100, 2) AS dividend_yield_pct
FROM px, dv
WHERE dv.ex_dividend_date <= px.last_day
GROUP BY px.month_start
ORDER BY px.month_startBaca ketiga-tiga lajur secara serentak merentasi 60 bulan tersebut. Kadar dividen tahunan meningkat daripada $1.25 sesaham pada August 2021 kepada $0.7 pada July 2026. Harga meningkat daripada $33.11 kepada $14.52 dalam tempoh yang sama. Hasil, iaitu angka pertama dibahagikan dengan angka kedua, berubah daripada 3.78% kepada 4.82%. Tiada apa-apa dalam jadual pembayaran dividen yang menjelaskan perubahan sebesar itu. Penyaring yang disusun mengikut hasil hanya memaparkan kesan penyebut dan tidak menunjukkan proses di sebaliknya.
Itulah keseluruhan diagnosis dalam satu carta. Apabila hasil berada pada gandaan yang jauh lebih tinggi daripada paras normal lima tahunnya sendiri, soalan yang wajar ditanya ialah apakah yang berubah dalam perniagaan sehingga dinilai sedemikian oleh pasaran, bukannya betapa menariknya nisbah itu pada masa ini.
Dua lagi semakan sebelum saringan
Semakan ketiga ialah tunai. Dividen dibayar secara tunai, manakala pendapatan ialah angka perakaunan selepas caj bukan tunai. Nisbah pembayaran di bawah 100% daripada pendapatan masih boleh melebihi 100% daripada aliran tunai bebas yang sebenarnya dijana oleh perniagaan. Pembayaran yang dibiayai daripada kunci kira-kira mempunyai tempoh kelangsungan yang lebih pendek berbanding pembayaran yang dibiayai daripada operasi. Bandingkan jumlah dividen tahunan dengan aliran tunai operasi ditolak perbelanjaan modal untuk beberapa tahun, bukan satu tahun sahaja.
Semakan keempat ialah median rakan setara. Hasil berkumpul mengikut industri: utiliti terkawal, amanah hartanah dan perkongsian saluran aliran membayar beberapa kali ganda berbanding syarikat perisian, dan strukturnya menerangkan perbezaan itu. REIT mesti mengagihkan sebahagian besar pendapatan bercukainya untuk mengekalkan status cukainya. Namun, dalam sesuatu industri, hasil yang dua kali ganda median rakan setara merupakan pencilan sebenar, dan kumpulan rakan setara ialah penanda aras yang paling wajar. Terdapat satu lagi perkara penting: saringan yang memaparkan hasil tertinggal menjumlahkan pembayaran yang telah dibuat, maka ia boleh mengiklankan dividen yang telah dipotong beberapa bulan lalu. Perbezaannya dihuraikan dalam hasil dividen tertinggal berbanding hasil dividen hadapan, manakala pengiraan asasnya diterangkan dalam ukuran hasil dividen.
Soalan Lazim Perangkap Hasil Dividen
Apakah perangkap hasil dividen?
Ia ialah hasil dividen tinggi yang terhasil daripada kejatuhan harga saham, bukannya peningkatan pembayaran dividen. Petunjuknya terdapat dalam pecahan tersebut: dalam tempoh dua belas bulan sebelum 30 Jun 2025, jalur 8% and up mencatat perubahan harga median sebanyak -2.4%, manakala kadar dividen median berubah sebanyak 0%.
Adakah hasil dividen tinggi bermakna pemotongan dividen akan berlaku?
Tiada hasil tunggal yang boleh meramalkan apa-apa, tetapi kadar asas berbeza dengan ketara mengikut jalur. Dalam tempoh dua belas bulan selepas 30 Jun 2025, 36.4% daripada kohort 8% and up mengurangkan atau menghentikan pembayaran, berbanding 23.4% daripada kohort under 2%. Baki 63.6% daripada jalur teratas mengekalkan atau meningkatkan pembayaran.
Apakah nisbah pembayaran yang terlalu tinggi?
Bagi syarikat operasi biasa, sebarang angka melebihi 100% bermakna dividen melebihi pendapatan yang dilaporkan. Pada gambaran terkini dalam rekod, pembayar median dalam jalur 8% and up mencatat 160.6%, dan 80.4% daripada jalur itu membayar lebih daripada pendapatannya. REIT dan perkongsian lazimnya melebihi 100% berdasarkan pendapatan, lalu dinilai berdasarkan aliran tunai.
Bagaimanakah anda boleh menyemak dividen sebelum mempercayai hasil tersebut?
Empat bacaan merangkumi sebahagian besar penilaian: nisbah pembayaran berbanding pendapatan, jumlah dividen berbanding aliran tunai bebas, hasil semasa berbanding julat berbilang tahun syarikat itu sendiri, dan hasil berbanding median syarikat setara dalam industrinya. Setiap satunya ialah perbandingan. Hasil utama sahaja tidak memberikan mana-mana perbandingan tersebut.
Setiap angka di atas datang daripada pertanyaan tersimpan dan berversi yang menggunakan rekod dividen yang difailkan serta harga penutupan sebenar. Buka SQL mana-mana panel, atau jalankan saringan yang sama pada terminal Strasmore.
Kaedah dan nota data
- Kohort ditetapkan pada 30 Jun 2025: setiap saham tersenarai di AS yang ditutup melebihi $5 pada hari itu dan mempunyai sekurang-kurangnya satu dividen tunai suku tahunan biasa dalam tempoh dua belas bulan sebelumnya. Agihan khas dan agihan sekali sahaja dikecualikan sepanjang analisis.
- Hasil dalam panel kohort ialah kadar hadapan: pembayaran suku tahunan biasa terkini didarabkan dengan empat, kemudian dibahagikan dengan harga penutupan pada hari tersebut. Panel nisbah pembayaran pula menggunakan hasil tertinggal dalam jadual nisbah, yang menjumlahkan pembayaran dalam tempoh dua belas bulan terakhir.
- “Dikurangkan” bermaksud kadar tahunan bagi pembayaran biasa berikutnya adalah lebih 1% rendah daripada kadar yang berkuat kuasa pada tarikh kohort. “Dihentikan” bermaksud tiada dividen tunai biasa dengan tarikh ex-dividend dalam tempoh dua belas bulan berikutnya.
- Saiz jalur adalah antara 1369 kaunter dalam jalur under 2% hingga 330 kaunter dalam jalur 8% and up. Oleh itu, peratusan jalur teratas berubah berdasarkan jumlah syarikat yang jauh lebih kecil berbanding jalur terbawah.
- Median menggunakan kuantil deterministik yang ditetapkan berdasarkan ticker, supaya dua paparan bagi statistik yang sama tidak menyimpang antara satu sama lain.