مفهوم و محاسبه شکاف قیمت خرید و فروش
آموزش کامل مفهوم bid-ask spread و نحوه محاسبه آن. با بررسی هزینههای واقعی معاملات در سهام آمریکا، با هزینههای پنهان در هر معامله آشنا شوید.
شکاف قیمت خرید و فروش (bid-ask spread) فاصله میان بالاترین قیمتی است که یک خریدار حاضر به پرداخت آن برای یک سهم است (bid) و پایینترین قیمتی که یک فروشنده حاضر به پذیرش آن است (ask). این شکاف، هزینه ذاتی معامله است: اگر در قیمت ask بخرید و در قیمت bid بفروشید، تفاوت این دو قیمت نزد ارائهدهنده قیمت باقی میماند. تمام ارقام مربوط به spread در این صفحه بر اساس دادههای لحظهای قیمت (tick-level) محاسبه شدهاند و پرسوجوی دقیق مربوط به هر عدد نیز به آن پیوست شده است.
اسپرد خرید و فروش چیست؟ تعریفی به زبان ساده
هر سهام در هر لحظه از روز معاملاتی، به جای یک قیمت، دارای دو قیمت است. قیمت خرید (bid) بهترین پیشنهاد موجود برای خرید است. قیمت فروش (ask) که گاهی «پیشنهاد فروش» نیز نامیده میشود، بهترین پیشنهاد موجود برای فروش است. اسپرد خرید و فروش، فاصله بین این دو قیمت است.
یک مثال فرضی: اگر قیمتی برای یک سهم برابر با 20.00 دلار برای خرید و 20.05 دلار برای فروش اعلام شود، اسپرد آن 5 سنت است. هر کسی که بخواهد بلافاصله خرید کند، 20.05 دلار میپردازد؛ و هر کسی که بخواهد بلافاصله بفروشد، 20.00 دلار دریافت میکند. این 5 سنت هزینه کارگزاری نیست، بلکه هزینه معامله فوری است و به معاملهگری تعلق میگیرد که در سمت مقابل قیمت قرار دارد؛ این فرد اغلب یک بازارگردان حرفهای است که در تمام طول جلسه معاملاتی آماده خرید با قیمت bid و فروش با قیمت ask است.
در سهام ایالات متحده، بهترین قیمت خرید و بهترین قیمت فروش در تمامی بورسها، در قالب یک قیمت واحد ملی تحت عنوان NBBO تجمیع میشوند. این همان قیمتی است که اپلیکیشن کارگزاری شما نمایش میدهد و این پست بر اساس آن دادهها محاسبه میشود. (در حوزه مالی، از واژه «اسپرد» برای شکافهای دیگر نیز استفاده میشود: برای مثال اسپرد 2s10s تفاوت بین بازده اوراق قرضه خزانهداری است، نه قیمت سهام.)
قیمت خرید در برابر قیمت فروش: نحوه خواندن قیمت یک سهم
در ادامه، یک رکورد واقعی از NBBO برای شرکت Apple آورده شده است؛ آخرین قیمت در پنجره دادههای ما که از فید یکپارچه استخراج شده است.
کد دقیق SQL پشت هر عدد
SELECT stock,
toDecimalString(bid, 2) AS bid_price,
toDecimalString(ask, 2) AS ask_price,
toDecimalString(ask - bid, 2) AS spread,
toDecimalString((ask + bid) / 2, 2) AS midpoint_price,
round((ask - bid) / ((ask + bid) / 2) * 100, 3) AS spread_pct,
quote_time_et
FROM (
SELECT ticker AS stock,
argMax(toFloat64(bid_price), sip_timestamp) AS bid,
argMax(toFloat64(ask_price), sip_timestamp) AS ask,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%Y-%m-%d %H:%i') AS quote_time_et
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)از چپ به راست بخوانید: بهترین قیمت خرید $334.75، بهترین قیمت فروش $334.81 و اختلاف قیمت یا spread — یعنی قیمت فروش منهای قیمت خرید — برابر با $0.06 در ساعت 2026-07-16 19:59 ET بود. نقطه میانی (midpoint) با مقدار $334.78، دقیقاً در میان این دو قرار دارد و معمولاً به عنوان مرجع ارزش منصفانه یک سهم در آن لحظه در نظر گرفته میشود.
نکتهای که ارزش توجه دارد: این قیمت در اواخر جلسه معاملاتی گسترده و ساعتها پس از صدای زنگ بسته شدن بازار ثبت شده است. زمانبندی برای spread اهمیت دارد؛ نمودار درونروزی که در ادامه میآید، میزان این اهمیت را نشان میدهد.
نحوه محاسبه spread: سنت، درصد و basis points
یک شکاف قیمتی یکسان را میتوان به سه روش بیان کرد:
- دلار و سنت. مقدار spread برابر است با قیمت ask منهای قیمت bid. این روش ساده است، اما مقایسه آن برای سهامی که قیمتهای متفاوتی دارند، دشوار است.
- درصد. مقدار spread تقسیم بر قیمت midpoint ضربدر 100. یک spread پنج سنتی برای سهامی با قیمت 20 دلار، معادل 0.25٪ از قیمت است؛ اما همین پنج سنت برای سهامی با قیمت 200 دلار، معادل 0.025٪ خواهد بود.
- basis points (bps). صدیم در هزار درصد — این روش مرسوم در بازارهای حرفهای است. درصد را در 100 ضرب کنید: 0.25٪ برابر با 25 bps است.
در مورد قیمت واقعی Apple که در بالا آمده است: تقسیم $0.06 بر $334.78 برابر با 0.018% از قیمت سهم است — این یک عدد مربوط به معاملات خارج از وقت بازار است و همچنان بسیار کمتر از 1٪ قیمت است.
شکافهای قیمتی کم در برابر شکافهای زیاد: اعداد واقعی در سهام پرنقدینگی و کمنقد
بسیاری از تحلیلها تنها به این نکته بسنده میکنند که «سهام پرنقدینگی دارای شکافهای قیمتی (spread) کم هستند». در اینجا اندازه واقعی این تفاوت، بر اساس تمامی بهروزرسانیهای NBBO در یک بازه زمانی چندروزه، اندازهگیری شده است. این جدول، شش نماد با حجم معاملات بالا را در کنار دو شرکت کوچک با نقدینگی بسیار کم، یعنی Nathan's Famous (NATH) و Seneca Foods (SENEA)، قرار میدهد. عبارت «معمول» به معنای میانه قیمت در آن بازه زمانی است و ستون آخر، آن شکاف را به دلار برای یک معامله رفت و برگشت 100 سهم تبدیل میکند؛ در واقع سنتهای هر سهم با دلار برای 100 سهم برابر است.
کد دقیق SQL پشت هر عدد
SELECT ticker,
round(median_spread_usd * 100, 1) AS typical_spread_cents,
round(median_spread_bps, 1) AS typical_spread_bps,
toDecimalString(median_spread_usd * 100, 2) AS spread_cost_100_shares
FROM (
SELECT ticker,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) AS median_spread_usd,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), toUInt64(sip_timestamp)) * 10000 AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA')
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA'], ticker)در میان نمادهای پرنقدینگی، شکاف قیمتی معمول SPY برابر با 2 سنت (0.3 bps از قیمت هر سهم) بود؛ در حالی که Coca-Cola با 1 سنت (1.2 bps) و Tesla با 9 سنت (2.3 bps) همراه بودند. سپس تفاوت فاحش پدیدار میشود: Nathan's Famous با 71 سنت (70.5 bps) و Seneca Foods با 230 سنت (133.3 bps) ثبت شدند. بازار و قوانین یکسان است، اما تفاوت در نقدینگی است: یعنی تعداد خریداران، فروشندگان و بازارگردانی که همزمان برای هر نماد در حال رقابت هستند.
هزینه spread در یک معامله واقعی
یک روش کاربردی برای درک میزان spread، محاسبه قیمت یک معامله رفت و برگشتی است: خرید در قیمت ask و فروش در قیمت bid در لحظهای بعد، باعث میشود در هر سهم، تمام میزان spread را از دست بدهید. نرخ تبدیل برای 100 سهم در جدول بالا آمده است؛ میزان معمول spread به سنت در هر سهم، معادل همان عدد به دلار است. برای شرکتهای شناختهشده، این هزینه بسیار ناچیز است: $4.00 برای 100 سهم Apple و $1.00 برای Coca-Cola. اما برای سهامهای کمحجم، هزینه متفاوت است: $71.00 برای Nathan's Famous و $230.00 برای Seneca Foods، پیش از احتساب هرگونه کمیسیون و پیش از آنکه سفارش باعث تغییر قیمت شود. این ارقام با فرض اجرای سفارش در قیمت نمایشدادهشده محاسبه شدهاند؛ سفارشهای بزرگتر از حجم نمایشدادهشده ممکن است هزینه بیشتری داشته باشند.
زمان گسترش spreadها: بازگشایی، بستهشدن و معاملات خارج از ساعت بازار
مقدار spreadها در طول روز ثابت نیست. نمودار زیر میانگین spread استعلامشده برای Apple را در بازههای 30 دقیقهای (به وقت Eastern Time) در همان بازه زمانی، شامل ساعات معاملاتی گسترده، ردیابی میکند؛ الگویی که اکثر تحلیلگران بر آن تأکید دارند اما هرگز آن را نمایش نمیدهند.
کد دقیق SQL پشت هر عدد
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_timeشکل نمودار مشابه یک حرف U با لبههای بلند است: قبل از بازگشایی بازار گسترده است، در اواسط روز بسیار کم است و پس از بستهشدن بازار دوباره افزایش مییابد. چهار نقطه بازبینی از این منحنی، بر اساس زمان ساعت، مشخص شده است:
کد دقیق SQL پشت هر عدد
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
HAVING et_time IN ('04:00', '09:30', '13:00', '16:00')
ORDER BY et_timeدر بازه ساعت 04:00 پیشبازگشایی — اولین بازه روز — میانگین spread شرکت Apple برابر با 34¢ بود. در بازه ساعت 09:30، یعنی اولین نیمساعت از معاملات عادی، این مقدار به 7¢ کاهش یافت و در بازه ساعت 13:00 در اوایل بعدازظهر، در سطح 4¢ قرار داشت. بازه ساعت 16:00 که همزمان با زنگ بستن بازار و مزایده بستهشدن آغاز میشود، به 15¢ افزایش یافت و این فاصله در طول عصر نیز بالا باقی ماند — در آخرین بازه از جلسه معاملاتی، مقدار آن 15¢ بود. در طول ساعات عادی (9:30 صبح تا 4 بعدازظهر به وقت ET) دهها بازارگرد در یک زمان برای این سهم استعلام قیمت میدهند؛ اما خارج از این ساعات — یعنی در طول معاملات پس از بازار و پیشبازگشایی — تعداد بسیار کمتری استعلام قیمت برای رقابت وجود دارد و در نتیجه فاصله قیمتها بیشتر است.
عوامل تعیینکننده در کم یا زیاد بودن spread
چهار عامل معمولاً با spread کم همگام هستند:
- رقابت. افزایش تعداد بازارگردانها و سفارشهای قائم در یک نماد، منجر به کاهش قیمتها در هر دو سمت میشود. در سهام کمحجم، ممکن است تنها یک قیمتگذار فعال، کل بازار را کنترل کند.
- حجم معاملات. حجم معاملات بالا و spread کم همواره با هم دیده میشوند؛ شکاف قیمتی در نمادهای پرمعامله، تنها بخش بسیار کوچکی از شکاف موجود در نمادهای کمحجم است.
- نوسان. در بازارهای پرشتاب، قیمتها مدام بازنگری میشوند و شکاف قیمتی تمایل دارد تا زمان آرام شدن معاملات، پهنتر باقی بماند.
- قیمت سهم و اندازه tick. سهام ایالات متحده با گامهای یک سنتی برای قیمتگذاری بالای 1 دلار انجام میشوند و یک سنت، کف قیمتی است؛ نقدترین سهامهای کمقیمت، بخش زیادی از روز را در این سطح ثابت میمانند. در یک سهم کمقیمت، همین حداقلِ یک سنتی، درصد بزرگتری از قیمت هر سهم را تشکیل میدهد.
چگونه هزینههای spread را پایین نگه دارید
- در سفارشهای limit قیمت را تعیین کنید. یک سفارش market هر قیمتی را که در نقلقول موجود باشد میپذیرد؛ اما یک سفارش limit تنها در قیمت اعلامشده یا قیمت بهتر اجرا میشود. یک سفارش خرید که در قیمت bid باقی میماند، به جای پرداخت spread، از آن سود میبرد (زمانی که فروشندهای برای انجام معامله مراجعه میکند)؛ نکته منفی این است که ممکن است این سفارش هرگز اجرا نشود.
- نامهای با نقدشوندگی بالا در ساعات معاملاتی عادی، ترکیب ارزانتری هستند. نمودار درونروزی بالا این مقیاس را نشان میدهد: در میانه روز، spread در سهام پرنقدشونده در کمترین میزان خود در طول جلسه معاملاتی قرار دارد.
- basis points آنچه را که سنتها پنهان میکنند، آشکار میکنند. شکافی که شبیه پول خرد به نظر میرسد، میتواند بخش قابل توجهی از یک درصد در یک سهم کمحجم یا با قیمت پایین باشد، همانطور که ردیفهای مربوط به small-cap در بالا نشان میدهند.
- تعداد کمتر از round tripها به معنای هزینه کمتر است. هر round trip یک بار spread را پرداخت میکند؛ هزینه کل با میزان گردش یک موقعیت معاملاتی افزایش مییابد.
سوالات متداول درباره اختلاف قیمت خرید و فروش (Bid-ask spread)
اختلاف قیمت خرید و فروش مناسب چقدر است؟
هیچ حد مشخص و رسمی وجود ندارد، اما جدول بالا مقیاس را نشان میدهد: در بازه زمانی اندازهگیری شده، اختلاف قیمت معمول برای SPY معادل 0.3 bps از قیمت هر سهم و برای Tesla معادل 2.3 bps بود، در حالی که سهامهای کوچک با نقدشوندگی کم، به 70.5 و 133.3 bps رسیدند. اختلاف قیمت در حد یک رقم واحد (basis points) بسیار کم است؛ زمانی که اختلاف قیمت به حدود 1٪ قیمت سهم میرسد، استفاده از سفارشهای محدود (limit order) توجیهپذیر است.
چه کسی اختلاف قیمت خرید و فروش را دریافت میکند؟
هر کسی که قیمت را ارائه میدهد — که معمولاً یک گردآورنده بازار است — با تکمیل شدن هر دو سمت قیمت خود، این اختلاف را به عنوان سود کسب میکند. این مبلغ بابت آمادگی برای معامله در هر زمان است، نه کارمزدی که توسط کارگزار یا بورس دریافت میشود.
آیا اختلاف قیمت خرید و فروش زیاد، خوب است یا بد؟
اختلاف قیمت زیاد، هزینه هر معامله رفت و برگشتی را افزایش میدهد؛ همانطور که ستون هزینه 100 سهم در جدول بالا نشان میدهد. همچنین اختلاف قیمت زیاد حامل اطلاعات است: تعداد شرکتکنندگان در ارائه قیمت کمتر است و آخرین قیمت معامله، تخمین ضعیفتری از قیمتی است که سفارش شما واقعاً با آن اجرا میشود.
چرا قیمت فروش (ask) بالاتر از قیمت خرید (bid) است؟
این یک ساختار ذاتی است. قیمت bid بهترین قیمتی است که خریداران پرداخت میکنند و قیمت ask بهترین قیمتی است که فروشندگان میپذیرند؛ هر زمان که این دو قیمت با هم تلاقی کنند، بورس بلافاصله آنها را در یک معامله تطبیق داده و قیمت جدید جایگزین میشود. یک قیمت ثابت همواره قیمت ask را در سطح یا بالاتر از bid نشان میدهد.
آیا اختلاف قیمت خرید و فروش برای سرمایهگذاران بلندمدت اهمیت دارد؟
برای این افراد اهمیت کمتری نسبت به معاملهگران فعال دارد و دادهها این مقیاس را نشان میدهند: یک معامله رفت و برگشتی 100 سهم در SPY، هزینه اختلاف قیمت معمول معادل $2.00 داشت. پرداخت چنین مبلغی یک بار در دهه، ناچیز است؛ اما پرداخت اختلاف قیمت در سهامهای کمنقدشوندگی در هر هفته، به مبالغ قابل توجهی تبدیل میشود.
تمام اعداد بالا از یک پرسوجوی ذخیرهشده و قابل بررسی استخراج میشوند — برای بازبینی، بخش SQL زیر هر پنل را باز کنید. برای اندازهگیری اختلاف قیمت یک نماد که مالک آن هستید، همان سوالات را به زبان ساده در ترمینال Strasmore بپرسید.