دلیل کاهش قیمت سهام در تاریخ ex-dividend چیست؟
کاهش قیمت سهام در تاریخ ex-dividend یک تعدیل فنی برای حذف حق سود نقدی است. این مقاله بررسی میکند که چرا قیمتها در این روز به صورت خودکار کاهش مییابند و رفتار واقعی بازار چگونه است.
کاهش قیمت سهام در تاریخ بدون سود (ex-dividend date) یک تعدیل برنامهریزیشده است و نه یک فروش هیجانی. خریدار در تاریخ ex-date، سود نقدی پیشرو را دریافت نمیکند؛ بنابراین سهام با یک نوبت سود کمتر نسبت به عصر روز قبل دستبهدست میشود و بورس برای اهداف نموداری و تعیین قیمت سفارشها، قیمت پایانی جلسه قبل را به اندازه مبلغ سود کاهش میدهد. اینکه قیمت سهم در واقعیت در چه سطحی باز میشود، موضوعی جداگانه است و پنلهای زیر این مسئله را در بازهای پنجساله برای گروهی از شرکتهای با سود نقدی بالا بررسی میکنند.
چرا قیمت سهام در تاریخ ex-dividend کاهش مییابد: تعدیل قیمت
سود نقدی چهار تاریخ کلیدی دارد. تاریخ اعلام (declaration date) زمانی است که هیئتمدیره پرداخت سود را اعلام میکند. تاریخ بدون سود (ex-dividend date) نخستین جلسهای است که سهم بدون حق دریافت سود معامله میشود. تاریخ ثبت (record date) زمانی است که شرکت فهرست سهامداران خود را بررسی میکند و تاریخ پرداخت (pay date) زمانی است که وجه نقد به حساب سهامداران واریز میشود. راهنمای تاریخ ex-dividend ما کل این توالی را تشریح کرده و تفاوت تاریخ ثبت و تاریخ ex-dividend دو موردی را که اغلب با هم اشتباه گرفته میشوند، تفکیک میکند.
پیش از آنکه معاملهای در تاریخ ex-date انجام شود، بورس دو تعدیل مکانیکی اعمال میکند:
- قیمت پایانی جلسه قبل برای اهداف مرجع، به اندازه مبلغ سود کاهش مییابد. نمودارها، فیلدهای تغییر درصد، میانگینهای متحرک و قیمت مرجع در حراج آغازین، همگی از این عدد تعدیلشده استفاده میکنند.
- سفارشهای بازِ زیرِ قیمت بازار، به اندازه مبلغ سود کاهش مییابند.
هیچکدام از این تعدیلها معامله محسوب نمیشوند. هیچ سهمی جابهجا نمیشود و هیچ حجمی ثبت نمیگردد. سهم روز را با یک نقطه مرجع پایینتر آغاز میکند و سری قیمتی که این تعدیل را نادیده بگیرد، هر فصل یک کاهش کاذب را نشان خواهد داد.
آیا بورس سفارشهای باز شما را در تاریخ ex-date کاهش میدهد؟
بله، برای آن دسته از سفارشهایی که پایینتر از قیمت فعلی قرار دارند. بورسها سفارشهای خرید محدود (buy limit) و سفارشهای فروش حد ضرر (sell stop) (شامل سفارشهای sell stop limit) را در تاریخ ex-date به اندازه مبلغ سود کاهش میدهند. یک سفارش خرید محدود در قیمت 50.00 دلار پیش از یک سود 0.50 دلاری، در تاریخ ex-date به صورت یک سفارش خرید محدود در قیمت 49.50 دلار باز میشود. سفارشهایی که بالاتر از قیمت بازار قرار دارند، یعنی سفارشهای فروش محدود (sell limit) یا خرید حد ضرر (buy stop)، دستنخورده باقی میمانند. این کاهش باعث میشود سفارشِ در انتظار، تقریباً در همان فاصله قبلی از قیمت بازار باقی بماند و از آنجا که سهام در ایالات متحده به سنت قیمتگذاری میشوند، این کاهش نیز بر حسب سنتهای کامل بیان میشود.
DNR، مخفف «کاهش نده» (Do Not Reduce)، دستوری است که سفارش را از این قاعده مستثنی میکند. با الصاق این دستور، سفارش خرید 50.00 دلاری در تاریخ ex-date در همان قیمت 50.00 دلار باقی میماند. همه پلتفرمهای معاملاتی خردهفروشی، گزینه DNR را در برگه سفارش نمایش نمیدهند؛ جایی که این گزینه وجود دارد، معمولاً در کنار «مدت اعتبار» (time in force) به صورت یک چکباکس یا منوی کشویی دستورات ویژه قرار دارد. یک دستور مشابه به نام DNI (افزایش نده)، بخش مربوط به تعداد سهام را پس از سودهای سهام و تقسیم سهام (stock splits) مدیریت میکند که در حقتقدمها و تقسیم سهام به تفصیل بررسی شده است.
قیمت در تاریخ ex-date واقعاً چقدر کاهش مییابد؟
پنل زیر گروهی از شرکتهای با سود نقدی بالا و تمامی تاریخهای ex-date آنها از سال 2021 تا 2025 را در بر میگیرد. هیچکدام از این شرکتها در این بازه زمانی تقسیم سهام نداشتهاند، بنابراین قیمتهای خام و مبالغ نقدی خام مستقیماً قابل مقایسه هستند. برای هر تاریخ ex-date، این پنل قیمت پایانی جلسه قبل را در برابر قیمت بازگشایی در تاریخ ex-date اندازهگیری کرده و سپس مجموع کاهش را در برابر کل سود پرداختی محاسبه میکند.
کد دقیق SQL پشت هر عدد
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ستون آخر را به عنوان «دلار کاهش قیمت در زمان بازگشایی به ازای هر دلار سود پرداختی» بخوانید. در میان 10 نام موجود، این رقم از 0.28 در پایین پنل تا 1.23 در بالا متغیر است که بالاترین مقدار متعلق به ABBV در ازای پرداختهای 20 است. مقدار 1.00 به این معناست که سهم بهطور میانگین در قیمت بازگشایی، به اندازه کل مبلغ سود پایینتر از قیمت پایانی قبل معامله شده است.
تجمیع تمامی پرداختها بر اساس سال تقویمی نشان میدهد که پاسخ تا چه حد با نمونه انتخابی شما تغییر میکند.
کد دقیق SQL پشت هر عدد
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 yearرقم تجمیعشده برای 40 پرداخت در سال 2021 برابر با 0.85 و برای 40 پرداخت در سال 2025 برابر با 0.81 بوده است. هرگونه ادعای قاطع مبنی بر اینکه کاهش قیمت در تاریخ ex-date سهم ثابتی از سود نقدی است، تنها یک برداشت از توزیعی به این گستردگی است.
چرا یک تاریخ ex-date به تنهایی چیزی را ثابت نمیکند
شرکت کوکاکولا (KO) دهههاست که سود نقدی خود را طبق یک برنامه فصلی منظم پرداخت میکند. ترسیم نمودار سود هر سهم در برابر کاهش قیمت واقعی در زمان بازگشایی در هر تاریخ ex-date، مشکل اندازهگیری را در یک نمودار واحد نشان میدهد.
کد دقیق SQL پشت هر عدد
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خط سود نقدی تقریباً صاف است و سالی یکبار افزایش مییابد. خط کاهش قیمت در اطراف آن نوسان میکند؛ با تاریخهای ex-date که بسیار پایینتر از میزان تعدیل باز شدهاند و تاریخهایی که حتی بالاتر از قیمت پایانی قبل بازگشایی شدهاند. شرکت KO در تاریخ March 12, 2021 مبلغ 0.42 و در تاریخ December 1, 2025 مبلغ 0.51 را در طول 20 تاریخ ex-date در این بازه پرداخت کرده است.
تصویر تکروزه در این مقیاس غیرقابلخواندن است. سود فصلی یک شرکت بزرگ، بسیار کمتر از یک درصد قیمت سهم است و نوسانات عادی شبانه نیز محدودهای مشابه را پوشش میدهند. پنل زیر این دو را بر حسب «واحد پایه» (basis point) در برابر یکدیگر قرار میدهد (هر واحد پایه یکصدمِ یک درصد است) و میسنجد که چند بار یک نوسان عادی شبانه، بزرگتر از کل سود فصلی بوده است.
کد دقیق SQL پشت هر عدد
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 DESCمیانه نوسان عادی شبانه برای HD برابر با 40.5 واحد پایه در برابر سود فصلی به ارزش 60.7 بوده است و در 33.2 درصد از جلسات عادی، نوسان شبانه به تنهایی بزرگتر از کل مبلغ سود بوده است. در سوی دیگر پنل، VZ در 3.2 درصد از جلسات، سود خود را به همین شیوه پوشش داده است. یک تاریخ ex-date تنها یک نمونه از این توزیع است که سود نقدی در زیر آن لایهبندی شده است.
چرا کاهش قیمت معمولاً کمتر از مبلغ سود است
دو مکانیسم باعث میشود کاهش مشاهدهشده کمتر از کل مبلغ سود باشد.
اولین عامل، مالیات است. یک دلار سود نقدی و یک دلار قیمت سهم برای یک دارنده مشمول مالیات، ارزش یکسانی ندارند: سود نقدی در همان سال دریافت مشمول مالیات میشود، در حالی که عایدی سرمایه تحققنیافته تنها در زمان فروش و با نرخ مربوطه مالیات میخورد. اگر دارنده نهایی، ارزش یک دلار سود نقدی را برابر با «یک منهای نرخ مالیات سود» و ارزش یک دلار قیمت سهم را برابر با «یک منهای نرخ مالیات عایدی سرمایه» بداند، نقطه بیتفاوتی در کاهش قیمت به میزان «سود ضربدر (1 - td) / (1 - tg)» قرار میگیرد. به جای قوانین فعلی، یک جفت نرخ فرضی را در نظر بگیرید. دارندهای که 20 درصد مالیات بر سود نقدی واجد شرایط و 15 درصد بر عایدی سرمایه بلندمدت میپردازد، ارزش پرداخت را 0.80 تقسیم بر 0.85، یعنی حدود 94 سنت به ازای هر دلار میداند که از کاهش قیمت حدود 0.47 دلار برای یک سود 0.50 دلاری حمایت میکند. اگر نرخها را به 37 درصد و 20 درصد تغییر دهیم، نسبت به 0.63 تقسیم بر 0.80، یعنی حدود 79 سنت میرسد که کاهش قیمتی در حدود 0.39 دلار برای همان سود را نشان میدهد. اینکه کدام نرخها اعمال میشوند به دوره نگهداری و نوع حساب بستگی دارد و دوره نگهداری سود نقدی واجد شرایط این آزمون را تعیین میکند. نرخها در طول زمان تغییر میکنند، اما ماهیت ریاضی آن ثابت است.
دومین عامل، «تیک» (tick) است. قیمتها به سنتهای کامل معامله میشوند و سود 0.235 دلاری هیچ معادل دقیقی در قیمت بازگشایی ندارد.
آیا میتوان برای دریافت سود، روز قبل خرید کرد؟
محاسبات را انجام دهید. سهمی در عصر روز قبل از تاریخ ex-date با قیمت 50.00 دلار بسته میشود و سود 0.50 دلاری به آن تعلق میگیرد. 100 سهم در آن قیمت پایانی بخرید؛ شما 5,000 دلار سهم دارید. صبح روز بعد، قیمت مرجع تعدیلشده 49.50 دلار است، 100 سهم شما حدود 4,950 دلار ارزشگذاری شده و شما یک سود نقدی 50 دلاری دارید که هفتهها بعد در تاریخ پرداخت تسویه میشود. پیش از کسر مالیات، هر دو سوی تاریخ ex-date شما را با 5,000 دلار باقی میگذارد. شما 50 دلار از قیمت سهم را به 50 دلار وجه نقد تبدیل کردهاید و در یک حساب مشمول مالیات، یک رویداد مالیاتی ایجاد کردهاید.
خرید در روز قبل از تاریخ ex-date تعیین میکند که چه زمانی درآمد را دریافت کنید. اینکه قیمت بازگشایی در هر صبح خاص، بالاتر یا پایینتر از قیمت مرجع تعدیلشده قرار بگیرد، همان نویز موجود در نمودار KO در بالاست. رویکردی که عمداً روی این شکاف معامله میکند، نامی دارد و استراتژی جذب سود نقدی هزینههای اجرای آن را بررسی میکند. برای مکانیسمهای سمت خروج، فروش در تاریخ ex-dividend مستقیماً به این پرسش پاسخ میدهد.
نحوه ساخت این پنلها
شرکتهای بزرگ آمریکایی با تاریخچه سود فصلی مستمر انتخاب شدند که هیچکدام بین سالهای 2021 تا 2025 تقسیم سهام نداشتهاند، بنابراین قیمتهای بازگشایی تعدیلنشده و مبالغ نقدی در کل بازه زمانی قابل مقایسه هستند. قیمت پایانی برای هر تاریخ ex-date، ردیف قبلی در سری جلسات روزانه همان تیکر است که تعطیلات آخر هفته و تعطیلات رسمی را بدون نیاز به تقویم سختکدشده مدیریت میکند. ردیفهای سود نقدی بر اساس تیکر و تاریخ ex-date حذف تکراری شدهاند. پنلهای نسبت، مجموع کاهش را در برابر کل سود محاسبه میکنند تا اینکه نسبتهای هر رویداد را میانگین بگیرند؛ این کار باعث میشود یک پرداخت کوچک بر کل رقم تأثیر غالب نداشته باشد.
پرسشهای متداول
چرا قیمت سهم در تاریخ ex-dividend کاهش مییابد؟
در تاریخ ex-dividend، خریدار دیگر سود نقدی پیشرو را دریافت نمیکند و بورس برای اهداف مرجع و تعیین قیمت سفارشها، قیمت پایانی قبل را به اندازه مبلغ سود کاهش میدهد. این کاهش در مکانیسمهای تاریخ مذکور نهادینه شده و پیش از انجام هرگونه معامله رخ میدهد.
آیا قیمت سهم همیشه دقیقاً به اندازه سود نقدی کاهش مییابد؟
خیر. تعدیل قیمت پایانی مرجع دقیقاً به اندازه سود است، در حالی که قیمت بازگشایی در هر سطحی که حراج تسویه شود، تعیین میگردد. با میانگینگیری از بسیاری از تاریخهای ex-date، کاهش قیمت تمایل دارد کمتر از کل مبلغ سود باشد و در یک صبح خاص، نوسان عادی قیمت اغلب بزرگتر از خودِ سود نقدی است.
سفارش DNR چیست؟
DNR مخفف «کاهش نده» (Do Not Reduce) است. این دستوری است که به یک سفارش خرید محدود یا فروش حد ضرر باز الصاق میشود و به بورس میگوید که قیمت آن سفارش را در تاریخ ex-dividend به جای کاهش دادن به اندازه مبلغ سود، دستنخورده باقی بگذارد.
آیا اگر در تاریخ ex-dividend خرید کنم، سود نقدی را دریافت میکنم؟
خیر. خرید در تاریخ ex-date یا پس از آن، سود پیشرو را برای فروشنده باقی میگذارد. دریافت سود مستلزم مالکیت سهام پیش از بازگشایی تاریخ ex-date است، که همان چیزی است که این تاریخ نشاندهنده آن است.
آیا کاهش قیمت در تاریخ ex-dividend به معنای ضرر مالی من است؟
پیش از کسر مالیات، ارزش از قیمت سهم به وجه نقد منتقل میشود. دارندهای که سهام را در تاریخ ex-date نگه میدارد، شاهد کاهش قیمت موقعیت خود و ظاهر شدن سود نقدی قابل دریافت در کنار آن است. مالیات و زمانبندی تاریخ پرداخت، عواملی هستند که باعث میشوند این دو طرف در عمل متفاوت باشند.
هر پنل در اینجا با کد SQL دقیقِ زیرِ آن ارائه شده است، بنابراین میتوانید ببینید کدام جلسات شمارش شده و کدامیک نادیده گرفته شدهاند. برای اجرای همین مقایسه روی سهمی که هماکنون دارید، پرسش خود را به زبان ساده در پایانه Strasmore مطرح کنید.