بازدهی قیمتی در برابر بازدهی کل: تفاوت واقعی چیست؟
بازدهی قیمتی سودهای تقسیمی را نادیده میگیرد، اما بازدهی کل آنها را دوباره سرمایهگذاری میکند. فاصله واقعی S&P 500 را در 20 سال و کاربرد هر شاخص ببینید.
بازدهی قیمتی در برابر بازدهی کل، تفاوت میان چیزی است که نمودار بازار نشان میدهد و آنچه فردی که همان موقعیت را در اختیار داشته، واقعاً به دست آورده است. بازدهی قیمتی فقط تغییر قیمت را در نظر میگیرد. بازدهی کل، تمام سودهای تقسیمی را نیز به قیمت روزی که سهم بدون سود معامله میشود، دوباره سرمایهگذاری میکند؛ در نتیجه هر پرداخت میتواند در کنار سهامی که آن را ایجاد کردهاند، مرکب شود.
سطح شاخص S&P 500 که در اخبار بهعنوان رقم اصلی اعلام میشود، یک شاخص قیمتی است. همتای آن، یعنی شاخص بازدهی کل، همان شرکتها را دربر میگیرد و سودهای تقسیمی را دوباره به کار میاندازد. در یک سال، این دو شاخص تقریباً مشابه به نظر میرسند. اما در یک دوره بیستساله، نتایج بسیار متفاوتی را نشان میدهند و فاصله میان آنها از چیزی که بازدهی سالانه پیشنهاد میکند، بیشتر است.
تفاوت بازده قیمتی و بازده کل چیست؟
بازده قیمتی برابر است با قیمت پایانی تقسیم بر قیمت آغازین، منهای یک. هر سطح شاخصی که در تلویزیون اعلام میشود و هر نمودار قیمتی که تاکنون مشاهده کردهاید، همین عدد را نشان میدهد.
بازده کل همین محاسبه را انجام میدهد، با این تفاوت که هر سود نقدی با قیمت سهم در تاریخ بدون سود آن، یعنی ex-dividend date، برای خرید سهام بیشتر به کار گرفته میشود. جدولهای عملکرد صندوقها و شاخصهای معیاری که عملکرد این صندوقها با آنها سنجیده میشود، از همین روش استفاده میکنند.
یک مثال فرضی، سازوکار را روشن میکند. سهمی را به قیمت 100 دلار بخرید که سالانه 2 دلار سود نقدی میپردازد و یک سال بعد آن را به قیمت 105 دلار بفروشید. بازده قیمتی 5 درصد است. بازده کل تقریباً 7 درصد خواهد بود. این تفاوت در سال نخست چندان چشمگیر نیست. آنچه این مفهوم را شایسته یک صفحه مستقل میکند، اثر مرکب است: 2 دلار سود نقدیِ reinvest شده، کسری از یک سهم دیگر را میخرد؛ آن کسر سهم در سال بعد سود نقدی خود را دریافت میکند و دو رشته بازده با شتابی فزاینده از یکدیگر فاصله میگیرند.
پیش از بررسی دادهها، باید یک ابهام را برطرف کرد. total return swap یک قرارداد مشتقه است که در آن یک طرف، در ازای دریافت نرخ تأمین مالی، کل منافع و زیانهای اقتصادی یک دارایی را به طرف دیگر منتقل میکند. این ابزار فقط در نام با روش محاسبه شاخص که در ادامه میآید مشترک است و از نظر ماهیت ارتباط دیگری با آن ندارد. ادامه این صفحه به شاخصها و صندوقها اختصاص دارد.
شکاف در S&P 500 چقدر است؟
اگر در پایان سال 2005 مبلغ 10٬000 دلار در بزرگترین ردیاب S&P 500 سرمایهگذاری و تا 31 ژوئیه 2026 نگهداری میشد، خط نخست هر سود سهام را در همان روز دریافت مصرف میکرد. خط دوم هر سود را با قیمت پایانی همان روز دوباره سرمایهگذاری میکرد.
کد دقیق SQL پشت هر عدد
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-12-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 d
),
base AS (
SELECT argMax(close, d) AS start_px
FROM daily
WHERE d <= toDate('2005-12-31')
),
year_end AS (
SELECT toYear(d) AS year,
argMax(close, d) AS close,
max(d) AS last_day
FROM daily
WHERE d >= toDate('2006-01-01')
GROUP BY year
),
reinvest AS (
SELECT dv.ex_dividend_date AS d,
log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
AND dv.ex_dividend_date >= toDate('2006-01-01')
AND dv.ex_dividend_date <= toDate('2026-07-31')
)
SELECT ye.year AS year,
round(10000 * ye.close / any(b.start_px)) AS price_only_usd,
round(10000 * ye.close / any(b.start_px) * exp(sum(ri.log_growth))) AS reinvested_usd,
round(100 * (1 - exp(-sum(ri.log_growth))), 1) AS dividend_share_pct
FROM year_end AS ye, reinvest AS ri, base AS b
WHERE ri.d <= ye.last_day
GROUP BY ye.year, ye.close
ORDER BY yearخط مبتنی بر قیمت در پایان به $59956 میرسد. خطی که سودها را دوباره سرمایهگذاری میکند، در پایان به $85775 میرسد. سود سهام 30.1% از مانده نهایی را تشکیل میدهد؛ رقمی که در نمودار قیمت دیده نمیشود.
لبه چپ نمودار همان جایی است که این تفاوت معمولاً از چشمها پنهان میماند. در پایان 2007، دو خط بهترتیب در $11755 و $11971 قرار داشتند و سود سهام معادل 1.8% از مانده بود. شکافی به این کوچکی در سال نخست، بهراحتی یک تفاوت ناشی از گرد کردن اعداد به نظر میرسد. اما تکرار همین تفاوت طی بیست سال، بهگونهای که هر بار بر مبنای تفاوت قبلی مرکب شود، شکاف بزرگتر در لبه راست نمودار را ایجاد میکند.
آیا این شکاف با گذشت زمان بیشتر میشود؟
یک صندوق، یک تاریخ پایان و پنج تاریخ شروع متفاوت.
کد دقیق SQL پشت هر عدد
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-07-31')
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 d
),
spans AS (
SELECT y AS years,
concat(toString(y), '-year') AS horizon,
subtractYears(toDate('2026-07-31'), y) AS start_date
FROM (SELECT arrayJoin([1, 3, 5, 10, 20]) AS y)
),
divs AS (
SELECT dv.ex_dividend_date AS d,
log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
AND dv.ex_dividend_date <= toDate('2026-07-31')
),
endpoints AS (
SELECT s.horizon AS horizon,
s.years AS years,
argMin(dl.close, dl.d) AS start_px,
argMax(dl.close, dl.d) AS end_px
FROM spans AS s, daily AS dl
WHERE dl.d >= s.start_date
GROUP BY s.horizon, s.years
),
reinvest AS (
SELECT s.years AS years,
exp(sum(dvs.log_growth)) AS factor
FROM spans AS s, divs AS dvs
WHERE dvs.d > s.start_date
GROUP BY s.years
)
SELECT e.horizon AS horizon,
round(100 * (e.end_px / e.start_px - 1), 1) AS price_return_pct,
round(100 * (e.end_px / e.start_px * r.factor - 1), 1) AS total_return_pct,
round(100 * (e.end_px / e.start_px) * (r.factor - 1), 1) AS dividend_points_pct
FROM endpoints AS e
INNER JOIN reinvest AS r ON e.years = r.years
ORDER BY e.yearsدر بازه 1-year، بازده قیمتی 18.2% بود، در حالی که بازده کل به 19.5% رسید؛ یعنی اختلافی معادل 1.3 واحد درصد. بازه 10-year، 244.3% را از 304.5% جدا میکند؛ اختلافی به میزان 60.2 واحد درصد. در بازه 20-year، دو رقم بهترتیب 485% و 736.9% هستند؛ یعنی اختلافی معادل 251.9 واحد درصد.
این منحنی بهصورت خطی صعود نمیکند. روند آن شبیه رشد موجودی حساب است؛ زیرا هر سود تقسیمیِ سرمایهگذاریشده، به پایهای اضافه میشود که سود تقسیمی بعدی بر مبنای آن مرکب میشود.
چرا سود سهام یکساله ناچیز به نظر میرسد
در ادامه، هر سال تقویمی از همین بازه زمانی به دو بخش تفکیک شده است: تغییر قیمت و سهم سود سهام.
کد دقیق SQL پشت هر عدد
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-01-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 d
),
yearly AS (
SELECT toYear(d) AS year,
argMin(close, d) AS first_px,
argMax(close, d) AS last_px
FROM daily
GROUP BY year
),
divs AS (
SELECT toYear(dv.ex_dividend_date) AS year,
exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
WHERE dv.ticker = 'SPY'
AND dv.cash_amount > 0
GROUP BY year
)
SELECT y.year AS year,
round(100 * (y.last_px / y.first_px - 1), 1) AS price_return_pct,
round(100 * (y.last_px / y.first_px) * (d.factor - 1), 2) AS dividend_points_pct
FROM yearly AS y
INNER JOIN divs AS d ON y.year = d.year
ORDER BY yearاین دو سری را در کنار هم بخوانید. خط قیمت، مؤلفه پرنوسان است و در هر دو جهت با شدت حرکت میکند. خط سود سهام آرامتر است: 1.9 واحد در 2007، 0.58 واحد در سال ناقص منتهی به ژوئیه 2026، و در فاصله میان این دو، هرگز در کانون توجه قرار نمیگیرد. هیچ ردیف منفردی از این نمودار نمیتواند نظر کسی را درباره موضوعی تغییر دهد. اما وقتی همین اعداد کوچک در 20 ردیف روی هم انباشته و مرکب میشوند، تمام فاصله میان دو خط در نمودار نخست را ایجاد میکنند. سرمایهگذاری مجدد سود سهام همچنین به معنای خرید خودکار در هر قیمتی است که در آن روز وجود دارد؛ روشی نزدیک به میانگینگیری هزینه دلاری. به همین دلیل، بازده سود سهام S&P 500 ممکن است عددی متوسط به نظر برسد، اما در بازههای زمانی بلندمدت، اثر آن بسیار بیشتر از اندازه ظاهریاش است.
کدام سهام بیشترین شکاف را نشان میدهند؟
این شکاف از بازدهی تبعیت میکند: شرکتی که بهازای هر دلار قیمت، مبلغ بیشتری را به سهامداران بازمیگرداند، منابع بیشتری برای سرمایهگذاری مجدد در اختیار دارنده سهم میگذارد. در دوره 10ساله منتهی به 31 ژوئیه 2026، هفت نام آشنا بررسی شدهاند و بازدهی آنها بهصورت سالانهشده ارائه شده است تا مقایسه دورهها ممکن باشد.
کد دقیق SQL پشت هر عدد
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-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 ticker, d
),
px AS (
SELECT ticker,
argMin(close, d) AS start_px,
argMax(close, d) AS end_px
FROM daily
GROUP BY ticker
),
divs AS (
SELECT dv.ticker AS ticker,
exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
FROM global_markets.stocks_dividends AS dv
INNER JOIN daily AS dl ON dl.ticker = dv.ticker AND dl.d = dv.ex_dividend_date
WHERE dv.ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
AND dv.cash_amount > 0
AND dv.ex_dividend_date >= toDate('2016-08-01')
AND dv.ex_dividend_date <= toDate('2026-07-31')
GROUP BY dv.ticker
)
SELECT px.ticker AS ticker,
round(100 * (pow(px.end_px / px.start_px, 0.1) - 1), 2) AS price_cagr_pct,
round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1) - 1), 2) AS total_cagr_pct,
round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1)
- pow(px.end_px / px.start_px, 0.1)), 2) AS dividend_points_pct
FROM px
INNER JOIN divs ON px.ticker = divs.ticker
ORDER BY dividend_points_pct DESCVZ بیشترین شکاف سالانه را در میان 7 مورد دارد؛ این شکاف به 5.46 واحد درصد در سال میرسد: بازدهی سالانهشده بر مبنای قیمت بهتنهایی -1.51% بوده، درحالیکه با سرمایهگذاری مجدد سود سهام به 3.96% رسیده است. MSFT با شکاف 1.53 واحد درصدی، در انتهای محدودتر این دامنه قرار دارد. این مقایسه برای هر کسی که نمودارها را بررسی میکند، دو نکته دارد. نمودار قیمت، عملکرد یک سهم با سوددهی بالا را بسیار بیشتر از سهمی با سوددهی پایین کمبرآورد میکند. همچنین هر سامانهای که نامها را بر اساس عملکرد قیمتی رتبهبندی کند، بهطور ضمنی سهام سودده را پایینتر رتبه میدهد. بازده سود سهام هر یک از این نامهاست که اندازه شکاف آن را تعیین میکند.
هر نسخه کجا استفاده میشود
- شاخصهای معیار و برگههای اطلاعات صندوق معمولاً بازدهی کل را گزارش میکنند. عبارت «Total Return Index»، پسوند «TR» یا توضیح «net dividends reinvested» در بخش نوشتههای ریز، همگی به این معنا هستند که سودهای تقسیمی در محاسبه لحاظ شدهاند.
- رسانههای مالی و صفحههای نمایش قیمت از بازدهی قیمتی استفاده میکنند. جمله «S&P 500 با 0٫4 درصد افزایش بسته شد» به تغییر قیمت اشاره دارد.
- بخش عملکرد حساب در کارگزاریها معمولاً برای کل حساب بر بازدهی کل تمرکز دارد، زیرا وجه نقد واقعاً به حساب وارد شده است. اما ستون سود یا زیان یک موقعیت منفرد اغلب تغییر قیمت را نسبت به cost basis نشان میدهد که با آن رقم یکسان نیست.
- در آزمونهای گذشتهنگر و گزارشهای مربوط به استراتژیها، از هر نسخهای استفاده میشود که منبع داده نویسنده ارائه کرده باشد. بسیاری از سوابق عملکردی که بیسروصدا بیشبرآورد شدهاند، از همینجا ناشی میشوند.
عدمتطابق مهم، مقایسه بازدهی کل یک صندوق با یک شاخص قیمتی است. صندوق بابت سودهای تقسیمی خود امتیاز میگیرد، اما شاخص هیچیک از سودهای تقسیمی خودش را دریافت نمیکند. در نتیجه، صندوق به اندازه کل جریان سود تقسیمی شاخص از ابتدا برتری پیدا میکند. در بازه 20-year که در بالا بررسی شد، ارزش این خطای مقایسهای 251.9 واحد درصد است؛ و هیچکدام از این واحدها حاصل عملکرد مدیر صندوق نیست. مقایسه درست، بازدهی کل را در برابر بازدهی کل قرار میدهد. نحوه محاسبه بازدهی ماهانه همین محاسبات را در سطح ماهانه دنبال میکند و از دست دادن بهترین روزها نشان میدهد وقتی چند جلسه معاملاتی از مسیر قیمت حذف شوند، چه اتفاقی برای آن رخ میدهد.
نحوه محاسبه این ارقام
- قیمتها، قیمتهای پایانی روزانه در معاملات عادی بازار هستند. سودهای تقسیمی، توزیعهای نقدی ثبتشدهاند که هرکدام در قیمت پایانی همان روز ex-dividend مجدداً سرمایهگذاری شدهاند؛ این روش، مبنای استاندارد ساخت یک سری بازدهی کل است.
- این بازه از دسامبر 2005 تا 31 ژوئیه 2026 ادامه دارد و دورهای را پوشش میدهد که سابقه قیمت درونروزی پشت این پنلها برای آن موجود است. بازه طولانیتر، شکاف را بیشتر میکند.
- صندوقی که شاخص را دنبال میکند، نماینده خود شاخص در نظر گرفته شده است؛ بنابراین کارمزدها و اثر وجه نقد در این ارقام لحاظ شدهاند. بازدهی قیمتی سال تقویمی از نخستین قیمت پایانی سال تا آخرین قیمت پایانی آن اندازهگیری میشود؛ در نتیجه، حرکت جلسه نخست از محاسبه حذف میشود.
قیمت در برابر بازده کل؛ پرسشهای متداول
S&P 500 شاخص قیمت است یا شاخص بازده کل؟
عدد اصلی اعلامشده، شاخص قیمت است: ارزش بازار اجزای شاخص را دنبال میکند و سودهای سهام آنها را نادیده میگیرد. نسخهای با بازده کل از همین شاخص نیز وجود دارد که سودهای سهام را دوباره سرمایهگذاری میکند. معیارهای سنجش صندوقها معمولاً از نسخه بازده کل استفاده میکنند، در حالی که رسانهها معمولاً نسخه قیمت را گزارش میدهند.
سودهای سهام چه میزان به بازده S&P 500 اضافه میکنند؟
در بازه 10-year منتهی به 31 ژوئیه 2026، صندوق ردیاب استفادهشده در اینجا بر مبنای قیمت 244.3% بازده داشت؛ این رقم با فرض سرمایهگذاری مجدد سودهای سهام به 304.5% میرسید. در یک سال تقویمی، سهم سودهای سهام بسیار کمتر است و حدود 1.9 واحد در 2007 بوده است.
حساب کارگزاری من بازده قیمت را نشان میدهد یا بازده کل را؟
سودهای نقدی سهام به حساب واریز میشوند؛ بنابراین موجودی حساب در عمل آنها را دربر میگیرد. با این حال، ستون سود یک موقعیت معاملاتی اغلب قیمت فعلی را فقط با مبنای هزینه شما مقایسه میکند؛ این همان بازده قیمت است. این دو رقم دقیقاً به اندازه سودهای دریافتی با یکدیگر اختلاف دارند، مگر اینکه برنامه سرمایهگذاری مجدد در طول مسیر سهام بیشتری خریداری کرده باشد.
آیا total return swap همان بازده کل است؟
خیر. total return swap یک قرارداد مشتقه دوجانبه است که کل منافع اقتصادی یک دارایی را با نرخ تأمین مالی مبادله میکند. بازده کل در معنای شاخصی، یک معیار قراردادی برای سنجش عملکرد است. شباهت این دو عبارت به ایده مشترک قیمت بهعلاوه درآمد اشاره دارد؛ اما این دو، از نظر ابزار، ارتباطی با یکدیگر ندارند.
چرا یک صندوق در مقایسه با شاخص قیمت، عملکرد بهتری نشان میدهد؟
رقم اعلامشده برای صندوق، سودهای سهام آن را دربر میگیرد، اما شاخص قیمت سودهای سهام خود را لحاظ نمیکند. این مقایسه به اندازه جریان سود سهام شاخص، یعنی 251.9 واحد درصد در بازه 20-year بالا، یک امتیاز اولیه به صندوق میدهد.
هر رقم در اینجا از یک پرسوجوی ذخیرهشده و نسخهبندیشده بر مبنای قیمتهای پایانی روزانه و سوابق ثبتشده سودهای سهام به دست آمده است. برای مشاهده SQL، هر پنل را باز کنید؛ یا همین مقایسه قیمت در برابر بازده کل را برای نمادی که در پایانه Strasmore دنبال میکنید، اجرا کنید.