Strasmore Research
ملخص الأسواق Matt Connorبقلم Matt Connor · آخر تحديث في 2026-07-23

ملخص السوق 30 يونيو 2026 بالأرقام

تعرف على أداء الجلسة الأخيرة من الربع السنوي حيث قادت أسهم التكنولوجيا مؤشرات السوق رغم تراجع معظم القطاعات، مع رصد لأداء مؤشر QQQ و SPY.

الثلاثاء، 30 يونيو 2026 — الجلسة الأخيرة من الربع السنوي — شهدت ارتفاعاً بقيادة قطاع التكنولوجيا رغم تراجع معظم السوق: حقق QQQ مكاسب بنسبة 1.63% وارتفع SPY بنسبة 0.73%، ومع ذلك، أغلق 4 فقط من صناديق قطاع 10 S&P على ارتفاع (ارتفعت 3,349 من الأسهم السائلة، وانخفضت 3,033). الجلسة السابقة: ملخص 29 يونيو. تُستخرج جميع الأرقام أدناه من استعلام مخزن — يمكنك توسيع أي لوحة لعرض لغة SQL.

لوحة النتائج

تُقارن كل عملية تغيير بين آخر شمعة دقيقة في الجلسة العادية بتاريخ 30 يونيو، وبين يوم الاثنين 29 يونيو.

