Strasmore Research
Tổng hợp thị trường Matt ConnorBởi Matt Connor · Cập nhật 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Danh sách cổ phiếu trả cổ tức hàng tháng

Tổng hợp các mã cổ phiếu niêm yết tại Mỹ có lịch sử trả cổ tức đều đặn mười hai lần mỗi năm cùng tỷ suất lợi nhuận hiện tại để bạn tham khảo.

Cổ phiếu trả cổ tức hàng tháng chi trả tiền mặt mỗi tháng thay vì mỗi quý một lần, và danh sách thực tế ngắn hơn nhiều so với các bài viết tổng hợp. Khi sàng lọc dựa trên lịch sử thanh toán thay vì nhãn của nhà cung cấp, có 1553 ticker niêm yết tại Mỹ đã thực hiện từ mười đến mười bốn lần thanh toán tiền mặt định kỳ trong mười hai tháng qua, và chỉ 32 trong số đó có hồ sơ nền tảng cơ bản của công ty. Mọi thông tin trên trang này được tính từ mức giá đóng cửa của phiên Jul 21.

Danh sách các cổ phiếu trả cổ tức hàng tháng

Tất cả các mã dưới đây là các công ty niêm yết tại Mỹ, có ghi nhận từ mười đến mười bốn lần thanh toán tiền mặt định kỳ trong mười hai tháng qua và có giá trị giao dịch ít nhất một triệu đô la mỗi ngày. Thứ tự được sắp xếp theo giá trị giao dịch hàng ngày.

Truy vấnCổ phiếu trả cổ tức hàng tháng - các công ty trả hàng tháng, xếp theo giá trị giao dịch hàng ngày
Câu lệnh SQL chính xác đằng sau mỗi con số
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 60

O là mã có khối lượng giao dịch hàng tháng lớn nhất trong danh sách này: mức chi trả hàng tháng là 0.271, có 14 năm thanh toán hàng tháng liên tục, tỷ suất lợi nhuận hàng năm là 5% so với mức giá đóng cửa Jul 21, với giá trị giao dịch trung bình mỗi phiên là 226.4 triệu đô la. Kết quả lọc được 26 mã. Cột tỷ suất lợi nhuận (yield) được tính bằng cách lấy mức chi trả đơn lẻ mới nhất nhân với mười hai và chia cho giá đóng cửa, do đó con số này sẽ thay đổi bất cứ khi nào giá cổ phiếu biến động. Đây không phải là dự báo cho dòng tiền trong mười hai tháng tới.

Bạn cần sở hữu cổ phiếu trước ngày giao dịch không hưởng quyền (ex-dividend date) để nhận kỳ thanh toán tiếp theo. Lịch ngày giao dịch không hưởng quyền sắp tới sẽ liệt kê các mã sắp đến hạn, và giải thích về ngày giao dịch không hưởng quyền sẽ trình bày về mốc thời gian quyết định việc người mua có được nhận cổ tức hay không.

Cách xác định một mã cổ phiếu trả cổ tức hàng tháng

Dữ liệu cổ tức có kèm theo nhãn tần suất, nhưng nếu chỉ dựa vào nhãn này thì kết quả sẽ bị sai lệch. Phương pháp kiểm tra ở đây là đếm số lần thanh toán thực tế mà một ticker đã thực hiện, sau đó giới hạn số lượng đó ở cả hai đầu.

Truy vấnCác khoản thanh toán tiền mặt định kỳ theo ticker trong năm qua - vị trí của dải hàng tháng
Câu lệnh SQL chính xác đằng sau mỗi con số
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 ticker đã thực hiện từ bốn mươi lần thanh toán tiền mặt định kỳ trở lên trong năm vừa qua, và 77 ticker khác thực hiện từ mười lăm đến ba mươi chín lần. Đó là các nhà phân phối cổ tức hàng tuần và hàng ngày, một phân khúc đang phát triển nhanh chóng của thị trường quỹ. Một bộ lọc chỉ yêu cầu "mười lần thanh toán trở lên" sẽ đưa tất cả các mã này vào danh sách hàng tháng. Việc giới hạn số lượng ở mức mười bốn lần sẽ loại bỏ chúng.

Bản thân nhãn tần suất cũng không chính xác hơn. 71 ticker mang nhãn tần suất hàng tháng chỉ thanh toán đúng một lần trong năm, và 182 trong số đó thanh toán từ ba đến sáu lần. Trong khoảng từ mười đến mười bốn lần, nhãn và hồ sơ thực tế khớp nhau 1541 trên 1553 lần, đó là lý do tại sao trang này yêu cầu cả hai yếu tố.

Hầu hết các mã trả cổ tức hàng tháng là các quỹ, không phải các công ty hoạt động

