Thị trường chứng khoán ngày 24/2/2022
Diễn biến ngày Nga tấn công Ukraine khiến chứng khoán Mỹ mở cửa giảm mạnh nhưng đóng cửa tăng điểm. Phân tích biến động của dầu, vàng, cổ phiếu và trái phiếu.
Vào rạng sáng ngày 24 tháng 2 năm 2022, Nga đã phát động cuộc tấn công toàn diện vào Ukraine — và thị trường chứng khoán Mỹ đã tạo ra một trong những phiên giao dịch được nghiên cứu kỹ lưỡng nhất thập kỷ. Hợp đồng tương lai chỉ số giảm mạnh qua đêm, Nasdaq-100 ETF QQQ mở cửa giảm -3.2% — và đóng cửa ở mức +3.4%. Trang này ghi lại toàn bộ sự kiện: diễn biến đảo chiều theo từng phút, biến động của S&P 500 và Dow, diễn biến của giá dầu, vàng, cổ phiếu quốc phòng, trái phiếu Chính phủ Mỹ và chỉ số biến động, cùng bối cảnh của những tuần tiếp theo. Mọi con số đều được truy vấn từ dữ liệu lưu trữ; bạn có thể mở rộng bất kỳ bảng nào để xem mã SQL.
Trước giờ mở cửa: diễn biến trong đêm
Cuộc xâm lược không phải là sự kiện bất ngờ. Suốt cuối năm 2021 và đầu năm 2022, Nga đã tập trung quân đội gần biên giới Ukraine — các ước tính từ phương Tây vào thời điểm đó cho thấy con số vượt xa 100,000 — và thị trường đã phản ánh rủi ro này trong nhiều tuần. Vào thứ Hai, ngày 21 tháng 2, Moscow công nhận hai nước cộng hòa ly khai tự tuyên bố ở miền Đông Ukraine; thị trường Mỹ đóng cửa do kỳ nghỉ Ngày sinh của Washington, và phiên giao dịch đầu tiên có thể phản ánh tin tức này là thứ Ba ngày 22, một phiên giảm điểm mạnh. Đợt trừng phạt đầu tiên của phương Tây được áp dụng ngay trong thứ Ba đó, cùng với việc Đức đình chỉ chứng nhận đường ống Nord Stream 2.
Sau đó, ngay trước 6 giờ sáng giờ Moscow vào thứ Năm, ngày 24 tháng 2 — khoảng 10 giờ tối thứ Tư tại New York — tổng thống Nga đã công bố chiến dịch, và các vụ nổ được báo cáo trên khắp các thành phố của Ukraine trong vòng một giờ. Các hợp đồng index futures của Mỹ, vốn giao dịch xuyên đêm, đã bị bán tháo ngay lập tức. Đến bình minh, câu hỏi duy nhất còn lại là mức giá của phiên đấu giá mở cửa lúc 9:30 sáng sẽ thấp hơn mức đóng cửa của thứ Tư bao nhiêu.
Diễn biến trong ngày
Một dòng tóm tắt toàn bộ câu trả lời — giá đóng cửa trước đó, khoảng trống giá (gap), giá thấp nhất, giá cao nhất, giá đóng cửa và khối lượng giao dịch:
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
(
SELECT argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-23 00:00:00') AND window_start < toDateTime('2022-02-24 04:00:00')
) AS prior_rth_close
SELECT
round(prior_rth_close, 2) AS prior_close,
round(toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_open,
round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS gap_pct,
round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 'America/New_York'), '%H:%i') AS low_et,
round(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_high,
round(toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_close,
round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS day_change_pct,
round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / prior_rth_close - 1) * 100, 1) AS low_vs_prior_pct,
round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS trough_to_close_pct,
round((maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) - 1) * 100, 2) AS close_to_high_pct,
round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 2) AS open_above_low_pct,
round(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')Dữ liệu quan trọng cần lưu ý: mức thấp nhất phiên là $318.26 được ghi nhận lúc 09:30 ET — phút mở cửa — thấp hơn -3.4% so với giá đóng cửa trước đó. Từ thời điểm đó, QQQ đã tăng liên tục trong sáu tiếng rưỡi và chốt phiên ở mức $340.65: tăng 3.4% trong ngày, với biên độ dao động từ thấp nhất đến đóng cửa là 7% trên khối lượng 128 triệu cổ phiếu. Giá đóng cửa không hề suy yếu khi gần đến giờ nghỉ: mức giá này chỉ thấp hơn 0.11% so với mức cao nhất phiên là $341.04, nghĩa là ngày giao dịch kết thúc gần như ở mức đỉnh. Bất kỳ ai bán trong phút giao dịch đầu tiên đều đã bán ở mức chỉ cao hơn 0.18% so với mức thấp nhất của phiên — mức đáy thực tế được ghi nhận ngay sau phiên đấu giá mở cửa, chứ không phải tại thời điểm đó (giá đấu giá là $318.84; mức thấp nhất là $318.26).
The reversal, bucket by bucket
Half-hour buckets show the shape of the climb:
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(toFloat64(argMax(close, window_start)), 2) AS bucket_close,
round(min(toFloat64(low)), 2) AS bucket_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_time
ORDER BY et_timeThe staircase was not perfectly clean — the 12:00 ET bucket closed at $328.03, under the 11:30 close of $330.29 — but the direction never seriously flipped, and the final bucket closed at $340.65, the top of the table. Volume traced the usual U: 18.6 million shares in the opening half hour and 15 million in the last, against 4.7 million around lunch. It is the mirror image of 2011's staircase down. Sessions like this are why "the market fell on the invasion" retellings mislead: the futures fell overnight; the cash session rallied from its first minute. Which one you experienced depended entirely on when your orders arrived — the theme overnight gaps measures on calmer weeks.
Không chỉ riêng Nasdaq: toàn bộ thị trường đã đảo chiều
Nếu chỉ nhìn vào một chỉ số, một câu hỏi lớn sẽ được đặt ra: đây là sự biến động bất thường của nhóm cổ phiếu tăng trưởng hay là một đợt đảo chiều trên toàn thị trường? Bảng dưới đây sử dụng một thước đo chung cho mười một ticker — bao gồm ba ETF chỉ số chính, sau đó là các tài sản thường được tìm đến khi có cú sốc địa chính trị: năng lượng, vàng, trái phiếu kho bạc dài hạn, một ETF biến động và bốn nhà thầu quốc phòng.
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round((rth_open / prior_close - 1) * 100, 1) AS gap_pct,
round((rth_low / prior_close - 1) * 100, 1) AS low_vs_prior_pct,
round((rth_high / prior_close - 1) * 100, 1) AS high_vs_prior_pct,
round((rth_close / prior_close - 1) * 100, 1) AS day_change_pct
FROM (
SELECT
ticker,
argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2022-02-23')) AS prior_close,
argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2022-02-24')) AS rth_open,
minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2022-02-24')) AS rth_low,
maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2022-02-24')) AS rth_high,
argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2022-02-24')) AS rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('QQQ', 'SPY', 'DIA', 'XLE', 'GLD', 'TLT', 'VIXY', 'LMT', 'NOC', 'RTX', 'GD')
AND window_start >= toDateTime('2022-02-23 00:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
GROUP BY ticker
)
ORDER BY indexOf(['QQQ', 'SPY', 'DIA', 'XLE', 'GLD', 'TLT', 'VIXY', 'LMT', 'NOC', 'RTX', 'GD'], ticker)Sự đảo chiều diễn ra trên toàn thị trường, nhưng quy mô của nó không chỉ đơn thuần bám theo mức độ nhảy gap buổi sáng: QQQ nhảy gap -3.2% khi mở cửa và đóng cửa ở mức +3.4%. SPY và DIA cũng nhảy gap với biên độ gần tương đương — lần lượt là -2.6% và -2.6% — tuy nhiên SPY đóng cửa ở mức +1.5% trong khi DIA chỉ ở mức +0.3%, gần như không tăng. Chỉ số tập trung nhiều cổ phiếu tăng trưởng có mức đảo chiều mạnh nhất; trong khi Dow tập trung nhiều cổ phiếu công nghiệp có mức đảo chiều thấp nhất — chính thành phần cổ phiếu, chứ không phải quy mô gap, đã tạo ra sự khác biệt giữa SPY và DIA.
Dòng tiền đã đổ vào đâu: dầu, vàng, quốc phòng và biến động
Hãy nhìn vào các hàng dưới của cùng bảng dữ liệu này — nhóm "giao dịch chiến tranh". Nhóm năng lượng mở cửa ở mức cao nhất và đóng cửa ở sắc đỏ: XLE nhảy gap +2.1%, có thời điểm giao dịch thấp hơn -3.4% so với mức đóng cửa phiên trước đó, và kết thúc ở mức -0.9%. Vàng cũng có biến động tương tự: GLD mở cửa +2.4% và đóng cửa -0.6%. VIXY — một ETF nắm giữ các hợp đồng tương lai VIX ngắn hạn, là công cụ thay thế có thể giao dịch gần nhất cho chỉ số biến động — nhảy gap +11.1% khi mở cửa và đóng cửa ở mức -3%, thấp hơn mức đóng cửa ngày hôm trước. Các tài sản trú ẩn an toàn truyền thống đạt đỉnh ngay khi các tiêu đề tin tức tồi tệ nhất, sau đó giảm dần cùng với sự hồi phục của thị trường chứng khoán: một sự đảo chiều của xu hướng hồi phục cổ phiếu.
Các công ty quốc phòng là ngoại lệ duy trì đà tăng. Cả bốn mã đều đóng cửa ở sắc xanh — LMT +1.7%, NOC +2.4%, RTX +2.1%, GD +1.1% — và Northrop Grumman không bao giờ giao dịch thấp hơn mức đóng cửa hôm thứ Tư trong suốt cả phiên (mức thấp nhất trong ngày là +1%), là mã duy nhất trong bốn mã không xuất hiện sắc đỏ.
Trái phiếu Chính phủ: dòng tiền trú ẩn an toàn đến muộn
Lợi suất trái phiếu Chính phủ giảm đồng nghĩa với việc giá trái phiếu đang tăng lên — một kịch bản trú ẩn an toàn điển hình. Vào chính ngày diễn ra cuộc xâm lược, dòng tiền này hầu như không đáng kể khi kết thúc phiên:
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
toString(date) AS session,
round(yield_2_year, 2) AS yield_2_year,
round(yield_10_year, 2) AS yield_10_year
FROM global_markets.treasury_yields
WHERE date BETWEEN '2022-02-18' AND '2022-03-08'
ORDER BY dateLợi suất kỳ hạn 10 năm chốt phiên ở mức 1.96% vào ngày 24 tháng 2, thấp hơn một chút so với mức 1.99% của ngày hôm trước. Xu hướng tháo chạy thực sự diễn ra vào tuần kế tiếp: tính đến 2022-03-01, lợi suất 10 năm ghi nhận ở mức 1.72% — mức đóng cửa thấp nhất trong giai đoạn này — và lợi suất kỳ hạn 2 năm giảm từ 1.58% xuống 1.31% trong cùng khoảng thời gian đó. TLT, ETF trái phiếu Chính phủ kỳ hạn dài trong bảng trên, cũng phản ánh diễn biến tương tự trong phiên: mở cửa với mức tăng +1.8% nhưng giảm xuống còn +0.2% khi đóng cửa.
Những ngày xung quanh sự kiện
Ba tuần dữ liệu đóng cửa hàng ngày giúp làm rõ bối cảnh của đợt đảo chiều — và âm thầm xác định liệu xu hướng đó có được duy trì hay không:
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
toString(et_date) AS session,
close_usd,
round(if(prev_close = 0, NULL, (close_usd / prev_close - 1) * 100), 1) AS change_pct,
shares_m
FROM (
SELECT et_date, close_usd, shares_m,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_usd,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-18 00:00:00') AND window_start < toDateTime('2022-03-15 23:59:00')
GROUP BY et_date
)
)
WHERE et_date >= toDate('2022-02-22') AND et_date <= toDate('2022-03-14')
ORDER BY et_dateCác phiên trước khi cuộc xâm lược diễn ra đều là nến đỏ (-1% và -2.6% vào ngày 22–23 tháng 2) do các tin tức về việc dồn quân chiếm sóng truyền thông. Bản thân ngày diễn ra cuộc xâm lược đã đóng cửa ở mức +3.4%, tiếp đó là mức +1.5% vào ngày hôm sau. Việc thị trường giảm khi có đe dọa và tăng khi sự kiện thực sự xảy ra là một mô hình cũ đến mức đã có cả câu ngạn ngữ trên Wall Street dành cho nó, và diễn biến này là minh chứng rõ ràng nhất trong thời đại hiện nay. Tuy nhiên, hãy tiếp tục theo dõi bảng dữ liệu: nó kết thúc ở mức $318.21 vào ngày 2022-03-14 — thấp hơn mức giá ghi nhận trong đợt hoảng loạn sáng ngày diễn ra cuộc xâm lược.
Đợt tăng giá có duy trì được không?
Không — và giờ đây có bằng chứng xác thực:
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2023-01-01 00:00:00')
GROUP BY d
),
(SELECT c FROM daily WHERE d = toDate('2022-02-24')) AS invasion_close,
(
SELECT round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
) AS invasion_low
SELECT
invasion_close,
invasion_low,
toString(minIf(d, c < invasion_low AND d > toDate('2022-02-24'))) AS first_close_below_invasion_low,
dateDiff('day', toDate('2022-02-24'), minIf(d, c < invasion_low AND d > toDate('2022-02-24'))) AS calendar_days_to_new_low,
round(minIf(c, d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31')), 2) AS march_low_close,
toString(argMinIf(d, (c, d), d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31'))) AS march_low_date,
round((minIf(c, d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31')) / invasion_close - 1) * 100, 1) AS march_low_vs_invasion_close_pct,
round(minIf(c, d > toDate('2022-02-24')), 2) AS year_low_close,
toString(argMinIf(d, (c, d), d > toDate('2022-02-24'))) AS year_low_date,
round((minIf(c, d > toDate('2022-02-24')) / invasion_close - 1) * 100, 1) AS year_low_vs_invasion_close_pct
FROM daily18 ngày kể từ khi cuộc xung đột bắt đầu, vào ngày 2022-03-14, QQQ đã đóng cửa dưới mức thấp kỷ lục $318.26 của phút mở cửa trong phiên sáng ngày xảy ra xung đột. Mức đóng cửa thấp của tháng Ba là $318.21 nằm thấp hơn -6.6% so với mức đóng cửa ngày xảy ra xung đột — và xu hướng giảm vẫn tiếp diễn: đến 2022-12-28, QQQ đóng cửa ở mức $260.02, thấp hơn -23.7% so với mức kết thúc của ngày xảy ra xung đột. Sự đảo chiều ngày 24 tháng Hai là có thật, diễn ra mạnh mẽ — và mang tính cục bộ. Chu kỳ tăng lãi suất, chứ không phải chiến tranh, mới là yếu tố định hướng cho năm 2022, cùng một bài học mà thảm họa tháng 3 năm 2020 đã dạy theo chiều hướng ngược lại.
Mức độ hiếm gặp của một đợt đảo chiều lớn thế này là bao nhiêu?
Quét mọi phiên giao dịch của QQQ từ năm 2003 đến cuối năm 2025 cho thấy có chính xác 2 phiên giao dịch có mức giảm ít nhất 3% so với giá đóng cửa trước đó trong phiên nhưng vẫn kết thúc cao hơn ít nhất 1%:
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
toString(d) AS session,
low_vs_prior_pct,
close_vs_prior_pct,
trough_to_close_pct
FROM (
SELECT
d,
round((lo / prev_c - 1) * 100, 1) AS low_vs_prior_pct,
round((c / prev_c - 1) * 100, 1) AS close_vs_prior_pct,
round((c / lo - 1) * 100, 1) AS trough_to_close_pct
FROM (
SELECT d, c, lo,
lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
FROM (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS c,
minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS lo
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ'
AND window_start >= toDateTime('2003-01-01 00:00:00') AND window_start < toDateTime('2026-01-01 00:00:00')
GROUP BY d
)
)
WHERE prev_c > 0 AND isFinite(prev_c)
)
WHERE low_vs_prior_pct <= -3 AND close_vs_prior_pct >= 1
ORDER BY sessionNgày 24 tháng 2 năm 2022 là một ví dụ. Trường hợp còn lại là 2022-10-13 — phiên giao dịch mở cửa một giờ sau báo cáo lạm phát cao hơn dự kiến, một ngày "gap-down-close-green" khác. Đợt đảo chiều trong ngày xảy ra cuộc xâm lược có biên độ lớn hơn: một cú swing từ đáy đến giá đóng cửa là 7% ngược chiều với 5.7%. Trong suốt hai mươi ba năm dữ liệu, cả hai kết quả này đều rơi vào cùng một năm.
Bài học từ ngày hôm nay
Có ba cơ chế bền vững được thể hiện qua diễn biến thị trường này. Thứ nhất: khi một sự kiện được kỳ vọng rộng rãi diễn ra, các vị thế thường đã được thiết lập từ trước — hai phiên giảm điểm trước cuộc xâm lược đã phản ánh sự kỳ vọng đó. Thứ hai: phiên đấu giá mở cửa là lúc nỗi sợ hãi tích tụ qua đêm được giải tỏa tại một mức giá duy nhất, và mức giá đó có thể là mức cực đại của ngày theo cả hai hướng. Thứ ba: một cú đảo chiều mạnh mẽ trong một ngày cho bạn biết về dòng tiền của ngày đó, chứ không phải về xu hướng của quý tiếp theo — thực tế là những tuần sau phiên này thị trường vẫn tiếp tục lập đáy mới. Những ngày có sự kiện sẽ mang lại lợi nhuận cho những ai hiểu rõ bộ máy vận hành; và sẽ trừng phạt những ai nhầm lẫn hình thái của một phiên giao dịch với xu hướng của một chu kỳ.
Chi tiết về khối lượng giao dịch xác nhận rõ ai đang làm gì: 128.5 triệu cổ phiếu đã khiến đây trở thành phiên có khối lượng lớn nhất trong bảng ba tuần ở trên, và khối lượng lớn trong một đợt tăng từ đáy đến khi đóng cửa cho thấy lực mua thực sự đang đối đầu với lực bán thực sự — chứ không phải là sự trôi dạt do thiếu thanh khoản. Hãy so sánh với đặc điểm tương tự trong đợt hồi phục ngày 24 tháng 3 năm 2020, nơi khối lượng giao dịch quyết liệt cũng đánh dấu sự đảo chiều của một đợt bán tháo, và đối chiếu nó với những ngày hồi phục với khối lượng thấp rồi suy yếu vào phiên tiếp theo.
Câu hỏi thường gặp về ngày xảy ra cuộc xâm lược
Thị trường chứng khoán đã diễn biến thế nào khi Nga xâm lược Ukraine?
Ngay trong ngày đó — 24 tháng 2 năm 2022 — ETF Nasdaq-100 QQQ mở cửa giảm -3.2% với mức thấp nhất trong phút đầu tiên, sau đó tăng dần suốt phiên để đóng cửa ở mức +3.4%. ETF S&P 500 SPY đóng cửa +1.5% và ETF Dow DIA đóng cửa +0.3%.
Tại sao cổ phiếu lại tăng khi Nga xâm lược Ukraine?
Trang này không đưa ra các động cơ; nó chỉ ghi lại diễn biến — áp lực bán mạnh đã thể hiện hoàn toàn vào lúc mở cửa lúc 9:30, và lực mua đã chiếm ưu thế trong mọi giờ tiếp theo. Mô hình giảm khi có đe dọa và hồi phục khi sự kiện xảy ra có nhiều sự kiện tương tự trong lịch sử.
Giá dầu và vàng đã diễn biến thế nào khi Nga xâm lược Ukraine?
Cả hai đều tăng vọt khi mở cửa rồi giảm dần: ETF năng lượng XLE nhảy gap +2.1% và đóng cửa ở mức -0.9%, còn ETF vàng GLD nhảy gap +2.4% và đóng cửa ở mức -0.6%. Các cổ phiếu phòng thủ giữ được mức tăng: cả bốn mã lớn trong danh mục trên đều đóng cửa ở sắc xanh.
Đợt hồi phục sau cuộc xâm lược có kéo dài không?
Không. QQQ đóng cửa dưới mức thấp kỷ lục trong cơn hoảng loạn của ngày xảy ra xâm lược 18 ngày lịch sau đó, vào ngày 2022-03-14, và tại mức thấp nhất của năm 2022 vào ngày 2022-12-28, nó đứng ở mức -23.7% dưới mức đóng cửa của ngày xảy ra xâm lược.
Một đợt đảo chiều như ngày 24 tháng 2 năm 2022 hiếm đến mức nào?
Rất hiếm. Từ năm 2003 đến cuối năm 2025, chỉ có 2 phiên giao dịch của QQQ có mức giảm trong ngày từ 3% trở lên so với mức đóng cửa trước đó nhưng vẫn đóng cửa cao hơn ít nhất 1% — trường hợp này, và 2022-10-13.
Mọi biểu đồ trên đều là các truy vấn đã được lưu trữ và phân phiên từ dữ liệu lịch sử — hãy mở rộng SQL để xem từng phép đo. Bạn muốn trải nghiệm ngày này thay vì chỉ đọc về nó? Đây là một trong các kịch bản có thể chơi được trong trình mô phỏng giao dịch Strasmore Labs.