الاستعلامSPY / QQQ / DIA / IWM — 30 يونيو مقابل إغلاق 29 يونيو، الجلسات العادية
استعلام SQL الدقيق وراء كل رقم
WITH prior AS (
    SELECT ticker, argMax(close, window_start) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    GROUP BY ticker
),
sess AS (
    SELECT ticker,
           argMin(open, window_start) AS day_open,
           argMax(close, window_start) AS day_close,
           max(high) AS day_high,
           min(low) AS day_low,
           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

افتتح SPY عند $741.29 وأغلق عند $746.32، بالقرب من أعلى مستوى له عند $748.02. يمثل أداء QQQ بنسبة 1.63% مقابل DIA بنسبة 0.12% ملامح اليوم: حققت أسهم النمو نمواً، بينما لم تتحرك الأسهم القيادية إلا قليلاً، وسجل IWM نسبة 0.49% .

إغلاق الربع السنوي

أنهى يوم 30 يونيو آخر جلسات 62 في الربع الثاني، وقد عكست حركة السوق في ذلك اليوم مسار الربع السنوي بأكمله.

الاستعلامنهاية الربع الثاني 2026: كل صندوق مؤشر من افتتاح 1 أبريل إلى إغلاق 30 يونيو، الجلسات العادية
استعلام SQL الدقيق وراء كل رقم
WITH q2 AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS d_open,
           argMax(toFloat64(close), window_start) AS d_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= toDateTime('2026-04-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
)
SELECT
    ticker,
    toString(min(d)) AS quarter_first_session,
    count() AS quarter_sessions,
    round(argMin(d_open, d), 2) AS quarter_open,
    round(argMax(d_close, d), 2) AS quarter_close,
    round((argMax(d_close, d) / argMin(d_open, d) - 1) * 100, 2) AS quarter_pct,
    countIf(d_close > d_open) AS up_sessions
FROM q2
GROUP BY ticker
ORDER BY quarter_pct DESC, ticker ASC

من افتتاح 1 أبريل إلى إغلاق 30 يونيو: حقق QQQ نسبة +26.53%، وIWM نسبة 20.21%، وSPY نسبة 14.13%، وDIA نسبة 12.08%. تصدر QQQ أداء الربع السنوي وأداء يوم 30 يونيو نفسه، بينما اختلفت النتائج في المؤشرات الأخرى؛ حيث تفوق SPY على IWM خلال اليوم، بينما تفوق IWM على SPY طوال الربع السنوي. أغلق QQQ عند مستويات أعلى في 38 من جلسات 62 (ملخص الربع الثاني يستعرض ذلك بالتفصيل).

هل كان اليوم غير عادي؟

الاستعلامترتيب تحرك SPY من الافتتاح للإغلاق مقابل جلسات الشهر الماضي (الرتبة 1 = أكبر تحرك مطلق)
استعلام SQL الدقيق وراء كل رقم
SELECT round(anyIf(oc_pct, d = toDate('2026-06-30')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-06-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-06-30'))) + 1 AS abs_move_rank,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

تحرك مؤشر SPY بنسبة 0.68% من وقت الافتتاح إلى وقت الإغلاق خلال الجلسة — وهي زاوية رؤية مختلفة عن مقياس التغير من الإغلاق السابق إلى الإغلاق الحالي — ليحتل المرتبة 7 من أصل 21 جلسة من حيث حجم التغير المطلق. كان المؤشر هادئاً، بينما كانت حركة التداول الفعلية غير مستقرة.

نطاق التداول: تفوق إيجابي محدود

الاستعلامالأسهم الصاعدة مقابل الهابطة بين الرموز التي تم تداول ما لا يقل عن $1M فيها في 30 يونيو
استعلام SQL الدقيق وراء كل رقم
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
       OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')) AS sector_funds_counted,
    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
        AND day_close > prior_close) AS sector_funds_up
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

بلغ عدد الأسهم الصاعدة 3,349، والأسهم الهابطة 3,033، والأسهم المستقرة 88: نسبة 51.8% من إجمالي التداولات النشطة — وهي نتيجة متقاربة في ظل نمو المؤشر بنسبة 1.63. يستبعد مرشح السيولة 5,055 من رموز 11,525 التي تداولت في جلستي تداول (بإجمالي تداولات أقل من 1 مليون دولار)، وهي مدرجة هنا دون استثناء.

القطاعات: أين توجهت الأموال فعلياً

إن حصر الأسماء بناءً على عدد الأصوات فقط يخفي التوزيع الحقيقي للأموال. تمتلك الصناديق العشرة التالية حصة في مؤشر S&P 500، ويقيس الفرق بين الأداء الأفضل والأضعف مدى تفاوت الجلسة.

الاستعلامصناديق قطاعات S&P العشرة في 30 يونيو: التغير مقابل إغلاق الإثنين، ومدى تأخر كل منها عن المتصدر
استعلام SQL الدقيق وراء كل رقم
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    if(day_close > prior_close, 1, 0) AS is_up,
    round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS pts_behind_leader,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC, ticker ASC

حقق قطاع التكنولوجيا (XLK) مكاسب بنسبة 2.69% وكان الوحيد المتفوق: حيث سجلت قطاعات الصناعات 1.34%، والمواد 0.36%، والسلع الاستهلاكية الكمالية 0.15% ارتفاعات، بينما سجلت بقية القطاعات تراجعاً بدءاً من القطاع المالي (-0.17%) وصولاً إلى المرافق (-1.48%)، والسلع الاستهلاكية الأساسية (-1.53%)، وأخيراً العقارات بنسبة -2%. الفرق بين الأفضل والأسوأ: 4.69 نقطة مئوية، حيث كانت 4 من أصل 10 من الصناديق خضراء. ارتفع المؤشر بنسبة أقل من 1%، مع فارق أداء قدره أربع نقاط: قطاع واحد هو من قاد السوق.

أكبر التحركات اليوم، على مستوى السوق

يقيس نطاق السوق عدد الأسهم الصاعدة؛ وهذا يوضح الأسهم الأكثر تحركاً — أعلى خمسة أسهم وأدنى خمسة أسهم من حيث النسبة المئوية للتغير بين الأسهم التي تم تداولها بقيمة 10 ملايين دولار أو أكثر.

الاستعلامأفضل 5 رابحين وأفضل 5 خاسرين بين الأسهم التي تم تداول ما أكثر من $10M فيها في 30 يونيو (باستثناء رمز مكرر واحد)
استعلام SQL الدقيق وراء كل رقم
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
       OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
    GROUP BY ticker
    HAVING prior_close > 1 AND day_close > 0 AND day_dollar_volume >= 10000000 AND ticker NOT IN ('SPCX')
)
SELECT
    board,
    ticker,
    prior_close,
    day_close,
    pct_chg,
    round(abs(pct_chg), 2) AS abs_pct_chg,
    dollar_volume_m,
    if(ticker IN (SELECT ticker FROM global_markets.stocks_splits
                  WHERE execution_date >= '2026-06-29' AND execution_date <= '2026-06-30'), 1, 0) AS split_record_on_file
FROM (
    SELECT 'top gainers' AS board, ticker, round(prior_close, 2) AS prior_close, round(day_close, 2) AS day_close,
           round((day_close / prior_close - 1) * 100, 2) AS pct_chg, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
    FROM per_ticker
    ORDER BY (day_close / prior_close) DESC, ticker ASC
    LIMIT 5
    UNION ALL
    SELECT 'top decliners' AS board, ticker, round(prior_close, 2) AS prior_close, round(day_close, 2) AS day_close,
           round((day_close / prior_close - 1) * 100, 2) AS pct_chg, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
    FROM per_ticker
    ORDER BY (day_close / prior_close) ASC, ticker ASC
    LIMIT 5
)
ORDER BY if(board = 'top gainers', 0, 1) ASC, pct_chg DESC, ticker ASC

لا تشبه أي من القائمتين المؤشر. تصدر JEM القائمة بنسبة +256.76% مع تداول بقيمة 141 مليون؛ بينما خسر SOC نسبة 55.89% مع تداول بقيمة 306 مليون. ارتفع ABVX بنسبة 38.56% مع تداول بقيمة 942 مليون، وهو أعلى حجم تداول في أي من القائمتين؛ وانخفض NVCT بنسبة 35.62% و UNCY بنسبة 39.09%. يحافظ عمود السجلات المنقسمة على دقة القائمة — فعملية تجزئة عكسية بنسبة 1 إلى 10 تظهر كـ "ربح" بنسبة +900% في شريط الأسعار غير المعدل — وكل سهم هنا يحمل 0: بيانات حقيقية.

تتكرر ثلاث صفوف في صفقة واحدة مرتين: انخفض CRCA (-35.16%) و CRCG (-35.19%) بينما ارتفع CRCD بنسبة 35.47% — كل منهما يقترب من ضعف حركة -17.53% للسهم المرتبط بالعملات الرقمية أدناه: أدوات الاستثمار الرافعة للأسهم الفردية.

أبرز أحداث اليوم: قطاع أشباه الموصلات في منتصف الربع

ستة أسماء، موضوع واحد، ونتائج متفاوتة للغاية؛ لوحظ تحرك جماعي من حيث الاتجاه والحجم فقط، بينما لا توضح البيانات الأسباب.

الاستعلامأسهم أشباه الموصلات والتخزين: التغير مقابل إغلاق الإثنين، النطاق، وحجم التداول بالدولار
استعلام SQL الدقيق وراء كل رقم
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'INTC', 'MU', 'SNDK', 'TSM', 'WDC')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