Đây là phần mà các bài viết dạng danh sách thường bỏ qua. Cơ sở dữ liệu không gắn nhãn quỹ, ETF hay REIT cho kho dữ liệu, nên danh sách các mã trả cổ tức hàng tháng không thể lọc riêng các công ty hoạt động bằng nhãn. Thay vào đó, hệ thống cung cấp dữ liệu cơ bản của doanh nghiệp, báo cáo vốn hóa thị trường cho các công ty hoạt động có trong danh sách. Các quỹ hoán đổi danh mục (ETF) và quỹ đóng nằm ngoài phạm vi bao phủ này, do đó sự hiện diện của vốn hóa thị trường được dùng làm đại diện cho một công ty hoạt động trên trang này. Trong số 1553 ticker thuộc nhóm trả cổ tức hàng tháng, có 32 ticker có dữ liệu này. Các mã còn lại không có bản ghi đó. Hầu hết chúng là các quỹ ETF, quỹ đóng và quỹ interval, cùng với một nhóm nhỏ các đơn vị quỹ (units), quỹ tín thác (trusts) và các tổ chức phát hành nhỏ hơn mà dữ liệu không tiếp cận được.

Một số ít các mã có dữ liệu chủ yếu là các quỹ tín thác đầu tư bất động sản (REIT), mortgage REITs, các công ty phát triển kinh doanh (BDC) và các quỹ tín thác bản quyền (royalty trusts). Đó là bản chất thực sự của thu nhập hàng tháng: các loại hình doanh nghiệp trả cổ tức hàng tháng được thiết lập để chuyển trực tiếp dòng tiền cho nhà đầu tư. Một mã tương đương trả hàng tháng của một nhà vô địch tăng trưởng cổ tức hai thập kỷ hầu như không tồn tại trong số các doanh nghiệp hoạt động thông thường, vốn thường trả cổ tức theo quý.

Tỷ suất cổ tức hàng tháng là bao nhiêu

Tỷ suất cổ tức của nhóm cổ phiếu trả cổ tức hàng tháng có sự phân hóa lớn hơn nhiều so với thị trường chung. Bảng dữ liệu này phân loại tất cả các mã trả cổ tức hàng tháng có lịch sử giá đủ một năm và có thanh khoản ổn định. Bảng cũng bổ sung một cột mà các bộ lọc tỷ suất cổ tức thường không hiển thị: biến động giá cổ phiếu trong mười hai tháng đó.

Truy vấnPhân bổ yield của các mã trả hàng tháng có thanh khoản cao, kèm mức thay đổi giá trung vị 12 tháng của mỗi dải
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Nhóm lớn nhất là From 3% to 5%, bao gồm 289 mã, so với 212 mã ở nhóm From 5% to 8%65 mã ở nhóm Under 3%. Tỷ suất cổ tức trung vị tăng dần rõ rệt, từ 2.46% ở nhóm thấp nhất lên 14.35% ở nhóm cao nhất.

Hãy xem cột biến động giá bên cạnh. Biến động giá trung vị trong mười hai tháng là 0.5% ở nhóm tỷ suất thấp nhất, -0.4% ở nhóm From 3% to 5%, và -6.6% ở nhóm Above 12%. Vì tỷ suất cổ tức được tính bằng cách lấy cổ tức chia cho giá cổ phiếu, nên một mã có thể lọt vào nhóm cao nhất mà không cần thay đổi mức chi trả. Một tỷ suất cổ tức cực cao thường là kết quả của việc giá cổ phiếu đang giảm chứ không phải là minh chứng cho một doanh nghiệp chi trả hậu hĩnh. Tỷ suất cổ tức so với lợi suất trái phiếu Chính phủ giải thích các tiêu chuẩn cần thiết để một mức thu nhập cao được coi là hợp lý.

Các mã cổ phiếu trên 12%

Bất kỳ mã cổ phiếu nào trả cổ tức hàng tháng với tỷ suất sinh lời trên khoảng 12% đều đáng để xem xét kỹ. Dưới đây là các công ty trong danh sách báo cáo vượt mức đó, dựa trên biến động giá cổ phiếu và mức chi trả hàng tháng trong một năm qua.

Truy vấnCác mã trả hàng tháng có yield trên 12% - biến động giá và biến động thanh toán đằng sau con số đó
Câu lệnh SQL chính xác đằng sau mỗi con số
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 mã vượt ngưỡng này. EARN có tỷ suất sinh lời hàng năm cao nhất ở mức 21.85%; giá cổ phiếu của mã này biến động -26% trong mười hai tháng và mức chi trả hàng tháng biến động 0%. PSEC đứng tiếp theo với mức 19.34%, cùng với biến động giá là -36.3% và biến động chi trả là -22.2%. Việc cắt giảm cổ tức và giá giảm thường xảy ra đồng thời ở cùng một mã, khiến tỷ suất sinh lời tăng lên nhờ cả hai yếu tố.

