Vì sao cổ phiếu giảm vào ngày ex-dividend date?
Cổ phiếu giảm vào ngày ex-dividend date do điều chỉnh giá cơ học, không phải bán tháo. Tìm hiểu mức mở cửa thực tế của các mã trả cổ tức.
Cổ phiếu giảm vào ngày giao dịch không hưởng quyền (ex-dividend date) do một điều chỉnh theo lịch, không phải do bán tháo. Người mua vào ngày ex-date không nhận khoản chi trả sắp tới. Vì vậy, cổ phiếu được chuyển nhượng khi không còn quyền hưởng một khoản cổ tức so với chiều hôm trước. Sở giao dịch đồng thời điều chỉnh giảm giá đóng cửa của phiên trước theo đúng giá trị cổ tức để phục vụ biểu đồ và xác định giá đặt lệnh. Giá cổ phiếu thực tế mở cửa ở đâu lại là một vấn đề khác. Các biểu đồ dưới đây đo lường điều đó qua năm năm ex-date của một nhóm cổ phiếu trả cổ tức lớn.
Vì sao cổ phiếu giảm vào ngày ex-dividend date: cơ chế điều chỉnh
Một khoản cổ tức trải qua bốn mốc thời gian. Ngày công bố là ngày hội đồng quản trị thông báo khoản chi trả. Ngày giao dịch không hưởng quyền (ex-dividend date) là phiên đầu tiên cổ phiếu giao dịch mà không còn quyền nhận khoản cổ tức đó. Ngày chốt danh sách (record date) là ngày công ty xác định danh sách cổ đông. Ngày thanh toán (pay date) là ngày tiền được chuyển đến nhà đầu tư. Hướng dẫn về ngày ex-dividend trình bày toàn bộ quy trình. Ngày record date và ngày ex-dividend phân biệt hai mốc thường bị nhầm lẫn nhất.
Trước khi nhà đầu tư giao dịch vào ngày ex-date, sở giao dịch thực hiện hai điều chỉnh mang tính cơ học:
- Giá đóng cửa của phiên trước được điều chỉnh giảm theo giá trị cổ tức để làm giá tham chiếu. Biểu đồ, trường phần trăm thay đổi, đường trung bình động và giá tham chiếu dùng để so sánh với phiên đấu giá mở cửa đều sử dụng mức giá đã điều chỉnh.
- Các lệnh đang chờ dưới giá thị trường được giảm theo giá trị cổ tức.
Không điều chỉnh nào trong số này là một giao dịch. Không có cổ phiếu được chuyển nhượng và không có giao dịch thực hiện nào được ghi nhận. Cổ phiếu bắt đầu ngày giao dịch với một mức giá tham chiếu thấp hơn. Chuỗi giá không tính đến điều chỉnh này sẽ hiển thị một mức giảm giả vào mỗi quý.
Sở giao dịch có giảm các lệnh đang chờ của bạn vào ngày ex-date không?
Có, đối với các loại lệnh được đặt dưới giá hiện tại. Sở giao dịch giảm các lệnh giới hạn mua đang chờ và lệnh stop bán đang chờ, bao gồm cả lệnh stop-limit bán, theo giá trị cổ tức vào ngày ex-date. Một lệnh giới hạn mua ở mức $50.00 trước ngày có cổ tức $0.50 sẽ được chuyển thành lệnh giới hạn mua ở mức $49.50 khi bắt đầu ngày ex-date. Các lệnh đặt trên giá thị trường, như lệnh giới hạn bán hoặc lệnh stop mua, không bị thay đổi. Việc giảm giá giữ cho khoảng cách tương đối của lệnh đang chờ với thị trường gần giống lựa chọn của nhà đầu tư trong ngày trước đó. Mức giảm được thể hiện theo cent nguyên, vì cổ phiếu Mỹ được báo giá theo cent.
DNR, viết tắt của Do Not Reduce, là chỉ thị miễn giảm điều chỉnh này cho lệnh. Khi gắn DNR, lệnh giới hạn mua ở mức $50.00 vẫn giữ nguyên mức $50.00 qua ngày ex-date. Không phải nền tảng giao dịch bán lẻ nào cũng hiển thị DNR trên phiếu đặt lệnh. Nếu có, DNR thường nằm cạnh mục thời hạn hiệu lực hoặc trong danh sách chỉ thị đặc biệt. Chỉ thị tương ứng, DNI (Do Not Increase), áp dụng cho khía cạnh số lượng cổ phiếu sau cổ tức bằng cổ phiếu và các đợt chia tách cổ phiếu. Due bills và chia tách cổ phiếu phân tích cơ chế này.
Giá thực tế giảm bao xa vào ngày ex-date?
Biểu đồ dưới đây sử dụng một nhóm cổ phiếu trả cổ tức lớn và toàn bộ các ex-date từ năm 2021 đến năm 2025. Không cổ phiếu nào trong nhóm chia tách trong giai đoạn này. Vì vậy, giá thô và khoản tiền mặt thô có thể được so sánh trực tiếp. Với mỗi ex-date, phân tích so sánh giá đóng cửa của phiên trước với giá mở cửa ngày ex-date. Sau đó, tổng mức giảm được so sánh với tổng cổ tức đã chi trả.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
)
SELECT
e.ticker AS ticker,
count() AS payment_count,
round(avg(e.dividend), 4) AS avg_dividend_usd,
round(sum(p.prior_close - p.open_px) / sum(e.dividend), 2) AS drop_per_dollar_paid
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY e.ticker
ORDER BY drop_per_dollar_paid DESCĐọc cột cuối cùng là số dollar giá mở cửa giảm trên mỗi dollar cổ tức đã chi trả. Trong 10 mã, con số này dao động từ 0.28 ở cuối biểu đồ đến 1.23 ở đầu biểu đồ. Mức cao nhất thuộc về ABBV qua 20 khoản chi trả. Giá trị 1.00 có nghĩa là trung bình cổ phiếu mở cửa thấp hơn giá đóng cửa phiên trước đúng bằng toàn bộ giá trị cổ tức.
Gộp mọi khoản chi trả theo năm dương lịch cho thấy kết quả thay đổi bao nhiêu tùy theo mẫu dữ liệu được chọn.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
)
SELECT
toString(toYear(e.ex_date)) AS year,
count() AS payment_count,
round(sum(p.prior_close - p.open_px) / sum(e.dividend), 2) AS drop_per_dollar_paid
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY year
ORDER BY yearCon số gộp đạt 0.85 qua 40 khoản chi trả trong 2021, và 0.81 qua 40 khoản chi trả trong 2025. Bất kỳ khẳng định chắc chắn nào rằng mức giảm vào ngày ex-date luôn chiếm một tỷ lệ cố định của cổ tức đều chỉ là một kết quả rút ra từ một phân phối có độ rộng như vậy.
Vì sao một ex-date riêng lẻ không cho bạn biết điều gì
Coca-Cola, KO, đã chi trả cổ tức theo lịch hàng quý ổn định trong nhiều thập kỷ. Đặt cổ tức trên mỗi cổ phiếu cạnh mức giảm giá mở cửa thực tế tại từng ex-date sẽ cho thấy vấn đề đo lường trên một biểu đồ duy nhất.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
prices AS
(
SELECT
date,
open_px,
any(close_px) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'KO'
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY date
)
),
ex_days AS
(
SELECT
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker = 'KO'
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ex_dividend_date
)
SELECT
toString(e.ex_date) AS ex_date,
concat(monthName(e.ex_date), ' ', toString(toDayOfMonth(e.ex_date)), ', ', toString(toYear(e.ex_date))) AS ex_date_label,
round(e.dividend, 4) AS dividend_per_share,
round(p.prior_close - p.open_px, 2) AS drop_at_open
FROM ex_days AS e
INNER JOIN prices AS p ON p.date = e.ex_date
WHERE p.prior_close > 0
ORDER BY e.ex_dateĐường cổ tức gần như đi ngang và chỉ tăng một lần mỗi năm. Đường mức giảm dao động xung quanh đường này. Có ex-date mở cửa thấp hơn nhiều so với mức điều chỉnh và cũng có ex-date mở cửa cao hơn hẳn giá đóng cửa phiên trước. KO chi trả $0.42 trên mỗi cổ phiếu vào March 12, 2021 và $0.51 vào December 1, 2025, qua 20 ex-date trong giai đoạn phân tích.
Bức tranh của một ngày riêng lẻ không thể đọc được ở quy mô này. Với một cổ phiếu vốn hóa lớn, cổ tức hàng quý thấp hơn nhiều so với một phần trăm giá cổ phiếu. Các biến động qua đêm thông thường cũng có quy mô tương tự. Biểu đồ dưới đây đặt hai yếu tố cạnh nhau theo điểm cơ bản (basis point), trong đó một điểm cơ bản bằng một phần trăm của một điểm phần trăm. Biểu đồ cũng đếm số lần một biến động qua đêm thông thường tự nó lớn hơn toàn bộ khoản cổ tức hàng quý.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
prices AS
(
SELECT
ticker,
date,
open_px,
any(close_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM
(
SELECT
ticker,
date,
toFloat64(max(open)) AS open_px,
toFloat64(max(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND date >= '2020-12-01'
AND date < '2026-01-01'
GROUP BY ticker, date
)
),
ex_days AS
(
SELECT
ticker,
ex_dividend_date AS ex_date,
toFloat64(max(cash_amount)) AS dividend
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO','PG','JNJ','PEP','XOM','CVX','MCD','HD','VZ','ABBV')
AND ex_dividend_date >= '2021-01-01'
AND ex_dividend_date < '2026-01-01'
AND cash_amount > 0
GROUP BY ticker, ex_dividend_date
),
div_size AS
(
SELECT
e.ticker AS ticker,
avg(e.dividend / p.prior_close) * 10000 AS dividend_bps
FROM ex_days AS e
INNER JOIN prices AS p ON p.ticker = e.ticker AND p.date = e.ex_date
WHERE p.prior_close > 0
GROUP BY e.ticker
),
ordinary AS
(
SELECT
ticker,
date,
abs(open_px / prior_close - 1) * 10000 AS abs_gap_bps
FROM prices
WHERE prior_close > 0
AND date >= '2021-01-01'
AND (ticker, date) NOT IN (SELECT ticker, ex_date FROM ex_days)
)
SELECT
o.ticker AS ticker,
round(max(d.dividend_bps), 1) AS dividend_bps,
round(quantileDeterministic(0.5)(o.abs_gap_bps, toUInt32(o.date)), 1) AS median_gap_bps,
round(100 * countIf(o.abs_gap_bps > d.dividend_bps) / count(), 1) AS sessions_over_dividend_pct
FROM ordinary AS o
INNER JOIN div_size AS d ON d.ticker = o.ticker
GROUP BY o.ticker
ORDER BY sessions_over_dividend_pct DESCMức biến động qua đêm thông thường trung vị của HD là 40.5 điểm cơ bản, so với khoản cổ tức hàng quý tương đương 60.7. Trong 33.2 phần trăm số phiên thông thường, riêng biến động qua đêm đã lớn hơn toàn bộ khoản chi trả. Ở đầu kia của biểu đồ, VZ vượt qua mức cổ tức theo cách đó trong 3.2 phần trăm số phiên. Một ex-date riêng lẻ chỉ là một mẫu duy nhất từ phân phối đó, với cổ tức được chồng lên bên dưới.
Vì sao mức giảm thường nhỏ hơn cổ tức
Hai cơ chế khiến mức giảm quan sát được thấp hơn toàn bộ khoản chi trả.
Cơ chế thứ nhất là thuế. Một dollar cổ tức và một dollar giá cổ phiếu không có giá trị như nhau sau thuế đối với nhà đầu tư chịu thuế. Cổ tức bị tính thuế trong năm nhận tiền, còn khoản lãi chưa thực hiện chỉ bị tính thuế khi bán, theo mức thuế áp dụng tại thời điểm đó. Nếu nhà đầu tư cận biên định giá một dollar cổ tức bằng một trừ thuế suất cổ tức, còn một dollar giá cổ phiếu bằng một trừ thuế suất lãi vốn, điểm cân bằng tương ứng với mức giảm bằng cổ tức nhân với (1 - td) / (1 - tg). Hãy dùng một cặp thuế suất minh họa thay vì luật hiện hành. Một nhà đầu tư chịu thuế 20 phần trăm đối với cổ tức đủ điều kiện và 15 phần trăm đối với lãi vốn dài hạn sẽ định giá khoản chi trả ở mức 0.80 / 0.85, tương đương khoảng 94 cent trên mỗi dollar. Điều này ủng hộ mức giảm gần $0.47 đối với cổ tức $0.50. Nếu cùng nhà đầu tư đó chịu thuế suất 37 phần trăm và 20 phần trăm, tỷ lệ sẽ là 0.63 / 0.80, tương đương gần 79 cent, hay mức giảm khoảng $0.39 đối với cùng khoản chi trả. Thuế suất áp dụng phụ thuộc vào thời gian nắm giữ và loại tài khoản. Thời gian nắm giữ để hưởng cổ tức đủ điều kiện trình bày điều kiện này. Thuế suất thay đổi theo thời gian, nhưng cấu trúc phép tính không thay đổi.
Cơ chế thứ hai là bước giá. Giá giao dịch được thể hiện theo cent nguyên. Vì vậy, cổ tức $0.235 không thể được biểu diễn chính xác trong giao dịch mở cửa.
Bạn có thể mua vào ngày trước để nhận cổ tức không?
Hãy thực hiện phép tính. Một cổ phiếu đóng cửa ở mức $50.00 vào chiều trước ngày ex-date và đi kèm cổ tức $0.50. Mua 100 cổ phiếu ở mức giá đóng cửa đó, bạn nắm giữ số cổ phiếu trị giá $5,000. Sáng hôm sau, giá đóng cửa tham chiếu đã điều chỉnh là $49.50. 100 cổ phiếu được định giá gần $4,950, đồng thời bạn có khoản cổ tức phải thu $50 sẽ được thanh toán sau vài tuần vào pay date. Trước thuế, tổng giá trị ở hai phía của ex-date vẫn là $5,000. Bạn đã chuyển $50 từ giá cổ phiếu thành $50 tiền mặt và tạo ra một sự kiện chịu thuế trong tài khoản chịu thuế.
Mua vào ngày trước ex-date quyết định thời điểm bạn nhận thu nhập. Việc giá mở cửa nằm trên hay dưới giá tham chiếu đã điều chỉnh vào một buổi sáng cụ thể chỉ là biến động ngẫu nhiên, như biểu đồ KO ở trên cho thấy. Cách tiếp cận chủ động giao dịch khoảng chênh lệch đó có một tên gọi. Chiến lược dividend capture trình bày các chi phí để triển khai chiến lược. Về cơ chế khi bán, Bán vào ngày ex-dividend trả lời trực tiếp câu hỏi này.
Các biểu đồ này được xây dựng như thế nào
Nhóm dữ liệu gồm các cổ phiếu Mỹ trả cổ tức lớn, có lịch sử chi trả cổ tức hàng quý liên tục. Không cổ phiếu nào chia tách trong giai đoạn từ năm 2021 đến năm 2025. Nhờ đó, giá mở cửa chưa điều chỉnh và các khoản tiền mặt có thể được so sánh trong toàn bộ giai đoạn. Giá đóng cửa trước mỗi ex-date được lấy từ dòng dữ liệu của phiên trước đó trong chính chuỗi phiên hằng ngày của ticker tương ứng. Cách này xử lý cuối tuần và ngày nghỉ lễ mà không cần lịch được mã hóa cứng. Các dòng cổ tức được loại bỏ trùng lặp theo từng ticker và ex-date. Các biểu đồ tỷ lệ tính tổng mức giảm so với tổng cổ tức thay vì lấy trung bình tỷ lệ của từng sự kiện. Cách này tránh để một khoản chi trả nhỏ chi phối kết quả.
Câu hỏi thường gặp
Vì sao giá cổ phiếu giảm vào ngày ex-dividend?
Vào ngày ex-dividend, người mua không còn nhận khoản chi trả sắp tới. Sở giao dịch điều chỉnh giảm giá đóng cửa phiên trước theo giá trị cổ tức để làm giá tham chiếu và xác định giá đặt lệnh. Mức giảm được ghi nhận trong cơ chế của ngày này và xảy ra trước khi có giao dịch.
Giá cổ phiếu có luôn giảm đúng bằng cổ tức không?
Không. Giá đóng cửa tham chiếu được điều chỉnh đúng bằng giá trị cổ tức, còn giá mở cửa phụ thuộc vào mức giá mà phiên đấu giá xác lập. Khi tính trung bình qua nhiều ex-date, mức giảm thường thấp hơn toàn bộ khoản chi trả. Trong một buổi sáng riêng lẻ, biến động giá thông thường thường lớn hơn chính khoản cổ tức.
Lệnh DNR là gì?
DNR là viết tắt của Do Not Reduce. Đây là chỉ thị gắn với lệnh giới hạn mua hoặc lệnh stop bán đang chờ, yêu cầu sở giao dịch giữ nguyên giá đặt lệnh vào ngày ex-dividend thay vì giảm giá theo giá trị cổ tức.
Tôi có nhận cổ tức nếu mua vào ngày ex-dividend không?
Không. Mua vào ngày ex-date hoặc sau đó sẽ để khoản chi trả sắp tới thuộc về người bán. Để nhận cổ tức, bạn phải sở hữu cổ phiếu trước khi ex-date bắt đầu. Đây chính là điều mốc thời gian này xác định.
Mức giảm vào ngày ex-dividend có nghĩa là tôi bị lỗ không?
Trước thuế, giá trị chỉ chuyển từ giá cổ phiếu sang tiền mặt. Nhà đầu tư nắm giữ cổ phiếu qua ex-date sẽ thấy giá trị vị thế giảm và một khoản cổ tức phải thu xuất hiện cùng với vị thế. Thuế và thời điểm thanh toán là nguyên nhân khiến hai phần này khác nhau trên thực tế.
Mỗi biểu đồ trong bài đều đi kèm câu lệnh SQL chính xác ở bên dưới. Bạn có thể xem những phiên nào được tính và những phiên nào bị loại. Để thực hiện cùng phép so sánh trên một cổ phiếu trả cổ tức mà bạn đang nắm giữ, hãy đặt câu hỏi bằng tiếng Anh thông thường trên terminal Strasmore.