ارتفعت SanDisk بنسبة 10.79%، وAMD بنسبة 7.7%، وIntel بنسبة 5.93%، وTSMC بنسبة 4.86% — بينما أغلق سهم MU، الذي سجل أعلى حجم تداول بقيمة 37.41 مليار دولار، بارتفاع طفيف قدره 0.52% فقط، ولم تشارك Western Digital (-2.01%) في هذا الارتفاع. يوضح هذا تعقيدات أداء قطاع التكنولوجيا بنسبة 2.69% (تحركات سهم MU في شهر يونيو، لحظة بلحظة).

سار الاتجاه المعاكس عبر الشركات المالية المرتبطة بالعملات المشفرة، عكس مؤشر الأسهم العام:

الاستعلامالشركات المالية المرتبطة بالكريبتو: التغير مقابل إغلاق الإثنين، النطاق، وحجم التداول بالدولار
استعلام SQL الدقيق وراء كل رقم
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('COIN', 'CRCL', 'HOOD', 'MSTR')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

سجلت CRCL نسبة -17.53%، ووصل أدنى مستوى لها عند 62.52 دولار في تمام الساعة 15:59 بتوقيت شرق الولايات المتحدة — أي في الدقيقة الأخيرة من الجلسة — بالتزامن مع تحركات MSTR بنسبة -6.2%، وCOIN بنسبة -3.61%، وHOOD بنسبة -1.53% . لوحظ تحرك جماعي للأسهم دون تحديد الأسباب.