Bản thân tỷ suất sinh lời là một con số chưa đầy đủ, đó là lý do tại sao tỷ suất cổ tức là gì cần được phân tích một cách toàn diện.

Cổ tức hàng tháng của Realty Income qua từng năm

Realty Income là tiêu chuẩn cho nhóm cổ phiếu này và là điểm khởi đầu thông thường cho bất kỳ ai tìm hiểu về cổ tức hàng tháng. Mức cổ tức hàng tháng được công bố, mức thanh toán cao nhất trong mỗi năm dương lịch, được đặt cạnh mức tăng so với năm trước và số lần mức cổ tức này được điều chỉnh tăng trong năm đó:

Truy vấnTỷ lệ trả hàng tháng đã công bố của Realty Income theo năm dương lịch, mức tăng so với năm trước và các bước tăng trong mỗi năm
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Mức cổ tức hàng tháng đã tăng từ $0.1834 trong 2014 lên $0.27 trong 2025. Mức tăng hàng năm thấp nhất trong bảng dữ liệu là 0.69%, vì vậy mức cổ tức đã tăng trong mọi năm được hiển thị. Mức tăng đạt 2.47% trong năm đầy đủ gần nhất và 0.69% trong 2014, và số lần điều chỉnh bên cạnh cho thấy lộ trình tăng trưởng: 6 lần tăng riêng biệt chỉ trong 2025. Các doanh nghiệp trả cổ tức hàng tháng thường điều chỉnh mức chi trả theo các bước nhỏ nhiều lần trong năm thay vì tăng một lần duy nhất. Hồ sơ dữ liệu đầy đủ nằm tại trang cổ tức Realty Income.

Lịch sử ghi nhận thanh toán hàng tháng kéo dài bao lâu

Mọi chuỗi dữ liệu trên trang này được tính từ hồ sơ cổ tức thay vì từ năm công ty bắt đầu trả cổ tức hàng tháng, và dữ liệu này ngắn hơn so với các công ty trả cổ tức lâu đời nhất. Dưới đây là số lượng ticker có từ mười đến mười bốn ngày giao dịch không hưởng quyền (ex-date) lặp lại trong mỗi năm dương lịch đã hoàn thành:

Truy vấnCác mã trả hàng tháng trong lịch sử cổ tức, theo năm dương lịch đã hoàn thành
Câu lệnh SQL chính xác đằng sau mỗi con số
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

Hồ sơ ghi nhận 60 công ty trả cổ tức hàng tháng vào 2011135 vào 2012, sau đó là 730 vào 20131481 vào 2025. Cột cổ phiếu tách biệt bước tiến này với sự tăng trưởng thông thường trong dữ liệu: các công ty trả cổ tức hàng tháng đã tăng từ 1.44% tổng số công ty trả cổ tức lặp lại lên 10.2%. Một công ty trả cổ tức hàng tháng từ rất lâu trước thời điểm đó không thể có số năm duy trì chuỗi dữ liệu tại đây dài hơn chính thời gian tồn tại của hồ sơ này.

Cách tính toán danh sách này

