รายชื่อหุ้นปันผลรายเดือนใน US ทั้งหมด
รวบรวมหุ้นจดทะเบียนใน US ที่มีการจ่ายเงินปันผลต่อเนื่องสิบถึงสิบสี่ครั้งในช่วงสิบสองเดือนที่ผ่านมา พร้อมตรวจสอบประวัติการจ่ายเงินและอัตราผลตอบแทนปัจจุบัน
หุ้นที่จ่ายเงินปันผลรายเดือนจะจ่ายเงินสดทุกเดือนแทนที่จะเป็นรายไตรมาส ซึ่งรายการหุ้นเหล่านี้มีจำนวนน้อยกว่าที่บทความรวบรวมข้อมูลทั่วไประบุไว้มาก จากการตรวจสอบประวัติการจ่ายเงินแทนการใช้เพียงชื่อเรียกประเภทหุ้น พบว่ามีหุ้นที่จดทะเบียนใน US จำนวน 1553 ตัวที่มีการจ่ายเงินสดต่อเนื่องระหว่างสิบถึงสิบสี่ครั้งในช่วงสิบสองเดือนที่ผ่านมา และมีเพียง 32 เท่านั้นที่มีประวัติพื้นฐานของบริษัทรองรับ ข้อมูลทั้งหมดในหน้านี้เป็นราคาปิดจากเซสชัน Jul 21
รายชื่อหุ้นปันผลรายเดือน
ทุกรายชื่อด้านล่างคือบริษัทจดทะเบียนในสหรัฐฯ ที่มีการจ่ายเงินสดต่อเนื่องสิบถึงสิบสี่ครั้งในช่วงสิบสองเดือนที่ผ่านมา และมีมูลค่าการซื้อขายหุ้นอย่างน้อยหนึ่งล้านดอลลาร์ต่อวัน การจัดลำดับใช้มูลค่าการซื้อขายต่อวันเป็นเกณฑ์
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT m.ticker AS ticker,
round(m.latest_payment, 4) AS monthly_payment_usd,
round(100 * m.latest_payment * 12 / l.last_close, 2) AS annual_yield_pct,
round(dateDiff('day', s.streak_start, s.last_ex) / 365.25, 1) AS years_paying_monthly,
round(l.adv_usd / 1e6, 1) AS avg_daily_traded_musd,
formatDateTime(l.last_session, '%b %e') AS priced_through
FROM (
SELECT ticker, argMax(cash_amount, ex_dividend_date) AS latest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING count() BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
) AS m
INNER JOIN (
SELECT ticker,
maxIf(ed, gap_days > 70) AS streak_start,
max(ed) AS last_ex
FROM (
SELECT ticker, ex_dividend_date AS ed,
dateDiff('day',
lagInFrame(ex_dividend_date) OVER (PARTITION BY ticker ORDER BY ex_dividend_date),
ex_dividend_date) AS gap_days
FROM (
SELECT ticker, ex_dividend_date
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring' AND cash_amount > 0 AND ex_dividend_date <= today()
GROUP BY ticker, ex_dividend_date
)
)
GROUP BY ticker
) AS s ON s.ticker = m.ticker
INNER JOIN (
SELECT ticker,
avg(dollar_vol) AS adv_usd,
argMax(close_px, d) AS last_close,
max(d) AS last_session,
count() AS sessions
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime(today() - 32)
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sessions >= 15 AND adv_usd >= 1000000 AND last_close > 0
) AS l ON l.ticker = m.ticker
INNER JOIN (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
) AS f ON f.ticker = m.ticker
ORDER BY l.adv_usd DESC
LIMIT 60O เป็นหุ้นที่จ่ายปันผลรายเดือนที่มีปริมาณการซื้อขายสูงสุดในที่นี้ โดยมีการจ่ายปันผลรายเดือนจำนวน 0.271 และมีการจ่ายปันผลต่อเนื่องมาแล้ว 14 ปี อัตราผลตอบแทนต่อปีอยู่ที่ 5% เมื่อเทียบกับราคาปิด Jul 21 โดยมีมูลค่าการซื้อขายเฉลี่ยต่อเซสชันอยู่ที่ 226.4 ล้านดอลลาร์ ผลการคัดกรองพบทั้งหมด 26 รายชื่อ ทั้งนี้ คอลัมน์อัตราผลตอบแทน (yield) คำนวณจากการนำเงินปันผลล่าสุดมาคูณสิบสองเพื่อทำเป็นค่ารายปีแล้วหารด้วยราคาปิด ดังนั้นค่าจะเปลี่ยนแปลงตามการเคลื่อนไหวของราคาหุ้น และไม่ใช่การคาดการณ์กระแสเงินสดในอีกสิบสองเดือนข้างหน้า
การถือครองหุ้นก่อนวัน ex-dividend คือเงื่อนไขในการได้รับเช็คฉบับถัดไป คุณสามารถตรวจสอบรายชื่อบริษัทที่มีกำหนดขึ้นเครื่องหมาย ex-dividend รายต่อไปได้จากปฏิทิน วัน ex-dividend ที่กำลังจะมาถึง และอ่านรายละเอียดเกี่ยวกับ คำอธิบายเรื่องวัน ex-dividend เพื่อทำความเข้าใจเกี่ยวกับวันตัดสิทธิ์ในการรับปันผล
วิธีการระบุผู้จ่ายปันผลรายเดือน
ข้อมูลฟีดเงินปันผลจะมีป้ายระบุความถี่ แต่การเชื่อถือข้อมูลนี้เพียงอย่างเดียวอาจทำให้ผลลัพธ์ผิดพลาดได้ทั้งสองทาง การทดสอบนี้จะใช้วิธีนับจำนวนครั้งที่ ticker จ่ายเงินจริง จากนั้นจึงกำหนดขอบเขตของจำนวนครั้งดังกล่าว
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH payers AS (
SELECT ticker,
count() AS payments_12m,
argMax(frequency, ex_dividend_date) AS freq_flag
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
)
SELECT multiIf(payments_12m = 1, 'One a year',
payments_12m = 2, 'Two a year',
payments_12m BETWEEN 3 AND 6, 'Three to six a year',
payments_12m BETWEEN 7 AND 9, 'Seven to nine a year',
payments_12m BETWEEN 10 AND 14, 'Ten to fourteen a year',
payments_12m BETWEEN 15 AND 39, 'Fifteen to thirty-nine a year',
'Forty or more a year') AS bucket,
count() AS tickers,
countIf(freq_flag = 12) AS labelled_monthly,
countIf(ticker IN (SELECT ticker FROM filers)) AS company_filings
FROM payers
GROUP BY bucket
ORDER BY min(payments_12m)98 tickers มีการจ่ายเงินสดแบบต่อเนื่องตั้งแต่สี่สิบครั้งขึ้นไปในช่วงหนึ่งปีที่ผ่านมา และอีก 77 tickers มีการจ่ายเงินระหว่างสิบถึงสามสิบเก้าครั้ง กลุ่มนี้คือผู้จ่ายปันผลรายสัปดาห์และรายวัน ซึ่งเป็นกลุ่มที่กำลังเติบโตอย่างรวดเร็วในตลาดกองทุน หากใช้ตัวกรองที่ถามเพียงว่า "สิบครั้งขึ้นไป" จะทำให้กลุ่มเหล่านี้ทั้งหมดถูกรวมเข้ามาในรายการรายเดือน การกำหนดเพดานจำนวนครั้งไว้ที่สิบสี่ครั้งจะช่วยคัดกรองกลุ่มนี้ออกไป
การใช้ป้ายระบุความถี่เพียงอย่างเดียวก็ไม่มีประสิทธิภาพเช่นกัน โดยมี 71 tickers ที่มีป้ายระบุความถี่เป็นรายเดือนแต่มีการจ่ายเงินเพียงครั้งเดียวในปีที่ผ่านมา และ 182 ของ tickers เหล่านั้นมีการจ่ายเงินระหว่างสามถึงหกครั้ง สำหรับกลุ่มที่มีการจ่ายเงินระหว่างสิบถึงสิบสี่ครั้ง ป้ายระบุความถี่และข้อมูลการจ่ายจริงมีความสอดคล้องกัน 1541 ครั้ง จากทั้งหมด 1553 ครั้ง นี่คือเหตุผลที่หน้านี้จำเป็นต้องใช้ข้อมูลทั้งสองส่วนประกอบกัน
ผู้จ่ายปันผลรายเดือนส่วนใหญ่เป็นกองทุน ไม่ใช่บริษัทที่ดำเนินงาน
นี่คือส่วนที่บทความแบบรายการมักข้ามไป เนื่องจากในฐานข้อมูลไม่มีการระบุประเภทว่าเป็นกองทุน, ETF หรือ REIT ดังนั้นจึงไม่สามารถคัดกรองบริษัทที่ดำเนินงานออกจากรายการผู้จ่ายปันผลรายเดือนโดยใช้ป้ายกำกับได้ สิ่งที่มีคือข้อมูลพื้นฐานของบริษัทซึ่งรายงานมูลค่าหลักทรัพย์ตามราคาตลาด (market capitalization) สำหรับบริษัทที่ดำเนินงานที่อยู่ในฐานข้อมูล ส่วนกองทุนที่จดทะเบียนในตลาดหลักทรัพย์ (exchange-traded funds) และกองทุนปิด (closed-end funds) จะไม่อยู่ในขอบเขตการครอบคลุมนี้ ดังนั้นการมีมูลค่าหลักทรัพย์ตามราคาตลาดจึงเป็นตัวบ่งชี้ถึงบริษัทที่ดำเนินงานในหน้านี้ จากจำนวน 1553 ตัวบ่งชี้ในกลุ่มรายเดือน มี 32 ตัวที่มีข้อมูลดังกล่าว ส่วนที่เหลือไม่มีข้อมูลนี้ โดยส่วนใหญ่เป็นกองทุน exchange-traded, กองทุนปิด และ interval funds รวมถึงยังมีหน่วยลงทุน, trust และผู้ออกหลักทรัพย์ขนาดเล็กที่ฐานข้อมูลเข้าไม่ถึง
กลุ่มน้อยที่มีการรายงานข้อมูลนั้น ส่วนใหญ่เป็น real estate investment trusts, mortgage REITs, business development companies และ royalty trusts นี่คือลักษณะที่แท้จริงของรายได้รายเดือน กล่าวคือ รูปแบบองค์กรที่จ่ายเงินทุกเดือนถูกสร้างขึ้นเพื่อส่งผ่านกระแสเงินสดโดยตรง การหาธุรกิจที่ดำเนินงานทั่วไปที่มีคุณสมบัติเทียบเท่ากับการจ่ายปันผลรายเดือนแบบ แชมป์การเติบโตของเงินปันผลตลอดสองทศวรรษ นั้นแทบไม่มี เนื่องจากธุรกิจทั่วไปมักจ่ายปันผลเป็นรายไตรมาส
อัตราผลตอบแทนของหุ้นที่จ่ายปันผลรายเดือน
อัตราผลตอบแทนของกลุ่มหุ้นที่จ่ายปันผลรายเดือนมีความแตกต่างกันมากกว่าค่าเฉลี่ยของตลาด ข้อมูลชุดนี้แบ่งกลุ่มหุ้นที่จ่ายปันผลรายเดือนทุกตัวที่มีประวัติราคาครบหนึ่งปี และมีการเพิ่มข้อมูลหนึ่งคอลัมน์ที่ตัวกรองอัตราผลตอบแทนทั่วไปไม่มี นั่นคือการเปลี่ยนแปลงของราคาหุ้นในช่วงสิบสองเดือนที่ผ่านมา
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH monthly AS (
SELECT ticker, argMax(cash_amount, ex_dividend_date) AS latest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING count() BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
),
tape AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM monthly)
AND (window_start >= toDateTime(today() - 32)
OR (window_start >= toDateTime(today() - 378) AND window_start < toDateTime(today() - 358)))
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
),
px AS (
SELECT ticker,
avgIf(dollar_vol, d > today() - 32) AS adv_usd,
argMaxIf(close_px, d, d > today() - 32) AS last_close,
argMaxIf(close_px, d, d <= today() - 358) AS close_year_ago,
countIf(d > today() - 32) AS recent_sessions,
countIf(d <= today() - 358) AS old_sessions
FROM tape
GROUP BY ticker
HAVING recent_sessions >= 15
AND old_sessions > 0
AND adv_usd >= 1000000
AND last_close > 0
AND close_year_ago > 0
),
named AS (
SELECT m.ticker AS ticker,
100 * m.latest_payment * 12 / p.last_close AS yld,
100 * (p.last_close - p.close_year_ago) / p.close_year_ago AS price_change,
m.ticker IN (SELECT ticker FROM filers) AS is_filer
FROM monthly m
INNER JOIN px p ON p.ticker = m.ticker
)
SELECT multiIf(yld < 3, 'Under 3%',
yld < 5, 'From 3% to 5%',
yld < 8, 'From 5% to 8%',
yld < 12, 'From 8% to 12%',
'Above 12%') AS bucket,
count() AS payers,
round(quantileDeterministic(0.5)(yld, cityHash64(ticker)), 2) AS median_yield_pct,
round(quantileDeterministic(0.5)(price_change, cityHash64(ticker)), 1) AS median_price_change_12m_pct,
countIf(is_filer) AS company_filings
FROM named
GROUP BY bucket
ORDER BY median_yield_pctกลุ่มที่มีจำนวนหุ้นมากที่สุดคือ From 3% to 5% โดยมีหุ้น 289 ราย ในขณะที่กลุ่ม From 5% to 8% มีหุ้น 212 ราย และกลุ่ม Under 3% มีหุ้น 65 ราย ค่ามัธยฐานของอัตราผลตอบแทนเพิ่มขึ้นอย่างชัดเจน จาก 2.46% ในกลุ่มล่างสุด ไปจนถึง 14.35% ในกลุ่มบนสุด
เมื่อพิจารณาคอลัมน์ราคาที่อยู่ข้างกัน ค่ามัธยฐานการเปลี่ยนแปลงของราคาในช่วงสิบสองเดือนอยู่ที่ 0.5% ในกลุ่มอัตราผลตอบแทนต่ำสุด และอยู่ที่ -0.4% ในกลุ่ม From 3% to 5% จากนั้นอยู่ที่ -6.6% ในกลุ่ม Above 12% เนื่องจากอัตราผลตอบแทนคำนวณโดยใช้ราคาเป็นตัวหาร หุ้นจึงสามารถขยับขึ้นไปอยู่ในกลุ่มบนสุดได้โดยที่จำนวนเงินปันผลยังเท่าเดิม อัตราผลตอบแทนที่สูงผิดปกติมักเป็นผลมาจากราคาหุ้นที่ลดลง มากกว่าจะเป็นหลักฐานของการจ่ายปันผลที่สูงเกินจริง อัตราผลตอบแทนเงินปันผลเทียบกับอัตราผลตอบแทนพันธบัตร ระบุเกณฑ์ที่ตัวเลขรายได้สูงต้องผ่านให้ได้
หุ้นที่มีอัตราผลตอบแทนสูงกว่า 12%
หุ้นที่จ่ายปันผลรายเดือนซึ่งให้ผลตอบแทนสูงกว่าประมาณ 12% เป็นกลุ่มที่ควรค่าแก่การพิจารณาอีกครั้ง ต่อไปนี้คือรายชื่อบริษัทที่ผ่านเกณฑ์ดังกล่าว โดยพิจารณาจากราคาหุ้นและเงินปันผลรายเดือนในช่วงหนึ่งปีที่ผ่านมา
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH monthly AS (
SELECT ticker,
argMax(cash_amount, ex_dividend_date) AS latest_payment,
argMin(cash_amount, ex_dividend_date) AS oldest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 400
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING countIf(ex_dividend_date > today() - 365) BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
AND oldest_payment > 0
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
),
tape AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM monthly)
AND (window_start >= toDateTime(today() - 32)
OR (window_start >= toDateTime(today() - 378) AND window_start < toDateTime(today() - 358)))
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
),
px AS (
SELECT ticker,
avgIf(dollar_vol, d > today() - 32) AS adv_usd,
argMaxIf(close_px, d, d > today() - 32) AS last_close,
argMaxIf(close_px, d, d <= today() - 358) AS close_year_ago,
countIf(d > today() - 32) AS recent_sessions,
countIf(d <= today() - 358) AS old_sessions
FROM tape
GROUP BY ticker
HAVING recent_sessions >= 15
AND old_sessions > 0
AND adv_usd >= 1000000
AND last_close > 0
AND close_year_ago > 0
)
SELECT m.ticker AS ticker,
round(100 * m.latest_payment * 12 / p.last_close, 2) AS annual_yield_pct,
round(100 * (p.last_close - p.close_year_ago) / p.close_year_ago, 1) AS price_change_12m_pct,
round(100 * (m.latest_payment - m.oldest_payment) / m.oldest_payment, 1) AS payment_change_12m_pct,
round(p.adv_usd / 1e6, 1) AS avg_daily_traded_musd
FROM monthly m
INNER JOIN px p ON p.ticker = m.ticker
INNER JOIN filers f ON f.ticker = m.ticker
WHERE 100 * m.latest_payment * 12 / p.last_close >= 12
ORDER BY annual_yield_pct DESC
LIMIT 25มีหุ้น 9 ที่ผ่านเกณฑ์ดังกล่าว EARN มีอัตราผลตอบแทนต่อปีสูงที่สุดที่ 21.85% โดยราคาหุ้นมีการเปลี่ยนแปลง -26% ในช่วงสิบสองเดือน และเงินปันผลรายเดือนมีการเปลี่ยนแปลง 0% ตามมาด้วย PSEC ที่ระดับ 19.34% โดยราคาหุ้นมีการเปลี่ยนแปลง -36.3% และเงินปันผลมีการเปลี่ยนแปลง -22.2% ทั้งนี้ การลดเงินปันผลและการลดลงของราคาหุ้นมักเกิดขึ้นพร้อมกันในหุ้นตัวเดียวกัน ซึ่งส่งผลให้อัตราผลตอบแทนสูงขึ้นจากทั้งสองปัจจัย
อัตราผลตอบแทนเพียงอย่างเดียวเป็นตัวเลขที่ไม่สมบูรณ์ ซึ่งเป็นเหตุผลที่ การทำความเข้าใจว่าอัตราผลตอบแทนเงินปันผลคืออะไร จึงมีความสำคัญอย่างยิ่ง
เงินปันผลรายเดือนของ Realty Income รายปี
Realty Income เป็นจุดอ้างอิงสำหรับกลุ่มอุตสาหกรรมนี้ และเป็นจุดเริ่มต้นพื้นฐานสำหรับผู้ที่ศึกษาเรื่องเงินปันผลรายเดือน อัตราเงินปันผลรายเดือนที่ประกาศไว้ ซึ่งเป็นยอดจ่ายสูงสุดที่ประกาศในแต่ละปีปฏิทิน แสดงควบคู่ไปกับอัตราการเติบโตเมื่อเทียบกับปีก่อนหน้า และจำนวนครั้งที่มีการปรับขึ้นอัตราดังกล่าวภายในปีนั้น:
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH steps AS (
SELECT ed, amt,
lagInFrame(amt) OVER (ORDER BY ed ASC) AS prior_amt
FROM (
SELECT ex_dividend_date AS ed, max(cash_amount) AS amt
FROM global_markets.stocks_dividends
WHERE ticker = 'O'
AND distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date >= '2013-01-01'
AND ex_dividend_date < toStartOfYear(today())
GROUP BY ed
)
),
yearly AS (
SELECT toYear(ed) AS year,
max(amt) AS monthly_rate,
countIf(prior_amt > 0 AND amt > prior_amt) AS raise_count
FROM steps
GROUP BY year
),
seq AS (
SELECT year, monthly_rate, raise_count,
lagInFrame(monthly_rate) OVER (ORDER BY year ASC) AS prior_rate
FROM yearly
),
panel AS (
SELECT year, monthly_rate, raise_count,
100 * (monthly_rate - prior_rate) / prior_rate AS raise_pct
FROM seq
WHERE prior_rate > 0 AND year >= 2014
)
SELECT year,
round(monthly_rate, 4) AS monthly_payment_usd,
round(raise_pct, 2) AS annual_raise_pct,
raise_count,
round(min(raise_pct) OVER (), 2) AS smallest_annual_raise_pct
FROM panel
ORDER BY yearอัตราเงินปันผลรายเดือนเพิ่มขึ้นจาก $0.1834 ใน 2014 เป็น $0.27 ใน 2025 โดยมีการปรับขึ้นรายปีที่น้อยที่สุดในกลุ่มข้อมูลคือ 0.69% ส่งผลให้อัตราเงินปันผลมีการปรับตัวเพิ่มขึ้นในทุกปีที่แสดง อัตราการเติบโตอยู่ที่ 2.47% ในปีเต็มล่าสุด และอยู่ที่ 0.69% ใน 2014 โดยจำนวนครั้งที่ปรับขึ้นแสดงให้เห็นถึงแนวทางการปรับอัตราดังกล่าว คือมีการปรับขึ้นแยกกัน 6 ครั้ง ภายในปี 2025 เพียงปีเดียว ผู้จ่ายปันผลรายเดือนมักปรับอัตราขึ้นทีละน้อยหลายครั้งต่อปี แทนที่จะปรับขึ้นครั้งเดียวในอัตราที่สูง ข้อมูลรายละเอียดทั้งหมดสามารถดูได้ที่หน้า เงินปันผลของ Realty Income
ระยะเวลาการบันทึกข้อมูลการจ่ายเงินรายเดือนย้อนหลัง
สถิติความต่อเนื่องทั้งหมดในหน้านี้ วัดจากประวัติการจ่ายเงินปันผล ไม่ใช่จากปีที่บริษัทเริ่มจ่ายเงินรายเดือนครั้งแรก ซึ่งข้อมูลชุดนี้มีระยะเวลาบันทึกสั้นกว่ากลุ่มบริษัทที่จ่ายเงินรายเดือนมาอย่างยาวนานที่สุด เมื่อนับจำนวนหุ้นที่มีวันขึ้นเครื่องหมาย ex-date ซ้ำกันสิบถึงสิบสี่ครั้งในแต่ละปีปฏิทินที่เสร็จสมบูรณ์:
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_year AS (
SELECT ticker,
toYear(ex_dividend_date) AS year,
count(DISTINCT ex_dividend_date) AS payments
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date >= '2005-01-01'
AND ex_dividend_date < toStartOfYear(today())
GROUP BY ticker, year
)
SELECT year,
countIf(payments BETWEEN 10 AND 14) AS monthly_payers,
round(100 * countIf(payments BETWEEN 10 AND 14) / count(), 2) AS monthly_share_pct
FROM per_year
GROUP BY year
ORDER BY yearข้อมูลระบุว่ามีผู้จ่ายเงินรายเดือนจำนวน 60 รายใน 2011 และ 135 รายใน 2012 จากนั้นมีจำนวน 730 รายใน 2013 และ 1481 รายใน 2025 คอลัมน์สัดส่วนหุ้นแสดงให้เห็นความแตกต่างระหว่างการเติบโตตามลำดับขั้นกับอัตราการเติบโตทั่วไป โดยจำนวนผู้จ่ายเงินรายเดือนเพิ่มขึ้นจาก 1.44% ของผู้จ่ายเงินแบบต่อเนื่องทั้งหมด เป็น 10.2% ทั้งนี้ บริษัทที่จ่ายเงินรายเดือนมานานก่อนช่วงเวลาดังกล่าว ไม่สามารถแสดงจำนวนปีที่จ่ายต่อเนื่องในหน้านี้ได้มากกว่าระยะเวลาที่มีการบันทึกข้อมูลไว้
เกณฑ์การวัดผลของรายการนี้
คำอธิบายเงื่อนไขและข้อกำหนดต่างๆ อย่างชัดเจน
- ความถี่ (Cadence). Ticker จะถูกจัดอยู่ในกลุ่มรายเดือน หากมีการบันทึกการจ่ายเงินสดแบบต่อเนื่องระหว่างสิบถึงสิบสี่ครั้งในช่วง 365 วันที่ผ่านมา และมีป้ายระบุความถี่ล่าสุดเป็นรายเดือน เงื่อนไขทั้งสองส่วนมีความสำคัญ โดยเกณฑ์ขั้นต่ำช่วยรองรับกรณีที่มีข้อมูลขาดหายไปบางส่วน และเกณฑ์ขั้นสูงช่วยคัดกรองกลุ่มที่จ่ายรายสัปดาห์และรายวันออกไป
- ประเภทการจ่ายเงิน (Payment type). นับเฉพาะการจ่ายเงินที่ข้อมูลระบุว่าเป็นแบบต่อเนื่องเท่านั้น การจ่ายเงินพิเศษ (Special), การจ่ายเงินเพิ่มเติม (Supplemental) และการจ่ายเงินที่ไม่สม่ำเสมอ (Irregular) จะถูกยกเว้นจากการทดสอบความถี่และไม่นำมาคำนวณอัตราผลตอบแทน (Yield)
- ความต่อเนื่อง (Streak). จำนวนปีที่มีการจ่ายเงินรายเดือนอย่างต่อเนื่อง นับจากวันที่ขึ้นเครื่องหมาย ex-date ของการจ่ายเงินแบบต่อเนื่องที่ไม่มีช่วงว่างเกินกว่าเจ็ดสิบวัน เนื่องจากข้อมูลอาจขาดหายไปในบางเดือนที่บริษัทมีการจ่ายเงินจริง การกำหนดให้ต้องมีข้อมูลครบสิบสองครั้งต่อปีจะทำให้ค่าความต่อเนื่องต่ำกว่าความเป็นจริง ในขณะที่การเปลี่ยนไปใช้เกณฑ์รายไตรมาสจะทำให้เกิดช่วงว่างเกือบสามเดือนและทำให้ความต่อเนื่องสิ้นสุดลงอย่างถูกต้อง ข้อมูลที่บันทึกไว้จะเป็นตัวกำหนดเพดานสูงสุด ดังที่แสดงในแผงข้อมูลด้านบน
- เกณฑ์สภาพคล่องขั้นต่ำ (Liquidity floor). ต้องมีมูลค่าการซื้อขายหุ้นเฉลี่ยไม่ต่ำกว่าหนึ่งล้านดอลลาร์ต่อวัน โดยต้องมีจำนวนอย่างน้อยสิบห้าเซสชันในช่วงเวลาทำการปกติภายในเดือนที่ผ่านมา หากต่ำกว่านี้ ส่วนต่างราคาเสนอซื้อเสนอขาย (Spreads) จะทำให้ค่าอัตราผลตอบแทนไม่มีนัยสำคัญในทางปฏิบัติ
- การกำหนดราคา (Pricing). อัตราผลตอบแทนคำนวณจากราคาปิดล่าสุดของเซสชันที่เสร็จสมบูรณ์แล้ว (COMPLETED session) โดยจะไม่รวมเซสชันที่กำลังดำเนินอยู่ขณะที่หน้าเว็บนี้ถูกสร้างขึ้น ดังนั้นวันที่ที่แสดงอาจล่าช้ากว่าวันที่ปัจจุบันหนึ่งถึงสองวัน
- การคัดกรองบริษัท (Company filter). รายการหลักจะแสดงเฉพาะ Ticker ที่มีข้อมูลพื้นฐานของบริษัท (Company-fundamentals) เท่านั้น ส่วนแผงการกระจายอัตราผลตอบแทนจะรวมผู้จ่ายเงินรายเดือนทุกราย รวมถึงกองทุนด้วย
- การยกเว้น (Exclusions). ผลิตภัณฑ์ที่มีอัตราทด (Leveraged) และผลิตภัณฑ์ที่มีทิศทางตรงกันข้าม (Inverse) ที่จดทะเบียนในตลาดหลักทรัพย์จะถูกคัดออก รวมถึง Ticker ใดๆ ที่มีการแตกหุ้น (Stock split) ในรอบปีที่ผ่านมา (เนื่องจากการแตกหุ้นทำให้ราคาเปลี่ยนแปลงหลอกตาและทำให้การเปรียบเทียบราคาต่อหุ้นผิดเพี้ยน) และสัญลักษณ์หุ้นที่ถูกใช้ซ้ำโดยผู้ออกหลักทรัพย์สองรายจะถูกยกเว้นในทุกกรณี
- สิ่งที่ไม่รวมอยู่ในข้อมูลนี้. ข้อมูลนี้ไม่มีอัตราค่าใช้จ่ายของกองทุน (Expense ratios) และลักษณะทางภาษีของการจ่ายเงิน (การคืนเงินต้นเทียบกับรายได้) กองทุนรายเดือนที่มีอัตราผลตอบแทนสูงหลายแห่งจ่ายคืนในรูปแบบของเงินต้นแทนที่จะเป็นกำไร ซึ่งข้อมูลดังกล่าวจะไม่แสดงในอัตราผลตอบแทน
FAQ
หุ้นตัวใดบ้างที่มีการจ่ายเงินปันผลทุกเดือน?
จากการตรวจสอบประวัติการจ่ายเงินปันผลย้อนหลังสิบสองเดือน พบว่ามีหุ้นที่จดทะเบียนในสหรัฐฯ จำนวน 1553 ตัวที่มีการจ่ายปันผลรายเดือน แต่มีเพียง 32 เท่านั้นที่มีข้อมูลพื้นฐานของบริษัทรองรับ ส่วนที่เหลือเกือบทั้งหมดเป็นกองทุน โดยหุ้นที่มีปริมาณการซื้อขายสูงสุดในกลุ่มนี้คือ O และรายชื่อหุ้นที่มีสภาพคล่องต่ำสุดมีจำนวนถึง 26
หุ้นปันผลรายเดือนมีความปลอดภัยหรือไม่?
การจ่ายปันผลรายเดือนไม่ได้เป็นเครื่องยืนยันถึงความปลอดภัยของเงินลงทุน กลุ่มหุ้นเหล่านี้มักเป็น mortgage REITs และกองทุนที่สร้างรายได้จาก option ซึ่งการจ่ายปันผลจะผันแปรตามสภาวะสินเชื่อและอัตราดอกเบี้ย จากข้อมูลหุ้นที่จ่ายปันผลรายเดือนในที่นี้ พบว่าค่ามัธยฐานของการเปลี่ยนแปลงราคาในรอบสิบสองเดือนอยู่ที่ -6.6% สำหรับหุ้นที่มีอัตราผลตอบแทนสูงกว่า 12% เทียบกับ 0.5% สำหรับหุ้นที่มีอัตราผลตอบแทนต่ำกว่า 3%
หุ้นปันผลรายเดือนที่มีอัตราผลตอบแทนสูงสุดคือตัวใด?
ในกลุ่มบริษัทที่มีการจดทะเบียนและมีสภาพคล่องเพียงพอ EARN มีอัตราผลตอบแทนต่อปีสูงที่สุดที่ 21.85% ณ ราคาปิดเมื่อสิ้นสุดวันที่ Jul 21 โดยราคาหุ้นมีการเปลี่ยนแปลง -26% ในช่วงสิบสองเดือนที่ผ่านมา ซึ่งเป็นปัจจัยหลักที่ทำให้เกิดอัตราผลตอบแทนในระดับเลขสองหลัก
วิธีการคำนวณอัตราผลตอบแทนรายเดือนในหน้านี้คืออะไร?
คำนวณโดยนำเงินปันผลรายเดือนล่าสุดที่ประกาศไว้คูณด้วยสิบสอง แล้วหารด้วยราคาปิดของวันทำการล่าสุด วิธีนี้เป็นการคำนวณอัตราผลตอบแทนแบบปรับเป็นรายปี (annualized) แทนที่จะเป็นการรวมยอดเงินสดจากสิบสองเดือนที่ผ่านมา ดังนั้น หากบริษัทมีการประกาศเพิ่มเงินปันผลในช่วงกลางปี ค่าที่แสดงในหน้านี้จะสูงกว่าอัตราผลตอบแทนย้อนหลัง
ตารางทั้งหมดข้างต้นมาจากการดึงข้อมูลผ่านคำสั่ง SQL ที่มีการบันทึกเวอร์ชันไว้ โดยอ้างอิงจากข้อมูลการประกาศจ่ายเงินปันผลและข้อมูลราคาแบบรายนาที คุณสามารถขยายคำสั่ง SQL ภายใต้แผงควบคุมใดก็ได้ หรือสร้างตัวกรองหุ้นที่จ่ายปันผลรายเดือนด้วยตนเองบน terminal ของ Strasmore