ما تضمنته موجز الأخبار

إن الملخص الذي يتجنب تحديد الأسباب يلتزم بما نُشر فعلياً في ذلك اليوم.

الاستعلامنشرة الأخبار في 30 يونيو: عدد المقالات وآخر عنوان لكل اسم في هذا الملخص
استعلام SQL الدقيق وراء كل رقم
SELECT
    names.n AS ticker,
    countIf(has(tickers, names.n)) AS articles_today,
    if(countIf(has(tickers, names.n)) = 0, 'none',
       formatDateTime(toTimeZone(argMaxIf(published_utc, (published_utc, id), has(tickers, names.n)), 'America/New_York'), '%H:%i')) AS latest_et,
    if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
       JSONExtractString(argMaxIf(publisher, (published_utc, id), has(tickers, names.n)), 'name')) AS publisher_name,
    if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
       argMaxIf(title, (published_utc, id), has(tickers, names.n))) AS latest_headline
FROM global_markets.stocks_news
CROSS JOIN (SELECT arrayJoin(['NVDA', 'MU', 'SNDK', 'CRCL', 'SOC', 'ABVX', 'JEM']) AS n) AS names
WHERE published_utc >= '2026-06-30 04:00:00' AND published_utc < '2026-07-01 04:00:00'
GROUP BY names.n
ORDER BY articles_today DESC, ticker ASC

كان الاسم الأكثر تغطية هو NVDA بواقع 21 مقالاً — ولم يكن من بين الأسهم المتحركة خلال اليوم — وكان آخر مقال له في الجلسة (16:28 ET, Investing.com) بعنوان "These Stocks Could Benefit as the Robotaxi Race Heats Up". وحصلت MU على 7 مقالاً؛ بينما كان مقال SanDisk الوحيد (The Motley Fool) هو العنوان الوحيد طوال اليوم الذي أشار إلى حركة سعرية فعلية: "Why Sandisk Stock Is Skyrocketing Today".

النتيجة تكمن في الفجوة: السهم الأكثر انخفاضاً، والسهم الأكثر ارتفاعاً، والسهم المرتبط بالعملات المشفرة الذي سجل أكبر تراجع، حصل كل منهم على 0 و0 و0 من المقالات — أي صفر مقال لكل منهم، ضمن موجز احتوى على 211 مقالاً. التغطية الإخبارية ليست مؤشراً على حركة السعر.

أين تم تداول الأموال

الاستعلامقادة التداول بطريقتين: أفضل 6 من حيث القيمة، وأفضل 4 من حيث عدد الأسهم (باستثناء رمز مكرر واحد قيد التحقق)
استعلام SQL الدقيق وراء كل رقم
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, shares_m,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY dollar_volume_bn DESC
    LIMIT 6
    UNION ALL
    SELECT
        'by shares traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

تفوقت MU من حيث القيمة الدولارية على الجميع، بما في ذلك صناديق المؤشرات: 37.41 مليار دولار مقابل 31.84 مليار دولار لصندوق SPY؛ وهي الجلسة الثانية على التوالي التي يتجاوز فيها حجم تداولها حجم تداول صندوق المؤشر الرئيسي (ملخص يوم الاثنين يتضمن الجلسة الأولى). لكن بيانات الأسهم تشير إلى أمر مختلف: حيث بلغ حجم تداول SOXS، وهو صندوق مؤشرات متداول (ETF) عكسي برافعة مالية 3x لأشباه الموصلات (515.5 مليون سهم)، بالإضافة إلى سهمين بأقل من دولار واحد، وهي قيم ضئيلة جداً مقارنة بحجم تداول MU — مما جعل حجم التداول يُقرأ بطريقتين.