Giải thích đơn giản về mọi ngưỡng và tiêu chí loại trừ.

  • Tần suất (Cadence). Một ticker được coi là thanh toán hàng tháng nếu ghi nhận từ mười đến mười bốn khoản thanh toán tiền mặt định kỳ trong 365 ngày qua VÀ nhãn tần suất mới nhất là hàng tháng. Cả hai giới hạn đều quan trọng: giới hạn dưới cho phép các trường hợp thiếu hồ sơ ngẫu nhiên, giới hạn trên giúp loại bỏ các mã thanh toán hàng tuần và hàng ngày.
  • Loại thanh toán. Chỉ những khoản thanh toán được nguồn dữ liệu đánh dấu là định kỳ mới được tính. Các khoản thanh toán đặc biệt, bổ sung và không định kỳ sẽ bị loại khỏi kiểm tra tần suất và tính toán tỷ suất lợi nhuận (yield).
  • Chuỗi thanh toán (Streak). Số năm thanh toán hàng tháng không gián đoạn được tính bằng số ngày giao dịch không chia cổ tức (ex-dates) định kỳ liên tiếp mà không có khoảng trống nào dài quá bảy mươi ngày. Nguồn dữ liệu đôi khi thiếu hồ sơ của một tháng mà công ty thực tế đã chi trả, nên nếu yêu cầu đúng mười hai hồ sơ mỗi năm sẽ làm giảm số năm thực tế; việc chuyển sang kiểm tra hàng quý sẽ tạo ra khoảng trống gần ba tháng và kết thúc chuỗi một cách chính xác. Bản thân hồ sơ sẽ thiết lập mức trần, như bảng bao quát ở trên đã hiển thị.
  • Ngưỡng thanh khoản. Trung bình có ít nhất một triệu đô la cổ phiếu được giao dịch mỗi ngày, trong ít nhất mười lăm phiên giao dịch trong giờ hành chính của tháng trước. Dưới mức đó, spread được niêm yết khiến tỷ suất lợi nhuận không còn mang tính thực tế.
  • Định giá. Tỷ suất lợi nhuận sử dụng giá đóng cửa cuối cùng của một phiên ĐÃ HOÀN TẤT; phiên đang diễn ra tại thời điểm trang này được cập nhật sẽ bị loại trừ, do đó dấu thời gian có thể chậm hơn một hoặc hai ngày so với lịch thực tế.
  • Bộ lọc công ty. Danh sách chính chỉ giữ lại các ticker có hồ sơ cơ bản của công ty (company-fundamentals). Bảng phân bổ tỷ suất lợi nhuận giữ lại mọi mã thanh toán hàng tháng, bao gồm cả các quỹ.
  • Loại trừ. Các sản phẩm giao dịch quỹ (ETF) sử dụng đòn bẩy và nghịch đảo bị loại bỏ theo tên, tương tự với bất kỳ ticker nào có chia tách cổ phiếu trong năm qua (việc chia tách tạo ra biến động giá giả và làm sai lệch so sánh trên mỗi cổ phiếu). Một mã chứng khoán được hai tổ chức phát hành sử dụng sẽ bị loại bỏ ở mọi nơi.
  • Những gì không có ở đây. Tỷ lệ chi phí quỹ và tính chất thuế của một khoản phân phối (hoàn vốn so với thu nhập) không có trong dữ liệu này. Một số quỹ hàng tháng có tỷ suất lợi nhuận cao thực chất là hoàn trả vốn thay vì lợi nhuận, và điều đó không bao giờ hiển thị trong tỷ suất lợi nhuận.

FAQ

Những cổ phiếu nào trả cổ tức hàng tháng?

Dựa trên hồ sơ thanh toán trong mười hai tháng gần nhất, có 1553 ticker niêm yết tại Mỹ trả cổ tức hàng tháng, nhưng chỉ 32 trong số đó có hồ sơ về nền tảng cơ bản của công ty. Hầu hết các mã còn lại là các quỹ. Mã có khối lượng giao dịch lớn nhất trong số các đơn vị báo cáo là O, và danh sách vượt mức thanh toán tối thiểu dài 26 mã.

Cổ phiếu trả cổ tức hàng tháng có an toàn không?

Lịch trình trả cổ tức hàng tháng không đảm bảo tính an toàn. Nhóm này nghiêng về các REIT thế chấp và các quỹ thu nhập từ quyền chọn, vốn có mức chi trả biến động theo điều kiện tín dụng và lãi suất. Trong số các mã trả cổ tức hàng tháng được đo lường ở đây, mức thay đổi giá trung vị trong mười hai tháng là -6.6% đối với các mã có tỷ suất lợi nhuận trên 12%, so với 0.5% đối với các mã dưới 3%.

Cổ phiếu trả cổ tức hàng tháng nào có tỷ suất lợi nhuận cao nhất?

Trong số các công ty báo cáo trả cổ tức hàng tháng vượt mức thanh toán tối thiểu, EARN có tỷ suất lợi nhuận hàng năm cao nhất ở mức 21.85% tính đến phiên đóng cửa ngày Jul 21. Giá cổ phiếu của mã này đã biến động -26% trong mười hai tháng trước đó, đây là cơ sở toán học đằng sau hầu hết các tỷ suất lợi nhuận hai chữ số.

Tỷ suất lợi nhuận hàng tháng trên trang này được tính như thế nào?

Khoản thanh toán hàng tháng mới nhất được công bố sẽ được nhân với mười hai, sau đó chia cho giá đóng cửa của phiên giao dịch hoàn tất gần nhất. Cách tính này giúp niên hóa tỷ suất hiện tại thay vì cộng dồn tiền mặt của mười hai tháng qua, vì vậy một đơn vị trả cổ tức có tăng mức chi trả vào giữa năm sẽ có tỷ suất ở đây cao hơn so với tỷ suất lợi nhuận trong mười hai tháng gần nhất.


Mọi bảng biểu ở trên đều là các truy vấn đã được lưu trữ và phân phiên dựa trên hồ sơ cổ tức đã công bố và dữ liệu nến phút thực tế. Bạn có thể mở rộng mã SQL dưới bất kỳ bảng nào, hoặc tự xây dựng bộ lọc các mã trả cổ tức hàng tháng trên terminal Strasmore.