تفاوت سفارش حد ضرر و حد ضرر محدود در معاملات
سفارش حد ضرر به بازار تبدیل شده و قیمت را تضمین نمیکند، اما سفارش حد ضرر محدود با تعیین قیمت، ریسک عدم انجام معامله را دارد. دادههای پنج ساله نشانگر این تفاوت است.
سفارش حد ضرر (Stop order) و سفارش حد ضرر محدود (Stop-limit order) هر دو تا زمانی که بازار به قیمت انتخابی شما نرسد، غیرفعال باقی میمانند و دقیقاً در لحظه رسیدن به آن قیمت، مسیرشان از هم جدا میشود. سفارش حد ضرر به یک سفارش بازار (Market order) تبدیل شده و هر قیمتی که در دسترس باشد را میپذیرد، فارغ از اینکه چقدر با قیمت ماشه (Trigger) شما فاصله داشته باشد. سفارش حد ضرر محدود به یک سفارش محدود (Limit order) با قیمت تعیینشده توسط شما تبدیل میشود و اگر قیمت بازار از آن بدتر باشد، معامله انجام نمیشود. یکی اولویت را به انجام معامله میدهد و دیگری به قیمت؛ هیچکدام هر دو را تضمین نمیکنند.
سفارش حد ضرر چیست؟
سفارش حد ضرر دستوری است که نزد کارگزار خود میگذارید: «زمانی که قیمت سهم به قیمت حد ضرر من رسید یا از آن عبور کرد، یک سفارش بازار ارسال کن.» تا زمانی که آن معامله (Print) ثبت نشود، سفارش هیچ کاری انجام نمیدهد. این سفارش در دفتر سفارشات بورس قرار نمیگیرد، هیچ معاملهگر دیگری آن را نمیبیند و نقدینگی در قیمت شما ایجاد نمیکند. اکثر سفارشهای حد ضرر مشتریان خرد در سامانههای داخلی کارگزار باقی میمانند و تنها پس از تحقق شرط ماشه به بورس ارسال میشوند.
پس از فعالسازی، این سفارش به یک سفارش بازار ساده بدون کف قیمتی تبدیل میشود و بهترین پیشنهادهای موجود را تا تکمیل حجم سفارش شما برمیدارد. در بازاری عمیق و با اسپرد کم، این کار تنها یک پنی هزینه دارد. در بازاری کمحجم یا پرنوسان، این هزینه میتواند چندین درصد باشد. تفاوت بین سفارش بازار و سفارش محدود تمام ماجرای اتفاقات پس از ماشه را توضیح میدهد، زیرا سفارش حد ضرر تمام ویژگیهای سفارشی را که به آن تبدیل میشود، به ارث میبرد.
سفارش حد ضرر محدود چیست؟
سفارش حد ضرر محدود شامل دو قیمت است. قیمت حد ضرر همان ماشه است و دقیقاً مانند قبل عمل میکند. قیمت محدود (Limit price) بدترین قیمتی است که پس از فعال شدن سفارش میپذیرید. هنگامی که قیمت ماشه ثبت شود، کارگزار شما بهجای سفارش بازار، یک سفارش محدود با آن قیمت محدود ارسال میکند.
از آنجا به بعد، این سفارش مانند هر سفارش محدود دیگری رفتار میکند: در قیمت محدود شما یا بهتر از آن اجرا میشود و تا زمانی که قیمت بازار پایینتر از آن باشد، منتظر میماند. اگر قیمت هرگز بازنگردد، سفارش تا پایان زمان اعتبار خود باقی مانده و با باز ماندن موقعیت معاملاتی منقضی میشود. تعیین قیمت محدود برابر با قیمت حد ضرر، سختگیرانهترین حالت است و بیشترین احتمال عدم اجرا را دارد. تعیین قیمت محدود بسیار پایینتر از قیمت حد ضرر، حالتی منعطفتر است که به سفارش حد ضرر با یک کف قیمتی شباهت دارد.
سفارش حد ضرر در مقابل حد ضرر محدود در شکاف قیمتی (Gap)
یک مثال فرضی را در نظر بگیرید. سهمی در قیمت 50 دلار بسته شده و شما یک حد ضرر در 48 دلار دارید. صبح روز بعد، اولین معامله در 41 دلار انجام میشود. سفارش حد ضرر در قیمت بازگشایی فعال شده و در نزدیکی 41 دلار اجرا میشود. قیمت 48 دلار شما هرگز در دسترس نبود و سفارش هرگز آن را درخواست نکرد. یک سفارش حد ضرر محدود در 48 دلار با قیمت محدود 47.50 دلار نیز در بازگشایی فعال میشود، اما یک پیشنهاد فروش در 47.50 دلار در بازاری که در 41 دلار معامله میشود، ثبت میکند. هیچ معاملهای انجام نمیشود و شما همچنان سهم را در قیمت 41 دلار دارید، در حالی که سفارشی فعال دارید که شش و نیم دلار بالاتر از قیمت بازار است.
چنین حرکتی برای سهام با ارزش بازار بزرگ (Large-cap) نادر است. اما برای سهام کوچک، این اتفاقی معمول است و سفارش حد ضرر تنها به همین نوع حرکت کوچک نیاز دارد تا فعال شود. جدول زیر برای پنج نماد شناختهشده در طول پنج سال منتهی به ژوئیه 2026، دفعاتی را شمارش میکند که قیمت بازگشایی حداقل یک درصد و حداقل سه درصد پایینتر از قیمت بسته شدن روز قبل بوده است. تاریخهای تقسیم سهام از این مقایسه حذف شدهاند: یک تقسیم 10 به 1، یک سهم را به ده سهم تبدیل کرده و قیمت را حدود نود درصد کاهش میدهد که یک تغییر محاسباتی است، نه یک شکاف قیمتی. چرا سهام در طول شب شکاف قیمتی ایجاد میکنند به بررسی جلسات معاملاتی شبانه میپردازد.
کد دقیق SQL پشت هر عدد
WITH sessions AS
(
SELECT
ticker,
date,
toFloat64(open) AS open_px,
toFloat64(close) AS close_px,
row_number() OVER (PARTITION BY ticker ORDER BY date) AS session_n,
row_number() OVER (PARTITION BY ticker ORDER BY date) + 1 AS next_session_n
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND date >= '2021-08-01'
AND date < '2026-08-01'
)
SELECT
cur.ticker AS symbol,
round(100 * countIf(cur.open_px <= prior.close_px * 0.99) / count(), 1) AS opened_1pct_lower_pct,
round(100 * countIf(cur.open_px <= prior.close_px * 0.97) / count(), 1) AS opened_3pct_lower_pct
FROM sessions AS cur
INNER JOIN sessions AS prior
ON cur.ticker = prior.ticker
AND cur.session_n = prior.next_session_n
WHERE (cur.ticker, cur.date) NOT IN
(
SELECT ticker, execution_date
FROM global_markets.stocks_splits
)
GROUP BY symbol
ORDER BY opened_1pct_lower_pct DESCدر آن بازه زمانی، NVDA در 22.1% از جلسات، حداقل یک درصد پایینتر از قیمت بسته شدن روز قبل باز شد و در 3.4% از جلسات، حداقل سه درصد پایینتر بود. در انتهای آرام این جدول، KO این کار را در 2.3% از جلسات انجام داد. یک سفارش حد ضرر که در نزدیکی قیمت بازار قرار دارد، تنها یک جلسه معاملاتی شبانه با فعال شدن فاصله دارد.
حجم، عاملی است که این دو نوع سفارش را از هم جدا میکند و نیمساعت اول، جایی است که این تفاوت هزینهبر میشود. جدول بعدی 8 شکاف قیمتی بزرگ نزولی که NVDA در طول همان پنج سال تجربه کرده را نشان میدهد. هر ردیف شامل دو اندازهگیری است: قیمت بازگشایی نسبت به قیمت بسته شدن روز قبل، و پایینترین قیمت در سی دقیقه اول معاملات عادی نسبت به همان قیمت بازگشایی.
کد دقیق SQL پشت هر عدد
WITH sessions AS
(
SELECT
date,
toFloat64(open) AS open_px,
toFloat64(close) AS close_px,
row_number() OVER (ORDER BY date) AS session_n,
row_number() OVER (ORDER BY date) + 1 AS next_session_n
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'NVDA'
AND date >= '2021-08-01'
AND date < '2026-08-01'
),
gap_days AS
(
SELECT
cur.date AS d,
round(100 * (cur.open_px / prior.close_px - 1), 2) AS gap_pct
FROM sessions AS cur
INNER JOIN sessions AS prior ON cur.session_n = prior.next_session_n
WHERE cur.date NOT IN
(
SELECT execution_date
FROM global_markets.stocks_splits
WHERE ticker = 'NVDA'
)
ORDER BY gap_pct ASC
LIMIT 8
),
opening_30m AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS first_print,
min(toFloat64(low)) AS low_30m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= '2021-08-01'
AND window_start < '2026-08-01'
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM gap_days)
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 600
GROUP BY d
)
SELECT
toString(g.d) AS session_date,
g.gap_pct AS open_vs_prior_close_pct,
round(100 * (o.low_30m / o.first_print - 1), 2) AS first_30m_low_vs_open_pct
FROM gap_days AS g
INNER JOIN opening_30m AS o ON o.d = g.d
ORDER BY g.dدر 2025-04-16، که جدیدترین آنهاست، قیمت بازگشایی -6.82% نسبت به قیمت بسته شدن روز قبل بود و پایینترین قیمت نیمساعت اول، -0.19% نسبت به قیمت بازگشایی بود. قدیمیترین ردیف، 2022-02-24، در -6.13% باز شد. سفارش حد ضرری که در یکی از آن صبحها فعال شود، جایی در آن محدوده اجرا میشود و دارنده آن هیچ کنترلی بر قیمت نخواهد داشت.
آیا سفارش حد ضرر محدود در ادامه روز اجرا میشود؟
گاهی اوقات. سفارش محدودی که در بازگشایی اجرا نشده، همچنان فعال است و اگر قیمت پیش از انقضای سفارش بازگردد، میتواند اجرا شود. پرسش اینجاست که چند بار در همان روز قیمت بازمیگردد.
جدول زیر یک فرضیه ثابت را برای همان نمادها اعمال میکند: حد ضرر دو درصد پایینتر از قیمت بسته شدن روز قبل، با قیمت محدود یک درصد پایینتر از حد ضرر. این جدول تنها جلساتی را نگه میدارد که پایینتر از هر دو قیمت باز شدهاند؛ یعنی حالتی که ماشه در بازگشایی فعال شده و قیمت محدود از دسترس خارج است، سپس بررسی میکند که آیا سقف قیمت روزانه به قیمت محدود رسیده است یا خیر.
کد دقیق SQL پشت هر عدد
WITH sessions AS
(
SELECT
ticker,
date,
toFloat64(open) AS open_px,
toFloat64(high) AS high_px,
toFloat64(close) AS close_px,
row_number() OVER (PARTITION BY ticker ORDER BY date) AS session_n,
row_number() OVER (PARTITION BY ticker ORDER BY date) + 1 AS next_session_n
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND date >= '2021-08-01'
AND date < '2026-08-01'
)
SELECT
cur.ticker AS symbol,
count() AS gapped_through_sessions,
round(100 * countIf(cur.high_px >= prior.close_px * 0.9702) / count(), 1) AS reached_limit_intraday_pct
FROM sessions AS cur
INNER JOIN sessions AS prior
ON cur.ticker = prior.ticker
AND cur.session_n = prior.next_session_n
WHERE cur.open_px < prior.close_px * 0.9702
AND (cur.ticker, cur.date) NOT IN
(
SELECT ticker, execution_date
FROM global_markets.stocks_splits
)
GROUP BY symbol
ORDER BY reached_limit_intraday_pct DESCKO در 100% از 2 روزی که شکاف قیمتی داشت، در همان جلسه به قیمت محدود بازگشت که بالاترین سهم در میان 5 نمادی بود که چنین وضعیتی داشتند. MSFT در 66.7% بازگشت. لمس یک قیمت به معنای اجرا در آن نیست: سفارش شما در آنجا به صف میپیوندد و یک نوسان لحظهای از آن سطح ممکن است تنها سفارشهای پیش از شما را پاکسازی کند. برای نسخه طولانیتر این پرسش، به آیا شکافهای قیمتی سهام پر میشوند مراجعه کنید.
چه چیزی واقعاً باعث فعال شدن حد ضرر میشود
شرط ماشه محدودتر از آن چیزی است که در برگه سفارش به نظر میرسد. در اکثر کارگزاریها، حد ضرر فروش با ثبت آخرین معامله (Last-sale print) در قیمت حد ضرر یا پایینتر از آن فعال میشود. قیمت پیشنهادی خرید (Bid) میتواند برای یک دقیقه از سطح شما پایینتر برود بدون اینکه حتی یک معامله در آنجا انجام شود و سفارش شما غیرفعال باقی بماند، اما یک معامله کوچک میتواند آن را بیدار کند. در بسیاری از کارگزاریها، معاملات خرد (Odd lots) نیز شمرده میشوند، بنابراین یک معامله 7 سهمی در یک قیمت پرت کافی است.
دو وضعیت این امر را شکننده میکند. قیمتهای پیشنهادی در بازگشایی در وسیعترین حالت روزانه خود قرار دارند، الگویی که چرا اسپردها در بازگشایی وسیع میشوند به تفصیل بررسی میکند. بازگشاییها پس از توقف معاملاتی نیز مشابه هستند، بهطوری که اولین معامله با فاصله زیادی از آخرین معامله پیش از توقف انجام میشود.
زمانبندی به اندازه سطح قیمت اهمیت دارد. جدول زیر اندازهگیری میکند که یک کندل یکدقیقهای، از سقف تا کف، در هر نیمساعت از جلسه معاملاتی چند واحد پایه (Basis points) حرکت میکند. یک واحد پایه، یکصدم درصد است، بنابراین 50 واحد پایه معادل نیم درصد قیمت است.
کد دقیق SQL پشت هر عدد
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(avgIf(10000 * (toFloat64(high) - toFloat64(low)) / toFloat64(close), ticker = 'NVDA'), 1) AS nvda_range_bps,
round(avgIf(10000 * (toFloat64(high) - toFloat64(low)) / toFloat64(close), ticker = 'SPY'), 1) AS spy_range_bps
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('NVDA', 'SPY')
AND window_start >= '2025-08-01'
AND window_start < '2026-08-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY et_time
HAVING countIf(ticker = 'NVDA') > 0
AND countIf(ticker = 'SPY') > 0
ORDER BY et_timeبرای NVDA، بازه 09:30 بهطور میانگین 28.5 واحد پایه حرکت در دقیقه دارد، در حالی که این مقدار در بازه 10 برابر با 12:30 واحد پایه است. SPY، که ابزاری بسیار گستردهتر است، در بازگشایی 7 واحد پایه و در همان ساعت میانی روز 3.9 واحد پایه حرکت دارد. سفارش حد ضرری که از شب جان سالم به در برده، در اولین بازه از این دستهها فعال میشود.
چگونه زمان اعتبار (Time in force) حد ضرر را تغییر میدهد
سفارش حد ضرر مانند هر سفارش دیگری دارای زمان اعتبار است. حد ضرر روزانه (Day stop) در پایان روز منقضی میشود و باید صبح روز بعد دوباره وارد شود. حد ضرر معتبر تا زمان لغو (GTC) در طول جلسات باقی میماند، مشروط به اینکه کارگزار شما چه تاریخی برای انقضای سفارشهای معلق تعیین کرده باشد. حرکتی که باعث فعال شدن حد ضرر میشود، اغلب در طول شب رخ میدهد، دقیقاً زمانی که سفارش روزانه دیروز دیگر وجود ندارد. توضیح زمان اعتبار سفارش سفارشهای روزانه، GTC و انواع ساعات معاملاتی تمدیدشده را بررسی میکند.
بسیاری از کارگزاریها همچنین ماشههای حد ضرر را تنها در طول جلسه عادی ارزیابی میکنند، مگر اینکه سفارش برای ساعات تمدیدشده علامتگذاری شده باشد. یک سهم میتواند در ساعت 7 صبح پنج درصد پایینتر معامله شود، در حالی که حد ضرر تا زمان بازگشایی غیرفعال باقی میماند.
حد ضرر متحرک (Trailing stop) و حد ضرر روی اختیار معامله
حد ضرر متحرک از همان منطق ماشه با یک مرجع متحرک استفاده میکند. شما یک فاصله به سنت یا درصد تعیین میکنید و ماشه بهترین قیمت رسیده از زمان ورود را دنبال میکند، که فقط در یک جهت حرکت میکند و هرگز برنمیگردد. این نوع سفارش هم به صورت حد ضرر متحرک و هم حد ضرر محدود متحرک وجود دارد و در لحظه فعال شدن، همان بدهبستان (Trade-off) را به ارث میبرد.
اختیار معامله (Options) مورد دشوارتری است. قیمتهای پیشنهادی اختیار معامله وسیعتر از سهام شروع میشوند و در بازارهای پرنوسان بیشتر کش میآیند. قیمت قرارداد با دارایی پایه، زمان و نوسان ضمنی (Implied volatility) تغییر میکند. حد ضرر روی یک قرارداد میتواند با یک معامله در بازاری که قیمت خرید و فروش آن دلارها با هم فاصله دارند، فعال شود. برخی کارگزاریها انواع حد ضرر را برای اختیار معامله محدود میکنند.
پرسشهای متداول
آیا سفارش حد ضرر قیمت من را تضمین میکند؟
خیر. سفارش حد ضرر تنها تضمین میکند که پس از ثبت ماشه، سفارشی ارسال شود و در هر قیمتی که دفتر سفارشات ارائه دهد اجرا شود، که پس از یک شکاف قیمتی میتواند بسیار پایینتر از قیمت حد ضرر باشد. سفارش حد ضرر محدود، قیمت را تضمین میکند و از تضمین انجام معامله صرفنظر میکند.
آیا سفارش حد ضرر محدود بهتر از سفارش حد ضرر است؟
آنها به پرسشهای متفاوتی پاسخ میدهند. سفارش حد ضرر، خروج از موقعیت را اولویت قرار میدهد. سفارش حد ضرر محدود، قیمت خروج را اولویت قرار میدهد و میپذیرد که موقعیت ممکن است باز بماند. ریسک از قیمت به تکمیل معامله منتقل میشود، نه اینکه ناپدید شود.
آیا معاملهگران دیگر میتوانند سفارش حد ضرر من را ببینند؟
به عنوان یک حد ضرر، خیر. حد ضرر نزد کارگزار در سامانههای او باقی میماند و تا زمانی که ماشه آن را فعال نکند، در هیچ دفتر بورس ظاهر نمیشود. آنچه بازار پس از آن میبیند، یک سفارش بازار یا محدود عادی است.
چه قیمتی سفارش حد ضرر را فعال میکند؟
در اکثر کارگزاریها، حد ضرر فروش با ثبت آخرین معامله در قیمت حد ضرر یا پایینتر از آن، و حد ضرر خرید با ثبت معامله در قیمت حد ضرر یا بالاتر از آن فعال میشود. قوانین مبتنی بر قیمتهای پیشنهادی نیز وجود دارند و یک معامله خرد میتواند کافی باشد. افشای نحوه مدیریت سفارشات کارگزار شما مشخص میکند که کدام قانون برای حساب شما اعمال میشود.
هر جدول در اینجا شامل کد SQL است که آن را تولید کرده است. نماد یا آستانه شکاف قیمتی را تغییر دهید تا همان پرسش برای نمادهایی که دنبال میکنید، به زبان ساده در ترمینال Strasmore پاسخ داده شود.