هناك اسم واحد تم استبعاده من كلا اللوحتين عمداً: وهو شركة أُدرجت في شهر يونيو وكان رمز التداول الخاص بها ينتمي سابقاً لشركة أخرى غير ذات صلة، لذا تضع بيانات الموردين كيانين مختلفين بنفس الأحرف الثلاثة (البيانات هنا).

الاستعلامعدد الأسهم المتداولة لكل 30 دقيقة، الجلسات العادية (بالمليارات)
استعلام SQL الدقيق وراء كل رقم
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
GROUP BY et_time
ORDER BY et_time

تم تداول 2.05 مليار سهم في النصف ساعة الأولى من الافتتاح، ووصل حجم التداول إلى أدنى مستوى له عند 0.78 مليار دولار في الساعة 13:30، بينما شهدت نهاية الربع أكبر حجم تداول في اليوم — 2.69 مليار دولار — عند الإغلاق، حيث تظهر تدفقات المزاد الختامي وعمليات إعادة التوازن (التحليل العميق ليوم 29 يونيو يوضح ذلك).

سجل الخيارات

الاستعلامصف واحد ليوم الخيارات بالكامل: الحجم، انتهاء الصلاحية في نفس اليوم، انحراف put/call لـ SPY حسب moneyness، والأسبوع المعدل للعطلة
استعلام SQL الدقيق وراء كل رقم
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
                sum(size), count(), round(avg(toFloat64(price)), 3))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
    ) AS spy_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260630') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'))
        / toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C')), 2) AS spy_put_call_ratio,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) > spy_close)) / 1e6, 2) AS spy_0dte_otm_calls_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) <= spy_close)) / 1e6, 2) AS spy_0dte_itm_calls_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) < spy_close)) / 1e6, 2) AS spy_0dte_otm_puts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) >= spy_close)) / 1e6, 2) AS spy_0dte_itm_puts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_expiry,
    top_contract.5 AS top_contract_volume,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'

تم تداول 61.95 مليون عقد عبر 10.06 مليون صفقة؛ استحوذت عقود الشراء (calls) على 57.3% من إجمالي حجم التداول، وانتهت صلاحية 28% منها في ذلك الثلاثاء. وفي المقابل، سجل مؤشر SPY تداولات مختلفة: 12.04 مليون عقد بنسبة عقود البيع إلى الشراء (put/call ratio) بلغت 1.09 — أي عقود بيع أكثر من عقود الشراء، رغم ارتفاع الصندوق في ذلك اليوم.

توضح مقارنة عقود SPY التي تنتهي صلاحيتها في نفس اليوم مع سعر الإغلاق البالغ $746.32 حجم الانحراف (skew) بشكل ملموس: 3.33 مليون عقد بيع خارج نطاق الربح (strikes أقل من سعر الإغلاق) و2.28 مليون عقد شراء خارج نطاق الربح، مقابل 1.77 مليون عقد شراء داخل نطاق الربح و0.63 مليون عقد بيع داخل نطاق الربح — وكانت العقود التي تنتهي قيمتها دون الصفر (worthless) هي الأكثر تداولاً في يوم 0DTE الخاص بـ SPY. لم يتم تسجيل أي تداولات للعقود التي تنتهي صلاحيتها يوم الجمعة 3 يوليو (0 صفقة — حيث تكون السوق مغلقة في ذلك الجمعة)؛ بينما سجلت العقود الأسبوعية ليوم الخميس 10.52 مليون عقد.

الاستعلامأكثر 6 عقود خيارات نشاطاً في 30 يونيو، حسب عدد العقود المتداولة
استعلام SQL الدقيق وراء كل رقم
SELECT
    concat(underlying, ' $', toString(strike), ' ', if(typ = 'C', 'call', 'put')) AS contract,
    toString(expiry) AS expires,
    formatDateTimeInJodaSyntax(expiry, 'MMMM d, yyyy') AS expires_label,
    if(expiry = toDate('2026-06-30'), 1, 0) AS is_same_day,
    contracts,
    round(avg_px, 3) AS avg_premium,
    round(100 * contracts / max(contracts) OVER (), 1) AS pct_of_busiest
