مواعيد فتح وإغلاق سوق الأسهم
متى يفتح سوق الأسهم ويغلق؟ تمتد ساعات التداول العادية في NYSE وNasdaq من 9:30 صباحاً إلى 4:00 مساءً بالتوقيت الشرقي، مع تداول قبل الافتتاح وبعده، وتغلق السوق في عطلات نهاية الأسبوع.
تمتد ساعات سوق الأسهم الأميركي من 9:30 صباحاً إلى 4:00 مساءً بالتوقيت الشرقي، من الاثنين إلى الجمعة. وتفتتح بورصتا NYSE وNasdaq التداول المنتظم في الساعة 9:30 صباحاً بالتوقيت الشرقي، وتغلقانه في الساعة 4:00 مساءً بالتوقيت الشرقي. وتحيط بهذه الجلسة المنتظمة نافذتان للتداول الممتد: تداول ما قبل افتتاح السوق ابتداءً من الساعة 4:00 صباحاً بالتوقيت الشرقي، وتداول ما بعد الإغلاق حتى الساعة 8:00 مساءً بالتوقيت الشرقي. وتغلق الأسواق في عطلات نهاية الأسبوع وفي نحو عشرة أيام عطلة سنوياً. تستند كل أرقام هذه الصفحة إلى سجلات تداول فعلية، ويمكن الوصول إلى الاستعلام الدقيق وراء كل رقم بنقرة واحدة. (للاطلاع على النسخة المختصرة، ومعرفة موعد الإغلاق المقبل وآخر جلسة تداول، انظر هل سوق الأسهم مفتوح اليوم.)
متى يفتح سوق الأسهم ويغلق؟
تمتد جلسة التداول العادية، وهي الساعات التي تصفها الأسعار المعلنة ومستويات المؤشرات ونشرات الأخبار المسائية، من جرس الافتتاح عند الساعة 9:30 صباحاً بالتوقيت الشرقي إلى جرس الإغلاق عند الساعة 4:00 مساءً بالتوقيت الشرقي. وتستمر الجلسة ست ساعات ونصف، خمسة أيام في الأسبوع. وتلتزم بورصتا الإدراج الرئيسيتان في الولايات المتحدة بالمواعيد نفسها، كما يعمل أمر الوساطة المعتاد ضمن هذه الفترة افتراضياً.
يمتد يوم التداول الإلكتروني الكامل إلى ما قبل الجرسين وما بعدهما:
- التداول قبل الافتتاح: من الساعة 4:00 صباحاً إلى 9:30 صباحاً بالتوقيت الشرقي، وهو تداول إلكتروني يسبق جرس الافتتاح.
- الجلسة العادية: من الساعة 9:30 صباحاً إلى 4:00 مساءً بالتوقيت الشرقي، حيث تُنفَّذ معظم معاملات اليوم.
- التداول بعد الإغلاق: من الساعة 4:00 مساءً إلى 8:00 مساءً بالتوقيت الشرقي، وهو تداول إلكتروني يلي جرس الإغلاق.
وتحدد مزادات اثنان بداية اليوم العادي ونهايته. يحدد مزاد الافتتاح السعر الرسمي لافتتاح كل سهم عند الساعة 9:30 صباحاً. أما مزاد الإغلاق، وهو صفقة مطابقة واحدة ضخمة تُنفَّذ بعد لحظات من الساعة 4:00 مساءً، فيحدد سعر الإغلاق الرسمي الذي تُقتبس به الأسعار في كل مكان مساءً. جميع الأوقات الواردة في هذه الصفحة بالتوقيت الشرقي. وتُجرى الجلسة العادية نفسها من الساعة 6:30 صباحاً إلى 1:00 ظهراً على الساحل الغربي للولايات المتحدة.
كيف تبدو ساعات سوق الأسهم على شريط التداول؟
التعريفات شيء، لكن شريط التداول هو الدليل. تعرض اللوحات أدناه جلسة حديثة كاملة على شريط SPY، 2026-10-14، وهي Wednesday، أي أحدث جلسة مضى عليها وقت يكفي لاكتمال سجلها، إذ يتأخر تدفق البيانات يوماً أو يومين. وقد جرى التحقق من ذلك عبر عدّ أشرطة الدقائق الخاصة بالجلسة النظامية: 390 شريطاً، واحد لكل دقيقة بين قرعي جرس الافتتاح والإغلاق. ظهر أول شريط في الجلسة عند 04:00 بالتوقيت الشرقي، وآخر شريط عند 19:59 بالتوقيت الشرقي. ويمتد شريط التداول عبر اليوم الممتد بأكمله، من الساعة 4:00 صباحاً إلى الساعة 8:00 مساءً.
| تاريخ الجلسة | يوم الأسبوع | أشرطة الجلسة العادية | دقيقة أول شريط من اليوم | دقيقة آخر شريط من اليوم | وقت أول شريط ET | وقت آخر شريط ET | إجمالي الأسهم m | نسبة ما قبل الافتتاح | النسبة العادية | نسبة 30 دقيقة بعد الإغلاق | نسبة المساء | نسبة أول 30 دقيقة | نسبة آخر 30 دقيقة | نسبة نصف ساعة منتصف اليوم |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-14 | Wednesday | 390 | 240 | 1199 | 04:00 | 19:59 | 55.7 | 2.6 | 86.2 | 9 | 2.1 | 8.1 | 25.1 | 3.5 |
استعلام SQL الدقيق وراء كل رقم
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
toString(session_day) AS session_date,
formatDateTime(session_day, '%W') AS weekday,
b.regular_session_bars AS regular_session_bars,
b.first_bar_minute_of_day AS first_bar_minute_of_day,
b.last_bar_minute_of_day AS last_bar_minute_of_day,
b.first_bar_et AS first_bar_et,
b.last_bar_et AS last_bar_et,
t.total_shares_m AS total_shares_m,
t.premarket_pct AS premarket_pct,
t.regular_pct AS regular_pct,
t.post_close_30min_pct AS post_close_30min_pct,
t.evening_pct AS evening_pct,
t.first_30min_pct AS first_30min_pct,
t.last_30min_pct AS last_30min_pct,
t.midday_half_hour_pct AS midday_half_hour_pct
FROM
(
SELECT
countIf(et_min >= 570 AND et_min < 960) AS regular_session_bars,
min(et_min) AS first_bar_minute_of_day,
max(et_min) AS last_bar_minute_of_day,
formatDateTime(min(et_ts), '%H:%i') AS first_bar_et,
formatDateTime(max(et_ts), '%H:%i') AS last_bar_et
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et_ts,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) = session_day
)
) AS b
CROSS JOIN
(
SELECT
round(sum(shares) / 1e6, 1) AS total_shares_m,
round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1) AS premarket_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 960)) / sum(shares), 1) AS regular_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 960 AND et_min < 990) / sum(shares), 1) AS post_close_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 990) / sum(shares), 1) AS evening_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 930 AND et_min < 960)) / sum(shares), 1) AS last_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 750 AND et_min < 780) / sum(shares), 1) AS midday_half_hour_pct
FROM
(
SELECT
toFloat64(size) AS shares,
has(conditions, 8) AS is_close,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
+ toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
AND sip_timestamp < toDateTime(session_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
)
) AS tيوضح توزيع أحجام التداول الدرس الأساسي. إذ يُقاس صفقةً بصفقة من شريط التداول الموحّد، ويُحتسب تنفيذ مزاد الإغلاق ضمن الجلسة النظامية التي يختتمها. ومن أصل 55.7 مليون سهم من SPY جرى تداولها خلال فترة الساعات الست عشرة كاملة، نفذت الجلسة النظامية 86.2% منها. وسجّلت فترة ما قبل افتتاح السوق، ومدتها خمس ساعات ونصف، 2.6%. أما النصف ساعة التي تلت جرس الإغلاق مباشرة فسجّلت 9%. وتلتقط هذه الفترة صفقات كبيرة متفاوضاً عليها أُبلغ بها شريط التداول بعد انتهاء الجلسة. وسجّلت الساعات المسائية الثلاث والنصف المتبقية 2.1% مجتمعة.
توضح شرائح النصف ساعة شكل اليوم:
| نصف ساعة ET | الأسهم m |
|---|---|
| 04:00 | 0.05 |
| 04:30 | 0.02 |
| 05:00 | 0.01 |
| 05:30 | 0 |
| 06:00 | 0.02 |
| 06:30 | 0.01 |
| 07:00 | 0.05 |
| 07:30 | 0.02 |
| 08:00 | 0.13 |
| 08:30 | 0.83 |
| 09:00 | 0.33 |
| 09:30 | 4.52 |
| 10:00 | 2.77 |
| 10:30 | 2.46 |
| 11:00 | 2.76 |
| 11:30 | 2.16 |
| 12:00 | 2.84 |
| 12:30 | 1.97 |
| 13:00 | 1.97 |
| 13:30 | 3.77 |
استعلام SQL الدقيق وراء كل رقم
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
formatDateTime(toStartOfInterval(if(has(conditions, 8),
toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
toTimeZone(sip_timestamp, 'America/New_York')),
INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(session_day, 'America/New_York')
AND sip_timestamp < toDateTime(session_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hourفي هذه الجلسة، سجّل النصف ساعة الأخير، بما في ذلك تنفيذ مزاد الإغلاق، 25.1% من إجمالي حجم التداول اليومي، مقابل 3.5% لنصف الساعة الممتد من 12:30 إلى 1:00 ظهراً. أما النصف ساعة الافتتاحي فسجّل 8.1%. وللإغلاق الكثيف أساس آلي واضح: تتداول صناديق المؤشرات والصناديق المشتركة والمؤسسات التي تتبع مؤشرات مرجعية وفق أسعار الإغلاق الرسمية، وتتجمع أوامرها في مزاد الإغلاق. وبذلك، توزّع حجم التداول على 32 شريحة متميزة من شرائح النصف ساعة خلال اليوم الممتد.
ما التداول في السوق قبل الافتتاح وبعد الإغلاق؟
التداول قبل الافتتاح (من الساعة 4:00 صباحاً إلى 9:30 صباحاً بتوقيت ET) والتداول بعد الإغلاق (من الساعة 4:00 مساءً إلى 8:00 مساءً بتوقيت ET) هما فترتا تداول إلكتروني فقط تحيطان بجلسة التداول اليومية العادية. يكون عدد المشاركين أقل خلالهما، وتتسع فروق أسعار الشراء والبيع، ولا يقبل معظم الوسطاء في هاتين الجلستين إلا أوامر الحد. وتتركز أخبار الشركات خلالهما؛ إذ تتوالى إعلانات الأرباح بعد إغلاق الساعة 4:00 مساءً مباشرةً وفي الساعات التي تسبق الافتتاح، وهي الفترات التي يمكن أن يقفز فيها سعر السهم بعيداً عن سعر إغلاقه السابق. ولا يضمن السعر المسجل عند الساعة 7:00 مساءً المستوى الذي سيفتتح عنده السهم في صباح اليوم التالي.
تجد في التداول بعد الإغلاق وقبل الافتتاح، وهو المقال المكمّل لهذه الصفحة، حصص حجم التداول بحسب كل جلسة، وتكاليف فروق أسعار الشراء والبيع المقاسة، والتوقيت الذي تصل فيه الأخبار فعلياً. والخلاصة المختصرة، كما تظهر في اللوحات أعلاه، هي أن الجلسات الممتدة حقيقية وقابلة للتداول، لكنها منخفضة السيولة مقارنةً بالجلسة العادية.
ما هي ساعات تداول الخيارات والعقود الآجلة؟
تتداول خيارات الشركات الفردية من الساعة 9:30 صباحاً إلى الساعة 4:00 مساءً بتوقيت ET، من دون جلسة ما قبل الافتتاح أو تداولات بعد الإغلاق. أما خيارات قائمة محدودة من صناديق ETF واسعة السوق ومنتجات المؤشرات، مثل SPY وQQQ وIWM، وخيارات المؤشرات مثل SPX وVIX، فتحصل على 15 دقيقة إضافية، حتى الساعة 4:15 مساءً بتوقيت ET. ويُظهر شريط التداول هذا الانقسام على 2026-10-14، وهي الجلسة نفسها التي قيسَت أعلاه:
| العقد | تاريخ الجلسة | التداولات من 3:45 إلى 4:00 | التداولات من 4:00 إلى 4:15 | وقت آخر تداول ET | دقيقة آخر تداول من اليوم |
|---|---|---|---|---|---|
| AAPL options (single name) | 2026-10-14 | 11803 | 3 | 16:00 | 960 |
| SPY options (ETF) | 2026-10-14 | 64434 | 29698 | 16:14 | 974 |
استعلام SQL الدقيق وراء كل رقم
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 21
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars = 390
)
) AS session_day
SELECT
if(startsWith(ticker, 'O:SPY'), 'SPY options (ETF)', 'AAPL options (single name)') AS contract,
toString(session_day) AS session_date,
countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')) AS trades_345_to_400,
countIf(sip_timestamp >= toDateTime(concat(toString(session_day), ' 16:00:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 16:15:00'), 'America/New_York')) AS trades_400_to_415,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%H:%i') AS last_trade_et,
toHour(toTimeZone(max(sip_timestamp), 'America/New_York')) * 60
+ toMinute(toTimeZone(max(sip_timestamp), 'America/New_York')) AS last_trade_minute_of_day
FROM global_markets.options_trades
WHERE (startsWith(ticker, 'O:SPY') OR startsWith(ticker, 'O:AAPL'))
AND match(ticker, '^O:(SPY|AAPL)[0-9]{6}[CP][0-9]{8}$')
AND sip_timestamp >= toDateTime(concat(toString(session_day), ' 15:45:00'), 'America/New_York')
AND sip_timestamp < toDateTime(concat(toString(session_day), ' 23:00:00'), 'America/New_York')
GROUP BY contract
ORDER BY contractكانت الدقائق الـ15 الأخيرة من الجلسة العادية نشطة في شريطي التداول: 11803 صفقة على خيارات AAPL، و64434 على SPY. وبعد جرس الإغلاق، انقسمت الصفقات بين الورقتين خلال الدقائق الـ15 التالية: نفّذت AAPL 3 صفقة متفرقة، كانت آخرها عند الساعة 16:00 بتوقيت ET، بينما سجّلت SPY 29698 صفقة، وكانت آخرها عند الساعة 16:14 بتوقيت ET. وللانتهاء صلاحية العقود جدول زمني خاص به؛ ويوضح متى تتداول خيارات 0DTE ذلك.
أما العقود الآجلة فتتبع جدولاً مختلفاً تماماً. تتداول العقود الآجلة لمؤشرات الأسهم في CME على مدار 24 ساعة تقريباً، من الساعة 6:00 مساءً بتوقيت ET يوم الأحد إلى الساعة 5:00 مساءً بتوقيت ET يوم الجمعة، مع توقف يومي لمدة ساعة عند الساعة 5:00 مساءً. وهذه هي جلسة التداول الليلية التي تقف وراء كل عنوان يقول إن «العقود الآجلة ترتفع هذا الصباح». ويتداول سوق السندات خارج البورصة وفق الساعات التي توصي بها SIFMA، أي تقريباً من الساعة 8:00 صباحاً إلى الساعة 5:00 مساءً بتوقيت ET، وله أيضاً تقويم عطلات خاص به؛ إذ تُغلق سوق السندات في يوم كولومبوس ويوم المحاربين القدامى، بينما تواصل الأسهم التداول.
متى تُغلق سوق الأسهم؟
تُغلق أسواق الأسهم الأمريكية في عطلات نهاية الأسبوع، وفي نحو عشرة أيام عطلة كاملة سنوياً، كما تُغلق مبكراً عند الساعة 1:00 ظهراً بتوقيت ET في بضعة أيام نصفية محددة مسبقاً. يستند التقويم أدناه مباشرةً إلى جدول البورصة ويُحدّث نفسه تلقائياً: يختفي كل يوم عطلة بعد انقضائه، ويتقدم اليوم التالي إلى الواجهة.
| تاريخ العطلة | يوم الأسبوع | العطلة | حالة اليوم | وقت الإغلاق المبكر ET | الأيام المتبقية |
|---|---|---|---|---|---|
| 2026-11-26 | Thu | Thanksgiving | closed | 40 | |
| 2026-11-27 | Fri | Thanksgiving | early-close | 01:00 PM | 41 |
| 2026-12-24 | Thu | Christmas | early-close | 01:00 PM | 68 |
| 2026-12-25 | Fri | Christmas | closed | 69 | |
| 2027-01-01 | Fri | New Years Day | closed | 76 | |
| 2027-01-18 | Mon | Martin Luther King, Jr. Day | closed | 93 | |
| 2027-02-15 | Mon | Washington's Birthday | closed | 121 | |
| 2027-03-26 | Fri | Good Friday | closed | 160 | |
| 2027-05-31 | Mon | Memorial Day | closed | 226 | |
| 2027-06-18 | Fri | Juneteenth | closed | 244 | |
| 2027-07-05 | Mon | Independence Day | closed | 261 | |
| 2027-09-06 | Mon | Labor Day | closed | 324 |
استعلام SQL الدقيق وراء كل رقم
SELECT
toString(date) AS holiday_date,
formatDateTime(date, '%a') AS weekday,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'America/New_York'), '%I:%i %p'),
'')) AS early_close_et,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY dateموعد الإغلاق المحدد التالي هو Thanksgiving في 2026-11-26، أي بعد 40 يوماً، ويعرض التقويم المحمّل 12 من مواعيد الإغلاق المقبلة، مع تحديد كل منها إما كإغلاق كامل أو إغلاق مبكر. في يوم الإغلاق المبكر تنتهي الجلسة العادية عند الساعة 1:00 ظهراً بتوقيت ET بدلاً من الساعة 4:00 عصراً، أي بعد ثلاث ساعات ونصف من التداول بدلاً من ست ساعات ونصف، وتُنفَّذ مزاد الإغلاق عند الساعة 1:00 ظهراً. تتركز هذه الأيام النصفية حول عطلتي عيد الشكر وعيد الميلاد. وتتناول عطلات سوق الأسهم والإغلاقات المبكرة قواعد التعويض عن العطلات الواقعة في عطلة نهاية الأسبوع، إذ يؤدي وقوع العطلة يوم السبت إلى إغلاق السوق يوم الجمعة السابق، ووقوعها يوم الأحد إلى إغلاقه يوم الاثنين التالي، إضافةً إلى التقويم الكامل وكيفية التحقق من إغلاق سابق بالرجوع إلى سجل الصفقات.
كيف يبدو نصف يوم على شريط التداول؟
يحدد التقويم مواعيد الإغلاق المبكر، بينما يوضح شريط التداول شكل الجلسة. كان أحدث نصف يوم على شريط SPY هو 2025-12-24، وضم Wednesday: 210 من أشرطة الدقائق خلال الجلسة النظامية، من الساعة 9:30 صباحاً حتى مزاد الإغلاق عند الساعة 1:00 ظهراً.
| تاريخ الجلسة | يوم الأسبوع | أشرطة الجلسة الصباحية | وقت آخر شريط ET | دقيقة آخر شريط من اليوم | إجمالي الأسهم m | نسبة ما قبل الافتتاح | النسبة العادية | نسبة 30 دقيقة بعد الإغلاق | نسبة المساء | نسبة أول 30 دقيقة | نسبة آخر 30 دقيقة | نسبة الإغلاق ناقص الافتتاح |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-12-24 | Wednesday | 210 | 16:59 | 1019 | 39.9 | 1.2 | 89.6 | 7.8 | 1.4 | 10.9 | 24.2 | 13.3 |
استعلام SQL الدقيق وراء كل رقم
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars >= 150 AND rth_bars <= 240
)
) AS half_day
SELECT
toString(half_day) AS session_date,
formatDateTime(half_day, '%W') AS weekday,
b.morning_session_bars AS morning_session_bars,
b.last_bar_et AS last_bar_et,
b.last_bar_minute_of_day AS last_bar_minute_of_day,
t.total_shares_m AS total_shares_m,
t.premarket_pct AS premarket_pct,
t.regular_pct AS regular_pct,
t.post_close_30min_pct AS post_close_30min_pct,
t.evening_pct AS evening_pct,
t.first_30min_pct AS first_30min_pct,
t.last_30min_pct AS last_30min_pct,
round(t.last_30min_pct - t.first_30min_pct, 1) AS close_minus_open_pct
FROM
(
SELECT
countIf(et_min >= 570 AND et_min < 780) AS morning_session_bars,
formatDateTime(max(et_ts), '%H:%i') AS last_bar_et,
max(et_min) AS last_bar_minute_of_day
FROM
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et_ts,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND toDate(toTimeZone(window_start, 'America/New_York')) = half_day
)
) AS b
CROSS JOIN
(
SELECT
round(sum(shares) / 1e6, 1) AS total_shares_m,
round(100.0 * sumIf(shares, NOT is_close AND et_min < 570) / sum(shares), 1) AS premarket_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 570 AND et_min < 780)) / sum(shares), 1) AS regular_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 780 AND et_min < 810) / sum(shares), 1) AS post_close_30min_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 810) / sum(shares), 1) AS evening_pct,
round(100.0 * sumIf(shares, NOT is_close AND et_min >= 570 AND et_min < 600) / sum(shares), 1) AS first_30min_pct,
round(100.0 * sumIf(shares, is_close OR (et_min >= 750 AND et_min < 780)) / sum(shares), 1) AS last_30min_pct
FROM
(
SELECT
toFloat64(size) AS shares,
has(conditions, 8) AS is_close,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
+ toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
AND sip_timestamp < toDateTime(half_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
)
) AS tيحافظ اليوم المختصر على شكل اليوم الكامل بعد ضغطه زمنياً. ومن أصل 39.9 مليون سهم من SPY جرى تنفيذها، استحوذت الجلسة النظامية المختصرة على 89.6%. أما النصف ساعة الأخيرة قبل إغلاق الساعة 1:00 ظهراً، بما في ذلك تنفيذ مزاد الإغلاق، فاستحوذت على 24.2%، متقدمةً بفارق واضح على 10.9% خلال النصف ساعة الأولى. ويظهر ذلك التركيز المعتاد للتداول في مزاد الإغلاق، لكنه جاء قبل موعده بثلاث ساعات. وسُجّل خلال النصف ساعة التالية للإغلاق 7.8%، وهي مرة أخرى نافذة الإبلاغ عن الصفقات الكبيرة، بينما لم تسجل بقية فترة بعد الظهر سوى 1.4%. وانتهت ساعات التداول الممتدة مبكراً أيضاً؛ إذ سُجّل آخر شريط في اليوم عند 16:59 بتوقيت الساحل الشرقي، وتنتهي التداولات بعد ساعات العمل نحو الساعة 5:00 مساءً في أنصاف الأيام، أي قبل موعدها المعتاد عند الساعة 8:00 مساءً بثلاث ساعات. وتغلق عقود الخيارات مبكراً كذلك: عند الساعة 1:00 ظهراً للأسهم الفردية، وعند الساعة 1:15 ظهراً لعقود ETF والمؤشرات ذات ساعات التداول الممتدة.
| نصف ساعة ET | الأسهم m |
|---|---|
| 04:00 | 0.03 |
| 04:30 | 0 |
| 05:00 | 0.01 |
| 05:30 | 0.01 |
| 06:00 | 0.01 |
| 06:30 | 0.01 |
| 07:00 | 0.05 |
| 07:30 | 0.03 |
| 08:00 | 0.1 |
| 08:30 | 0.11 |
| 09:00 | 0.13 |
| 09:30 | 4.36 |
| 10:00 | 3.84 |
| 10:30 | 3.46 |
| 11:00 | 4.98 |
| 11:30 | 3.79 |
| 12:00 | 5.69 |
| 12:30 | 9.66 |
| 13:00 | 3.11 |
| 13:30 | 0.11 |
استعلام SQL الدقيق وراء كل رقم
WITH
(
SELECT max(d)
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 400
AND window_start < today() - 2
GROUP BY d
HAVING rth_bars >= 150 AND rth_bars <= 240
)
) AS half_day
SELECT
formatDateTime(toStartOfInterval(if(has(conditions, 8),
toTimeZone(sip_timestamp, 'America/New_York') - INTERVAL 10 MINUTE,
toTimeZone(sip_timestamp, 'America/New_York')),
INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
round(sum(toFloat64(size)) / 1e6, 2) AS shares_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime(half_day, 'America/New_York')
AND sip_timestamp < toDateTime(half_day + 1, 'America/New_York')
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_half_hour
ORDER BY et_half_hourتوزع حجم التداول على 26 من فترات النصف ساعة، مع انضغاط النمط المعتاد المتمثل في نشاط قوي عند الافتتاح ونشاط أكبر عند الإغلاق داخل ثلاث ساعات ونصف.
كم عدد أيام التداول في السنة؟
بعد استبعاد عطلات نهاية الأسبوع والعطلات الرسمية، تترك السنة التقويمية نحو 250 جلسة تداول. ويحدد عدّها من سجل التداول العدد الدقيق:
| أيام التداول | الجلسات الكاملة | الجلسات المختصرة | الجلسات غير المنتظمة | جلسات عطلة نهاية الأسبوع | الجلسة الأولى | الجلسة الأخيرة |
|---|---|---|---|---|---|---|
| 253 | 251 | 2 | 0 | 0 | 2025-10-13 | 2026-10-14 |
استعلام SQL الدقيق وراء كل رقم
SELECT
count() AS trading_days,
countIf(rth_bars >= 380) AS full_length_sessions,
countIf(rth_bars <= 240) AS shortened_sessions,
countIf(rth_bars > 240 AND rth_bars < 380) AS irregular_sessions,
countIf(is_weekend) AS weekend_sessions,
toString(min(d)) AS first_session,
toString(max(d)) AS last_session
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toDayOfWeek(toDate(toTimeZone(window_start, 'America/New_York'))) >= 6 AS is_weekend,
countIf((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) AS rth_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 370
AND window_start < today() - 2
GROUP BY d, is_weekend
HAVING rth_bars > 0
)بين 2025-10-13 و2026-10-14 عقد السوق 253 جلسة عادية، منها 251 جلسة كاملة و2 جلسة مختصرة، و0 جلسة في عطلة نهاية الأسبوع بالضبط؛ وهذا يؤكد من سجل التداول نفسه أن أياً من يومي السبت أو الأحد لم يشهد جلسة عادية.
ساعات تداول سوق الأسهم حول العالم
تمثل ساعات التداول في الولايات المتحدة جزءاً من دورة عالمية شبه متواصلة. تعمل بورصة لندن من الساعة 8:00 صباحاً إلى 4:30 مساءً بالتوقيت المحلي، وتتداخل ساعاتها الأخيرة عادةً مع أول ساعتين من الجلسة النظامية في الولايات المتحدة، من 9:30 إلى 11:30 صباحاً بتوقيت ET. وتحدث إغلاقات الأسواق الأوروبية في منتصف الصباح بتوقيت نيويورك. أما بورصة طوكيو فتتداول من الساعة 9:00 صباحاً إلى 3:30 مساءً بالتوقيت المحلي، مع استراحة غداء، وتقع ساعات تداولها بالكامل ضمن فترة التداول الليلي في الولايات المتحدة. وتكون إحدى البورصات الرئيسية مفتوحة تقريباً في أي يوم عمل من أيام الأسبوع، لكن أسهم الشركات المدرجة في الولايات المتحدة لا تُسجَّل تداولاتها إلا خلال الساعات الأمريكية المقاسة في هذه الصفحة.
الأسئلة الشائعة حول ساعات سوق الأسهم
في أي وقت يفتح سوق الأسهم؟
تبدأ NYSE وNasdaq التداول المنتظم عند الساعة 9:30 صباحاً بالتوقيت الشرقي، من الاثنين إلى الجمعة. يبدأ التداول الإلكتروني قبل افتتاح السوق بوقت طويل، عند الساعة 4:00 صباحاً بالتوقيت الشرقي، لكن سعر الافتتاح الرسمي لكل سهم يُحدَّد في مزاد الافتتاح عند الساعة 9:30 صباحاً.
هل يفتح سوق الأسهم في عطلات نهاية الأسبوع؟
لا. لا تعقد بورصات الأسهم الأمريكية جلسات تداول يوم السبت أو الأحد. وتُظهر بيانات شريط التداول للسنة المنتهية أعلاه 0 جلسات في عطلات نهاية الأسبوع. بعد إغلاق يوم الجمعة عند الساعة 4:00 مساءً وانتهاء التداول بعد ساعات العمل عند الساعة 8:00 مساءً، يُستأنف التداول مع فترة ما قبل الافتتاح يوم الاثنين عند الساعة 4:00 صباحاً، باستثناء العطلات.
ما المقصود بالتداول قبل افتتاح السوق وبعد ساعات العمل؟
هو التداول الإلكتروني خارج ساعات التداول المنتظمة. تمتد فترة ما قبل الافتتاح من الساعة 4:00 صباحاً إلى 9:30 صباحاً بالتوقيت الشرقي، وتمتد فترة التداول بعد ساعات العمل من الساعة 4:00 مساءً إلى 8:00 مساءً بالتوقيت الشرقي. وتضم الفترتان عدداً أقل من المشاركين، كما تكون فروق أسعار العرض والطلب أوسع مقارنةً بالجلسة المنتظمة. ولا يقبل معظم الوسطاء خلالهما إلا أوامر الحد.
متى يغلق السوق مبكراً؟
في أيام التداول المختصرة المقررة، ينتهي التداول المنتظم عند الساعة 1:00 مساءً بالتوقيت الشرقي بدلاً من الساعة 4:00 مساءً. ويحدث ذلك عادةً في يوم الجمعة التالي لعيد الشكر، وفي عشية عيد الميلاد عندما توافق يوم عمل، وفي 3 يوليو في بعض السنوات. وتُظهر بيانات شريط التداول للسنة المنتهية 2 جلسات مختصرة.
ماذا يحدث إذا كان تداول سهم متوقفاً عند الإغلاق؟
إذا ظل التداول في سهم ما متوقفاً عند جرس الإغلاق، فلا يُجرى له مزاد إغلاق مؤجل في ذلك اليوم. وتحظر قواعد البورصة إجراء مزاد إعادة افتتاح بعد استمرار التوقف إلى ما بعد نحو الساعة 3:50 مساءً بالتوقيت الشرقي، لذلك يستمر التوقف حتى الإغلاق. وفي غياب مزاد يحدد السعر، تعتمد البورصة متوسط السعر المرجح بحجم التداول للصفقات المنفذة على السهم نفسه خلال الدقائق الخمس الأخيرة قبل التوقف، بوصفه سعر الإغلاق الرسمي، وليس آخر سعر تداول فحسب. وتُطبَّق حالات التوقف على كل سهم على حدة، بينما يغلق باقي السوق عند الساعة 4:00 مساءً وفق الجدول المعتاد.
هل يغلق سوق الأسهم عند الساعة 4:00 أم 4:30؟
تغلق بورصات الأسهم الأمريكية التداول المنتظم عند الساعة 4:00 مساءً بالتوقيت الشرقي. أما الأسعار التي تواصل التحرك بعد ذلك فتأتي من جلسة التداول بعد ساعات العمل، التي تستمر حتى الساعة 8:00 مساءً بالتوقيت الشرقي. وتستمر بعض منتجات المؤشرات في التداول حتى الساعة 4:15 مساءً بالتوقيت الشرقي.
ساعات السوق هي الجدول، أما شريط التداول فهو السجل الفعلي. كل لوحة أعلاه عبارة عن استعلام مخزّن يمكنك فتحه وتعديله وإعادة تشغيله على محطة Strasmore، للتحقق من أي جلسة أو أي ticker أو موعد الإغلاق التالي، باستخدام لغة واضحة.