هزینه واقعی معاملات سهام و اسپرد قیمت
با وجود صفر شدن کمیسیونها، فاصله bid-ask همچنان هزینه معاملات را افزایش میدهد. در این مقاله هزینه واقعی 12 نماد محبوب و ETF را بررسی میکنیم.
هزینه معاملات سهام با کاهش کمیسیونها به صفر نرسید. هر سفارش قابل معامله همچنان شامل bid-ask spread است؛ یعنی فاصله میان بالاترین قیمتی که خریداران میپردازند و پایینترین قیمتی که فروشندگان میپذیرند، که نیمی از آن به سمت خرید و نیمی دیگر به سمت فروش میرود. این صفحه میزان این هزینه را بر حسب basis points برای دوازده سهم خانگی و ETF، بر اساس دادههای قیمت لحظهای (tick-level)، اندازهگیری میکند و کد دقیق SQL مربوط به هر عدد را نیز پیوست کرده است.
کارمزدها به صفر رسید — اما اسپرد تغییر نکرد
یک سهم هرگز تنها یک قیمت ندارد؛ بلکه دو قیمت دارد. bid بهترین پیشنهاد موجود برای خرید است؛ ask بهترین پیشنهاد موجود برای فروش است. معامله کردن در این لحظه به معنای عبور از این شکاف است: یک خرید بازار (market buy) با قیمت ask انجام میشود، یک فروش بازار (market sell) با قیمت bid، و اختلاف قیمت نزد کسی میماند که قیمتها را منتشر کرده است — که اغلب یک market maker حرفهای است که در تمام طول جلسه هر دو سمت را قیمتگذاری میکند. مکانیسم اسپرد bid-ask این فرآیند را به طور کامل پوشش میدهد؛ این صفحه قیمت آنها را محاسبه میکند.
یک مثال فرضی، محاسبات را روشن میکند. سهمی که قیمتهای bid آن 20.00 دلار و ask آن 20.05 دلار است، دارای یک midpoint معادل 20.025 دلار است — که مرجع معمول برای ارزش منصفانه آن در آن لحظه محسوب میشود. یک خرید بازار، 20.05 دلار پرداخت میکند که 2.5 سنت بالاتر از midpoint است: یعنی نیمی از عرض قیمت اعلام شده. یک فروش بازار، 20.00 دلار دریافت میکند که نیم دیگر را از دست میدهد. اگر هر دو مرحله را انجام دهید — یعنی یک سفر رفت و برگشت — تمام 5 سنت در هر سهم باقی میماند، بدون اینکه هیچ خط کارمزدی در کار باشد.
واحد حرفهای برای این هزینه، basis point (bp) است — یعنی یکصدمِ یک درصد. بیان کردن اسپرد به عنوان بخشی از midpoint، یک ETF با قیمت چند دلاری و یک ETF با قیمت چند صد دلاری را در مقیاسی یکسان قرار میدهد؛ و تفاوتهایی که این روش آشکار میکند، بسیار بزرگتر از آن چیزی است که اکثر معاملهگران با کارمزد صفر انتظار دارند.
پلههای هزینه معامله: بررسی دوازده نماد
در ادامه، دوازده سهم و ETF پرمعامله بر اساس میانه شکاف قیمت (spread) نسبت به قیمت میانی، رتبهبندی شدهاند. این دادهها بر اساس هر بهروزرسانی NBBO — بهترین قیمت خرید و فروش تجمیعشده در تمامی بورسهای آمریکا که در اپلیکیشنهای کارگزاری نمایش داده میشود — در یک بازه زمانی مشخص (13:30 تا 19:59 UTC) محاسبه شدهاند. این بازه با ساعات معاملاتی عادی از 9:30 صبح تا 4:00 بعد از ظهر به وقت منطقه زمانی شرقی در ماههای تابستانی همخوانی دارد و وضعیت تمامی بازههایی است که این صفحه تاکنون اندازهگیری کرده است. این بازه شامل آخرین جلسات معاملاتی تکمیلشده در دادههای ما است و برای جلوگیری از ورود دادههای ناقص روز جاری به محاسبات میانه، با چند روز فاصله از امروز متوقف شده است. بهروزرسانیهایی که فاقد یکی از سمتهای قیمت هستند یا در آنها قیمت فروش در سطح یا پایین قیمت خرید قرار دارد، از محاسبات میانه حذف نشدهاند، بلکه در ستون آخر شمارش شدهاند.
کد دقیق SQL پشت هر عدد
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS typical_spread_bps,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price > bid_price) * 100, 1) AS typical_spread_cents,
round(count() / 1e6, 1) AS quote_updates_m,
round(100 * countIf(bid_price <= 0 OR ask_price <= 0 OR ask_price <= bid_price) / count(), 2) AS pct_updates_excluded
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'AMD', 'TSLA', 'KO', 'DIS', 'F', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
ORDER BY typical_spread_bpsدر رتبه نخست، SPY با 0.27 bps — یعنی کسری از یک واحد پایه — قرار دارد که بر اساس میانه 14.9 میلیون بهروزرسانی قیمت به دست آمده است. در پله چهارم، نقلقولهای NVDA معادل 0.99 bps هستند. در پایینترین پله، SOXS با 23.17 bps اندازهگیری شده است؛ ستون سنتهای این نماد درس مهم کل جدول است: شکاف قیمت نقلقول شده 1¢ است؛ شکافی در مقیاس یک سنت که به بزرگترین درصد هزینه در جدول پیوست شده است. سنتها نشاندهنده ارزان بودن سهام هستند؛ در حالی که واحد basis point قیمتگذاری واقعی آنها را نشان میدهد.
هر basis point معادل یک دلار به ازای هر 10,000 دلار است
ستون bps با یک محاسبات ثابت به مبلغ پولی تبدیل میشود: در یک سفارش 10,000 دلاری، یک basis point برابر با یک دلار است (1 = 0.0001 × 10,000). این پلهها را به عنوان لیست قیمت رفت و برگشت برای هر 10,000 دلار معامله شده در نظر بگیرید: پله بالایی با 0.27 bps حدود $0.27 است؛ پله پایین با 23.17 bps حدود $23.17 است. انجام یک بار معامله — فقط خرید یا فقط فروش — نصف هر یک از این ارقام خواهد بود.
تکرار معامله، هزینه را افزایش میدهد. یک spread فرضی 20 واحدی که هفتهای یک بار به صورت رفت و برگشت روی همان 10,000 دلار معامله شود، در طول 52 هفته مجموعاً حدود 1,040 دلار هزینه خواهد داشت (52 × 1 دلار × 20) — که در صورت نبود کمیسیون، تقریباً معادل یک درصد از حساب است. همین روند در یک spread فرضی 1 واحدی، مجموعاً حدود 52 دلار در سال خواهد بود. قرارگیری یک نماد در هر یک از این پلهها، اهمیت بیشتری نسبت به هر خط کمیسیونی دارد.
یک شرکت با ارزش بازار بسیار بالا در برابر یک ETF معکوس با اهرم بالا
پایینترین پلههای نردبان نیاز به نام دارند، و شرکتهای با ارزش بازار بسیار بالا در بخش بالایی آن نیز چنین هستند. NVDA یک سهم نیمههادی با ارزش بازار بسیار بالا است. SOXS نیز Direxion Daily Semiconductor Bear 3X shares است؛ یک ETF معکوس با اهرم که برای حرکت در جهت مخالف شاخص نیمههادی با ضریب سه برابر در هر روز، با بازنشانی روزانه، طراحی شده است. هر دو در بازه زمانی یکسان و به روشی یکسان اندازهگیری شدند:
کد دقیق SQL پشت هر عدد
WITH per_day AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS soxs_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY et_date
),
whole AS (
SELECT quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS nvda_bps,
quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000 AS soxs_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
)
SELECT round((SELECT nvda_bps FROM whole), 2) AS nvda_spread_bps,
round((SELECT soxs_bps FROM whole), 2) AS soxs_spread_bps,
round((SELECT soxs_bps FROM whole) / (SELECT nvda_bps FROM whole), 1) AS times_wider,
(SELECT count() FROM per_day) AS sessions_measured,
round((SELECT min(soxs_bps / nvda_bps) FROM per_day), 1) AS smallest_daily_gap_xمیانه شکاف قیمت (spread) نقلشده برای NVDA برابر با 0.99 bps بود. برای SOXS این مقدار 23.17 bps اندازهگیری شد که 23.3 برابر بیشتر است. در تمام 5 جلسه معاملاتی در این بازه، شکاف تکجلسهای هرگز کمتر از 14.1 برابر کاهش نیافت. همین دو نماد در شکست نیمههادی در 7 جولای در دو نقطه مقابل هم قرار داشتند؛ جلسهای که این تضاد دقیق را در پایینترین سطح قیمتهای صبحگاهی خود، لحظه به لحظه اندازهگیری کرد.
کد دقیق SQL پشت هر عدد
SELECT et_date,
nvda_spread_bps,
soxs_spread_bps,
round(soxs_spread_bps / nvda_spread_bps, 1) AS times_wider
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'NVDA' AND bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS nvda_spread_bps,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), ticker = 'SOXS' AND bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS soxs_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY et_date
)
ORDER BY et_dateدر 2026-07-08، یعنی اولین جلسه از بازه زمانی، میانه قیمت NVDA با شکاف 1.52 bps در مقابل 21.48 bps برای SOXS قرار داشت که معادل 14.1 برابر هزینه است. ترتیب این وضعیت در جلسات مختلف تغییر نمیکند: نماد ارزانقیمت همچنان ارزان میماند و نماد گرانقیمت همچنان گران میماند. جایگاه یک نماد در نردبان هزینهها، یک ویژگی ثابت است و نه یک وضعیت گذرا در یک روز.
چرا معامله کردن سهام ارزانتر از سهام گرانقیمت هزینه بیشتری دارد
بخشی از این اختلاف به ساختار زیرساختی بازار مربوط میشود. سهام و ETFهای آمریکایی با قیمت بالای 1 دلار، در گامهای یک سنتی قیمتگذاری میشوند و یک سنت کوچکترین شکافی است که یک قیمت میتواند نشان دهد. یک سنت ثابت، نسبتهای متفاوتی را نسبت به قیمتهای مختلف سهام ایجاد میکند: در برابر یک ETF با قیمت 700 دلار تقریباً ناچیز است، اما در برابر یک سهم 4 دلاری بسیار بزرگ محسوب میشود. جدول زیر میزان محدودیت این کف قیمتی را اندازهگیری میکند: سهم از بهروزرسانیهای قیمتی که دقیقاً یک سنت هستند، ارزش یک سنت بر حسب bps در آن قیمت خاص، و فاصله میانگین spread تا کف قیمتی.
کد دقیق SQL پشت هر عدد
SELECT ticker,
typical_share_price,
pct_quotes_at_one_cent,
round(100 / typical_share_price, 2) AS one_cent_in_bps,
typical_spread_bps,
round(abs(typical_spread_bps - 100 / typical_share_price), 2) AS dist_from_floor_bps
FROM (
SELECT ticker,
round(quantileExactIf(0.5)((toFloat64(ask_price) + toFloat64(bid_price)) / 2, bid_price > 0 AND ask_price > bid_price), 2) AS typical_share_price,
round(100 * countIf(bid_price > 0 AND ask_price > bid_price AND abs(toFloat64(ask_price - bid_price) - 0.01) < 0.001) / countIf(bid_price > 0 AND ask_price > bid_price), 1) AS pct_quotes_at_one_cent,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS typical_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO', 'F', 'SOXS')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
)
ORDER BY typical_share_price DESCSPY که در نزدیکی 750.32 دلار معامله میشود، 23.4% از بهروزرسانیهای خود را با شکاف دقیق یک سنت انجام میدهد؛ و برای گرانترین سهم در این لیست، یک سنت تنها 0.13 bps است. در میانبورد، KO در نزدیکی 83.82 دلار، در 65.4% از بهروزرسانیها در کف قیمتی قرار دارد. سپس محدودیت کف قیمتی کاملاً حاکم میشود: F در نزدیکی 13.86 دلار، در 99% از بهروزرسانیها دارای شکاف یک سنتی است، و SOXS در نزدیکی 4.31 دلار برای 100% از این حالت برخوردار است — در حالی که میانگین spreadها در فاصله 0 تا 0.03 bps از کف یک سنتی خود قرار دارند. برای ارزانترین سهامها، درصد هزینه معامله در واقع همان قیمت سهم است که با واحد متفاوتی نمایش داده میشود: قیمت نمیتواند باریکتر از یک سنت باشد.
کاهش هزینههای معاملاتی
- دستورات محدود (Limit orders) قیمت را تعیین میکنند. یک دستور بازار (Market order) هر قیمتی را که در نقلقول باشد میپذیرد؛ اما یک دستور محدود، در قیمت اعلامشده یا قیمتی بهتر از آن اجرا میشود. خرید در قیمت Bid باعث میشود به جای پرداخت Spread، آن را دریافت کنید (زمانی که فروشندهای برای معامله با شما بیاید)؛ نکته اینجاست که ممکن است این دستور هرگز اجرا نشود.
- زمانبندی اهمیت دارد. میزان Spread نقلقولشده پیش از بازگشایی بازار، در زمان نزدیکی به بسته شدن بازار و در ساعات معاملاتی پس از بازار (Extended hours) در بیشترین حالت خود است؛ این میزان در میانه جلسه معاملاتی و در زمان نقدشوندگی بالا، در کمترین حالت خود قرار دارد — نمودار درونروزی در راهنمای Bid-Ask ما، این الگوی U-شکل را بر اساس دادههای واقعی نشان میدهد.
- به جای سنت، واحد Basis point را بخوانید. یک سنت مشابه 0.13 bps در SPY و 23.2 bps در SOXS است. یک نقلقول «مtight» با اختلاف یک سنتی، میتواند گرانترین خط در bảng قیمت باشد.
- تعداد معاملات رفت و برگشتی را محاسبه کنید. هر معامله رفت و برگشتی، یک بار کل عرض نقلقولشده را پرداخت میکند و این هزینه با حجم معاملات (Turnover) افزایش مییابد، نه با اندازه حساب یا هدف معاملهگر. شاخصهای فعالیت مانند حجم نسبی نشان میدهند که چه زمانی یک نماد بسیار فراتر از حجم معمول خود معامله میشود — عادتهای معاملاتی با حجم بالا، جایی هستند که هزینههای Spread به آرامی انباشته میشوند.
سوالات متداول
هزینه معامله سهام با کمیسیون صفر چقدر است؟
نیمی از اختلاف قیمت خرید و فروش (bid-ask spread) در هنگام ورود و نیمی دیگر در هنگام خروج. با بررسی پلههای قیمتی douze-name ما، این هزینه رفت و برگشت از 0.27 واحد پایه (bps) از ارزش معامله (SPY) تا 23.17 واحد پایه (SOXS) متغیر بود؛ یعنی تقریباً $0.27 تا $23.17 به ازای هر 10,000 دلار معامله شده.
یک واحد پایه (basis point) معادل چند دلار است؟
یک واحد پایه معادل یکصدمِ یک درصد است: 1 دلار به ازای هر 10,000 دلار، یا 10 دلار به ازای هر 100,000 دلار. اختلاف قیمت (spread) که بر حسب bps اعلام میشود، در واقع هزینه رفت و برگشت به ازای هر 10,000 دلار است؛ برای مثال، یک spread فرضی 20 واحد پایه، حدود 20 دلار هزینه دارد.
چرا ETFهای اهرمی در مقیاس درصدی، spread بسیار گستردهای دارند؟
قیمت پایین سهام با حداقل گامهای قیمتی یک سنت همتراز میشود. ارزانترین نماد در لیست ما، SOXS، با قیمت حدود $4.31 معامله شد که در آن 100% از قیمتهای اعلام شده، دقیقاً یک سنت اختلاف داشتند؛ و یک سنت در آن قیمت سهام، معادل 23.2 bps از هر معامله است.
آیا اختلاف قیمت خرید و فروش برای سرمایهگذاران بلندمدت اهمیت دارد؟
بسیار کمتر از معاملهگران فعال. یک معامله رفت و برگشت در بالاترین پله از پلههای قیمتی، 0.27 واحد پایه بود — یعنی حدود $0.27 به ازای هر 10,000 دلار — و پرداخت چنین هزینهای در هر دهه، ناچیز است. این هزینه با نرخ گردش معاملات افزایش مییابد، نه با مدت زمان نگهداری دارایی.
آیا spread تنها هزینه باقیمانده برای معامله است؟
این هزینه ثابت هر سفارش قابل معامله است که این صفحه آن را اندازهگیری میکند. هزینههای دیگری نیز وجود دارند: سفارشهای بزرگ ممکن است قبل از تکمیل شدن، قیمت را تغییر دهند، صندوقها نسبت هزینه (expense ratios) را در طول زمان دریافت میکنند و معاملات مارجین شامل بهره هستند. هیچکدام از این موارد جایگزین spread نمیشوند؛ بلکه این هزینهها به آن اضافه میشوند.
هر پنل در بالا شامل کد SQL دقیق تولیدکننده آن است — یکی را باز کنید، نمادهایی را که واقعاً معامله میکنید جایگزین کنید و پلههای هزینه معامله خود را در ترمینال Strasmore قیمتگذاری کنید.