FROM (
    SELECT any(underlying_symbol) AS underlying,
           any(toFloat64(strike_price)) AS strike,
           any(option_type) AS typ,
           any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS expiry,
           sum(size) AS contracts,
           avg(toFloat64(price)) AS avg_px,
           any(ticker) AS occ
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'
    GROUP BY ticker
    ORDER BY contracts DESC, occ ASC
    LIMIT 6
)
ORDER BY contracts DESC, contract ASC

كان العقد الأكثر تداولاً هو عقد شراء SPY بقيمة $747 الذي ينتهي في نفس اليوم — 821,361 عقد بمتوسط علاوة قدره $0.641، حيث أغلق عند $0.68 فوق آخر شمعة عادية لـ SPY، وانتهت قيمته دون الصفر. وتوضح البيانات المرافقة درساً هاماً: خمسة من أكثر ستة عقود تداولاً في السجل كانت عقود SPY تنتهي في نفس اليوم وبفارق دولار واحد حول سعر الإغلاق (SPY $748 call التالي)، وكان كل منها يُتداول ببضعة سنتات فقط. أما الاستثناء، والذي مثل 65.1% من حجم تداول العقد الرائد، فكان عقد KWEB $29 call الذي ينتهي في December 18, 2026، ولم يكن عقداً ينتهي في نفس اليوم: مركز استثماري لمدة ستة أشهر من بين خمسة مراكز مضاربية (lottery tickets) في فترة ما بعد الظهر.

أسعار الفائدة: ارتفاع الآجال الطويلة مع إغلاق النصف الأول

الاستعلاممنحنى الخزانة، إغلاق 30 يونيو مقابل 29 يونيو (لآجال الاستحقاق المتاحة فقط)
استعلام SQL الدقيق وراء كل رقم
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jun30_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS p
)

ارتفعت العوائد طويلة الأجل في اليوم الأخير من النصف الأول: ارتفع عائد الـ 10 سنوات بمقدار 6 نقطة أساس ليصل إلى 4.44%، وارتفع عائد الـ 2 سنة بمقدار 4 نقطة أساس ليصل إلى 4.14%، كما اتسع الفارق بين عائدي السنتين والعشر سنوات بمقدار 2 نقطة أساس ليصل إلى 0.3 نقطة. ارتفعت العوائد الطويلة خلال جلسة شهدت تراجع قطاع العقارات (-2%)، وهو القطاع الأضعف، وقطاع المرافق (-1.48%)، وهو الثالث من حيث الضعف، وكلاهما من القطاعات الحساسة لأسعار الفائدة: وهو تزامن يستحق الملاحظة، رغم أن هذه البيانات لا يمكنها إثبات وجود علاقة سببية (ملخص النصف الأول يوضح مسار منحنى العائد خلال النصف الأول).

The calendar behind the day

الاستعلامالتقويم المؤسسي وتدفق المعلومات في 30 يونيو، في صف واحد (فجوة مؤشر الإيداعات معروضة)
استعلام SQL الدقيق وراء كل رقم
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-30'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-30'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-30') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-30') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-29')) AS filings_prior_session

704 dividend records went ex-dividend on the quarter's last day — a quarter-end wave, most US companies paying quarterly — with 7 splits and 2 new listings (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). The filing column is the data-quality headline: the SEC index holds 31 filings for June 30 — 0 insider Form 4s, 0 8-Ks — against 4439 the session before. A month-end pattern in the feed, diagnosed in the month-end gap note; any count including this day is understated until it backfills.

الجلسة، مؤكدة

الاستعلامفحص الجلسة: نطاق شمعة الدقيقة الملحوظ لـ SPY
استعلام SQL الدقيق وراء كل رقم
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS day_sessions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-30 00:00:00' AND window_start < '2026-07-01 00:00:00'

تمتد شموع SPY من 04:00 إلى 19:59 بتوقيت نيويورك، وتتكون من 390 شمعة في نافذة التداول العادية — جلسة كاملة، مؤكدة من سجل التداول (مجموعة بيانات تقويم البورصة تحتوي فقط على الإغلاقات القادمة).

ملخص الجلسة

إن تسجيل مؤشر SPY لنسبة 0.73% مع ارتفاع 51.8% من الأسهم، ونمو 4 من صناديق قطاع 10، وفارق 4.69 نقطة بين أفضل وأسوأ الأسهم، لا يعني وجود ارتفاع شامل. بل هو ارتفاع قطاع واحد يتخفى في هيئة مؤشر، وقد حدث ذلك خلال أكثر نصف ساعة كثافة في مزاد نهاية الربع. إن التغير في المؤشر هو متوسط حسابي، وقد قاد هذا الارتفاع قطاع التكنولوجيا بينما تراجعت معظم القطاعات الأخرى؛ لذا تحقق من تشتت الأداء قبل الوثوق باتجاه المؤشر.

FAQ

How did the stock market do on June 30, 2026?

It closed higher: SPY gained 0.73% and QQQ 1.63% against June 29's close. Breadth was narrower — 51.8% of liquid names rose, 4 of 10 S&P sector funds green.

Which sector led the market on June 30, 2026?

Technology: XLK gained 2.69%, against 1.34% for industrials next and -2% for real estate last — 4.69 points between best and worst.

What were the biggest stock movers on June 30, 2026?

Among names trading $10 million or more, JEM gained the most (+256.76%) and SOC lost the most (55.89%). Neither carried a split record: both are real price moves, not corporate-action artifacts.

How did the stock market do in Q2 2026?

From the April 1 open to the June 30 close, across 62 sessions: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08% — a growth-led quarter, ended by a growth-led day.

Why does so much volume trade in the last half hour?

The final half hour carried 2.69 billion shares against 2.05 billion at the open. The closing auction sets each stock's official closing price in one crossing, and index funds trade there to match it; quarter-end rebalancing concentrates the flow.

ملاحظات البيانات والمنهجية

  • السلال. تتكون لوحة القطاع من صناديق SPDR العشرة المذكورة في لوحتها — وهي نفس السلة في كل جلسة، مما يسمح بمقارنة رقم التشتت عبر الأيام. تتطلب لوحات المحركات حجم تداول بقيمة 10 ملايين دولار وإغلاقاً سابقاً أعلى من 1 دولار، وتستبعد القائمة المذكورة أعلاه ذات الرموز المعاد استخدامها، كما تتضمن عموداً لسجل تقسيم الأسهم.
  • التنبيهات. حجم التداول بالدولار هو مؤشر لكل دقيقة (سعر الإغلاق × حجم التداول لكل شريط). مؤشر إفصاح 30 يونيو شبه فارغ (ملاحظة فجوة نهاية الشهر تشرح ذلك). أعداد الأخبار تعتمد على مصدر واحد فقط: عدم وجود مقال هنا لا يعني عدم نشر أي شيء في أي مكان آخر.
  • المنهجية. جلسة واحدة (1، تم التحقق منها من الأشرطة المرصودة)؛ تُخزن الطوابع الزمنية بتوقيت UTC، وتُحول إلى توقيت نيويورك في الاستعلامات؛ "الإغلاق" هو آخر شريط دقيقة عادية، وليس طباعة المزاد. يتم إعادة تحليل تواريخ انتهاء صلاحية الخيارات من رمز OCC (العمود الخاص بالجدول معطل)؛ وتُقاس صلاحية التنفيذ (moneyness) مقابل آخر شريط عادي لـ SPY. تُشغل اللوحات مرة واحدة عند وقت التأليف، عبر مسار القراءة فقط المقيد. المستودع بتاريخ 13 يوليو 2026.

كل لوحة هي نتيجة استعلام مخزنة — رسم بياني، وجدول، وSQL في كائن واحد. يمكنك نسخ أي منها ولصقه في محطة Strasmore. الجلسة التالية: 1 يوليو.