২৪ ফেব্রুয়ারি ২০২২: যুদ্ধ ও বাজারের অবস্থা
২০২২ সালের ২৪ ফেব্রুয়ারি রাশিয়া ইউক্রেনে আক্রমণ করে। মার্কিন শেয়ার বাজার শুরুতে বড় পতন দেখালেও দিন শেষে ইতিবাচকভাবে বন্ধ হয়। তেলের দাম ও সোনার ওঠানামা দেখুন।
২০২২ সালের ২৪ ফেব্রুয়ারির ভোরে, রাশিয়া ইউক্রেনে পূর্ণমাত্রার আক্রমণ শুরু করে — এবং মার্কিন শেয়ার বাজার দশকের অন্যতম আলোচিত একটি সেশন তৈরি করে। রাতারাতি ইনডেক্স ফিউচারস ব্যাপকভাবে হ্রাস পায়, Nasdaq-100 ETF QQQ -3.2% কমে ওপেন হয় — এবং +3.4% এ বন্ধ হয়। এই পৃষ্ঠাটি সম্পূর্ণ ঘটনাটি লিপিবদ্ধ করে: প্রতি মিনিটে বাজারের পরিবর্তন, S&P 500 এবং Dow-এর গতিবিধি, তেলের দাম, সোনা, প্রতিরক্ষা স্টক, ট্রেজারি এবং ভোলাটিলিটির অবস্থা এবং পরবর্তী সপ্তাহগুলোর চিত্র। প্রতিটি সংখ্যা একটি সংরক্ষিত কুয়েরি; SQL দেখতে যেকোনো প্যানেল প্রসারিত করুন।
বাজার খোলার আগে: রাতের ঘটনাবলি
আক্রমণটি আকস্মিকভাবে ঘটেনি। ২০২১ সালের শেষভাগ এবং २०२२ সালের শুরুর দিকে রাশিয়া ইউক্রেনের সীমান্তের কাছে সৈন্য সমাবেশ করেছিল — সেই সময়ে পশ্চিমা দেশগুলোর হিসাব অনুযায়ী এই সংখ্যা ছিল ১,০০,০০০ এর অনেক বেশি — এবং বাজার কয়েক সপ্তাহ ধরেই এই ঝুঁকির কথা বিবেচনা করে লেনদেন করছিল। সোমবার, ২১ ফেব্রুয়ারি, মস্কো পূর্ব ইউক্রেনের দুটি স্বঘোষিত বিচ্ছিন্নতাবাদী প্রজাতন্ত্রকে স্বীকৃতি দেয়; ওয়াশিংটনের জন্মদিবসের ছুটির কারণে মার্কিন বাজার বন্ধ ছিল এবং এই খবরের প্রভাব বুঝতে সক্ষম প্রথম সেশনটি ছিল ২২ তারিখ মঙ্গলবার, যা ছিল একটি নেতিবাচক বা লাল সেশন। সেই মঙ্গলবারেই পশ্চিমা দেশগুলোর প্রথম পর্যায়ের নিষেধাজ্ঞা কার্যকর হয় এবং এর পাশাপাশি জার্মানি Nord Stream 2 পাইপলাইন সার্টিফিকেশন স্থগিত করে।
এরপর, বৃহস্পতিবার, ২৪ ফেব্রুয়ারি মস্কো সময় সকাল ৬টার কিছু আগে — যা নিউইয়র্ক সময় বুধবার রাত ১০টার কাছাকাছি — রাশিয়ার প্রেসিডেন্ট সামরিক অভিযান ঘোষণা করেন এবং এক ঘণ্টার মধ্যেই ইউক্রেনের বিভিন্ন শহরে বিস্ফোরণের খবর পাওয়া যায়। মার্কিন ইনডেক্স ফিউচারস, যা সারারাত লেনদেন হয়, তা তাৎক্ষণিকভাবে বিক্রি হতে শুরু করে। সূর্যোদয়ের সময় একমাত্র প্রশ্ন ছিল যে, সকাল ৯:৩০ মিনিটের opening auction বুধবারের বাজার বন্ধ হওয়ার সময়ের তুলনায় কতটা নিচে নামবে।
দিনের সারসংক্ষেপ
একটি সারিতেই সমস্ত উত্তর রয়েছে — আগের দিনের ক্লোজ, গ্যাপ, লো, হাই, ক্লোজ এবং ভলিউম:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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')সবার জন্য গুরুত্বপূর্ণ তথ্যটি হলো: সেশনের সর্বনিম্ন মূল্য ছিল $318.26 যা 09:30 ET — উদ্বৃত্তের প্রথম মিনিটে — ছিল আগের দিনের ক্লোজ থেকে -3.4% নিচে। সেই প্রথম মুহূর্তের পর থেকে, QQQ ছয় এবং আধা ঘণ্টা ধরে বৃদ্ধি পায় এবং $340.65 এ গিয়ে শেষ হয়: দিনের শেষে ছিল +3.4%, যা 128 মিলিয়ন শেয়ারের লেনদেনে একটি 7% সুইং (trough-to-close)। এবং ক্লোজিংয়ের সময় কোনো পতন দেখা যায়নি: এটি সেশনের সর্বোচ্চ মূল্য $341.04 এর মাত্র 0.11% নিচে ছিল, যার অর্থ দিনটি মূলত তার সর্বোচ্চ অবস্থানেই শেষ হয়েছে। যারা ট্রেডিংয়ের প্রথম মিনিটে বিক্রি করেছেন, তারা সেশনের চূড়ান্ত সর্বনিম্ন মূল্যের 0.18% এর মধ্যে বিক্রি করেছেন — প্রকৃত সর্বনিম্ন মূল্যটি ওপেনিং ক্রস করার মুহূর্তের কিছু পরে দেখা গিয়েছিল, ওপেনিং ক্রস করার সময় নয় (অকশন প্রিন্ট ছিল $318.84; সর্বনিম্ন ছিল $318.26)।
প্রতিটি ধাপের পরিবর্তন
অর্ধঘণ্টার ব্যবধানে বাজারের ঊর্ধ্বগতির ধরন দেখা যাচ্ছে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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_timeউত্থানটি একেবারে মসৃণ ছিল না — 12:00 ET বাকেটটি $328.03 এ বন্ধ হয়েছে, যা 11:30 ক্লোজিং $330.29 এর চেয়ে কম — তবে বাজারের গতিপ্রকৃতি কখনও বড় কোনো পরিবর্তন দেখায়নি। শেষ বাকেটটি $340.65 এ বন্ধ হয়েছে, যা তালিকার সর্বোচ্চ অবস্থান। লেনদেনের পরিমাণ স্বাভাবিক U আকৃতি অনুসরণ করেছে: প্রারম্ভিক অর্ধঘণ্টায় 18.6 মিলিয়ন শেয়ার এবং শেষ অর্ধঘণ্টায় 15 মিলিয়ন শেয়ার; বিপরীতে দুপুরের দিকে ছিল 4.7 মিলিয়ন। এটি 2011 সালের নিম্নমুখী ধাপের ঠিক বিপরীত চিত্র। এই ধরনের সেশনগুলো প্রমাণ করে কেন "আক্রমণের কারণে বাজার ধসে পড়েছিল" এমন বর্ণনাগুলো বিভ্রান্তিকর: আসলে ফিউচারস রাতারাতি কমেছিল; কিন্তু ক্যাশ সেশন প্রথম মিনিট থেকেই ঊর্ধ্বমুখী ছিল। আপনি কোন পরিস্থিতিটি অনুভব করেছেন তা সম্পূর্ণভাবে নির্ভর করে আপনার অর্ডার কখন পৌঁছেছে তার ওপর — এই বিষয়টি ওভারনাইট গ্যাপস পরিমাপের মাধ্যমে শান্ত সপ্তাহে বোঝা যায়।
Not just the Nasdaq: the whole market reversed
A one-index story would leave the obvious question open: was this a growth-stock quirk or a market-wide reversal? The panel below puts eleven tickers on one yardstick — the three major index ETFs, then the assets a geopolitical-shock playbook reaches for: energy, gold, long Treasuries, a volatility ETF, and four defense contractors.
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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)The reversal was market-wide, but its size didn't simply track the depth of the morning's gap: QQQ gapped -3.2% at the open and closed +3.4%. SPY and DIA gapped by almost the same amount — -2.6% and -2.6% respectively — yet SPY closed +1.5% against DIA's +0.3%, barely green. The growth-heavy index reversed hardest; the industrial-heavy Dow, least — composition, not gap size, separates SPY from DIA.
বিনিয়োগের গতিপ্রকৃতি: তেল, সোনা, প্রতিরক্ষা এবং অস্থিরতা
একই প্যানেলের নিচের সারিগুলো লক্ষ্য করুন — যা "যুদ্ধ সংক্রান্ত বাণিজ্য" নির্দেশ করে। জ্বালানি খাতের শেয়ারগুলো উচ্চমূল্যে যাত্রা শুরু করলেও পতনের মধ্য দিয়ে দিন শেষ করেছে: XLE +2.1% গ্যাপ দিয়ে ওপেন হয়েছিল, ইন্ট্রাডে চলাকালীন পূর্ববর্তী ক্লোজিংয়ের তুলনায় -3.4% পর্যন্ত নেমে এসেছিল এবং শেষ পর্যন্ত -0.9% এ বন্ধ হয়েছে। সোনার ক্ষেত্রেও একই চিত্র দেখা গেছে: GLD +2.4% এ ওপেন হয়েছিল এবং -0.6% এ ক্লোজ হয়েছে। VIXY — যা স্বল্পমেয়াদী VIX ফিউচারস ধারণকারী একটি ETF এবং অস্থিরতা সূচকের সবচেয়ে নিকটবর্তী ট্রেডেবল প্রক্সি — ওপেনের সময় +11.1% গ্যাপ দিয়ে শুরু হয়েছিল এবং পূর্ববর্তী দিনের ক্লোজিংয়ের নিচে -3% এ বন্ধ হয়েছে। ভয়ের নির্দেশক সম্পদগুলো (fear assets) ঠিক তখনই শীর্ষে পৌঁছেছিল যখন খবরের শিরোনামগুলো সবচেয়ে খারাপ ছিল এবং শেয়ার বাজারের পুনরুদ্ধারের সাথে সাথে এগুলোর মান কমে গিয়েছিল: অর্থাৎ ইকুইটি রিভার্সাল বা শেয়ার বাজারের পরিবর্তনের উল্টোটি ঘটেছিল।
প্রতিরক্ষা খাতের কন্ট্রাক্টরগুলো ছিল ব্যতিক্রম যা স্থিতিশীল ছিল। চারটি কোম্পানিই গ্রিন ক্লোজিং করেছে — LMT +1.7%, NOC +2.4%, RTX +2.1%, GD +1.1% — এবং Northrop Grumman পুরো সেশন জুড়ে বুধবারের ক্লোজিংয়ের নিচে কখনও নামেনি (এর ইন্ট্রাডে লো ছিল +1%); এই চারটির মধ্যে এটিই একমাত্র কোম্পানি যা কখনও লাল বা পতনের চিহ্ন দেখায়নি।
Treasuries: নিরাপদ আশ্রয়ের চাহিদা দেরিতে এসেছে
Treasury yield কমে যাওয়া মানে হলো বন্ডের দাম বাড়ছে — যা একটি আদর্শ নিরাপদ আশ্রয়ের (safe-haven) প্রবাহ নির্দেশ করে। আক্রমণের দিনেই এই প্রবাহটি বাজার বন্ধ হওয়ার সময় খুব একটা দেখা যায়নি:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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 date২৪ ফেব্রুয়ারি ১০-বছরের yield 1.96% এ বন্ধ হয়েছে, যা আগের দিনের 1.99% এর চেয়ে সামান্য কম। প্রকৃত বিনিয়োগের স্থানান্তর ঘটেছিল পরের সপ্তাহে: 2022-03-01 নাগাদ ১০-বছরের yield 1.72% এ নেমে আসে — যা এই সময়ের মধ্যে সর্বনিম্ন ক্লোজিং — এবং একই সময়ে ২-বছরের yield 1.58% থেকে 1.31% এ নেমে আসে। উপরের প্যানেলে থাকা দীর্ঘমেয়াদী Treasury ETF, TLT, একই চিত্র intraday বা দিনের লেনদেনের মধ্যে প্রদর্শন করেছে: বাজার খোলার সময় +1.8% গ্যাপ দেখা গেলেও বাজার বন্ধ হওয়ার সময় তা +0.2% এ নেমে আসে।
এর আশেপাশের দিনগুলো
তিন সপ্তাহের দৈনিক ক্লোজিং ডেটা এই রিভার্সাল বা পরিবর্তনের প্রেক্ষাপট এবং এটি স্থায়ী হয়েছে কি না তা নির্ধারণ করতে সাহায্য করে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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_dateআক্রমণের আগেকার সেশনগুলোতে পতন ঘটেছিল (২২-২৩ ফেব্রুয়ারি তারিখে -1% এবং -2.6%), কারণ তখন প্রস্তুতির খবরগুলোই প্রধান ছিল। আক্রমণের দিনটি +3.4% ক্লোজ হয় এবং পরের দিন আরও +1.5% বৃদ্ধি পায়। হুমকির কারণে বাজার পতন এবং ঘটনার কারণে বাজার বৃদ্ধি পাওয়া একটি পরিচিত প্যাটার্ন, যার জন্য वॉल স্ট্রিটে প্রবাদও রয়েছে; আর এই চার্টটি তার একটি পরিষ্কার আধুনিক উদাহরণ। তবে নিচের তালিকাটি লক্ষ্য করুন: এটি 2022-03-14 তারিখে $318.21-তে শেষ হয়েছে — যা আক্রমণের দিন সকালে পতনজনিত অস্থিরতার স্তরের নিচে।
র্যালি কি টিকে ছিল?
না — এবং এখন এর প্রমাণ পাওয়া গেছে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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 dailyআক্রমণের 18 ক্যালেন্ডার দিন পর, 2022-03-14 তারিখে, QQQ আক্রমণের দিনের শুরুর মিনিটের 318.26 ডলারের প্যানিক লো (panic low)-এর নিচে বন্ধ হয়েছে। সেই মার্চের 318.21 ডলারের লো ক্লোজ ছিল আক্রমণের দিনের ক্লোজিংয়ের চেয়ে -6.6% নিচে — এবং এই ধারা অব্যাহত ছিল: 2022-12-28 নাগাদ, QQQ আক্রমণের দিনের ক্লোজিংয়ের চেয়ে -23.7% ডলার নিচে 260.02 ডলারে বন্ধ হয়েছে। ফেব্রুয়ারি ২৪-এর এই রিভার্সাল ছিল বাস্তব, তীব্র — এবং স্থানীয়। যুদ্ধের পরিবর্তে সুদের হার বৃদ্ধির চক্রই ২০২২ সালের গতিপথ নির্ধারণ করেছিল, যা মার্চ ২০২০ ক্র্যাশ আমাদের উল্টো দিক থেকে শিখিয়েছিল।
এই আকারের রিভার্সাল কতটা বিরল?
২০০৩ থেকে ২০২৫ সালের শেষ পর্যন্ত প্রতিটি QQQ সেশন পরীক্ষা করে দেখা গেছে যে, ঠিক 2টি সেশনে ইন্ট্রাডে প্রাইস আগের ক্লোজিংয়ের চেয়ে অন্তত ৩% নিচে নেমেছিল এবং তবুও অন্তত ১% উপরে ক্লোজ হয়েছিল:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
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 session২২ ফেব্রুয়ারি, ২০২২ এর একটি উদাহরণ। অন্যটি হলো 2022-10-13 — একটি প্রত্যাশার চেয়ে বেশি উচ্চ মুদ্রাস্ফীতির রিপোর্টের এক ঘণ্টা পর যে সেশনটি শুরু হয়েছিল, সেটি ছিল আরেকটি gap-down-close-green দিন। আক্রমণের দিনের রিভার্সালটি ছিল এই দুটির মধ্যে বড়: 5.7% এর বিপরীতে এটি ছিল একটি 7% trough-to-close সুইং। তেইশ বছরের মার্কেটের তথ্যে, উভয় ঘটনাই একই বছরে ঘটেছে।
এই দিনটি যা শেখায়
এই মার্কেটের ডেটা তিনটি টেকসই মেকানিজম বা কৌশল প্রকাশ করে। প্রথমত: কোনো বহুল প্রতীক্ষিত ঘটনা ঘটার আগেই পজিশনিং সম্পন্ন হয়ে যায় — আক্রমণের আগের দুটি লাল সেশন সেই প্রত্যাশা বহন করছিল। দ্বিতীয়ত: ওপেনিং অকশন বা প্রারম্ভিক নিলাম হলো এমন একটি মুহূর্ত যেখানে সারারাত জমে থাকা ভয় একটি নির্দিষ্ট মূল্যে পরিষ্কার হয়ে যায়, এবং সেই মূল্যটি দিনের যেকোনো একদিকে চরম সীমায় পৌঁছাতে পারে। তৃতীয়ত: একটি তীব্র একদিনের রিভার্সাল বা বিপরীতমুখী পরিবর্তন আপনাকে ওই দিনের ফ্লো সম্পর্কে জানায়, পরবর্তী কোয়ার্টারের দিকনির্দেশনা সম্পর্কে নয় — এই সেশনের পরের সপ্তাহগুলোতে বাজার এমনিতেই নতুন নিম্নস্তরে পৌঁছেছিল। ইভেন্ট বা ঘটনা নির্ভর দিনগুলো সেই মেকানিজম সম্পর্কে জানা থাকলে পুরস্কৃত করে; কিন্তু একটি সেশনের ধরনকে বাজারের দীর্ঘমেয়াদী অবস্থার (regime) সাথে গুলিয়ে ফেললে তা শাস্তি দেয়।
ভলিউমের বিস্তারিত তথ্য নিশ্চিত করে কে কী করছিল: 128.5 মিলিয়ন শেয়ার এটিকে উপরের তিন সপ্তাহের তালিকার সবচেয়ে ভারী সেশনে পরিণত করেছে। একটি লো থেকে ক্লোজ পর্যন্ত ঊর্ধ্বমুখী climbs-এ উচ্চ ভলিউম মানে হলো প্রকৃত বিক্রির বিপরীতে প্রকৃত বড় আকারের কেনাকাটা হয়েছে — এটি কোনো ফাঁপা মুভমেন্ট নয়। March 24, 2020's rally এর সাথে একই ধরনের সিগনেচার তুলনা করুন, যেখানে কনভিকশন ভলিউম প্যানিক বা আতঙ্ক কাটানোর মুহূর্তটি চিহ্নিত করেছিল; এবং এর সাথে সেই সব হালকা বা থিন বাউন্স ডেজের তুলনা করুন যা পরবর্তী সেশনে মিলিয়ে যায়।
আক্রমণের দিন সংক্রান্ত FAQ
রাশিয়া যখন ইউক্রেন আক্রমণ করেছিল তখন শেয়ার বাজার কী করেছিল?
সরাসরি সেই দিনে — ২২ ফেব্রুয়ারি, ২০২২ — Nasdaq-100 ETF QQQ প্রথম মিনিটে -3.2% কমে ওপেন হয়েছিল, তারপর পুরো সেশন জুড়ে বেড়ে 3.4% লাভে বন্ধ হয়। S&P 500 ETF SPY 1.5% লাভে এবং Dow ETF DIA 0.3% লাভে বন্ধ হয়।
রাশিয়া যখন ইউক্রেন আক্রমণ করেছিল তখন শেয়ারের দাম কেন বেড়েছিল?
এই পৃষ্ঠাটি কোনো উদ্দেশ্য নির্ধারণ করে না; এটি কেবল ঘটনার ক্রম লিপিবদ্ধ করে — সকাল ৯:৩০ মিনিটে ওপেনিংয়ের সময় ব্যাপক বিক্রির চাপ দেখা গিয়েছিল এবং পরবর্তী প্রতিটি ঘণ্টায় কেনাকাটা বা বাইয়িং প্রাধান্য পেয়েছিল। হুমকির কারণে পতন এবং ঘটনার কারণে ঘুরে দাঁড়ানোর এই প্যাটার্নের অনেক ঐতিহাসিক উদাহরণ রয়েছে।
রাশিয়া যখন ইউক্রেন আক্রমণ করেছিল তখন তেল এবং সোনার দাম কী হয়েছিল?
উভয়ই ওপেনিংয়ের সময় লাফিয়ে উঠেছিল এবং পরে কমে গিয়েছিল: এনার্জি ETF XLE +2.1% গ্যাপ দিয়ে ওপেন হয়েছিল এবং -0.9% লাভে বন্ধ হয়, এবং গোল্ড ETF GLD +2.4% গ্যাপ দিয়ে ওপেন হয়েছিল এবং -0.6% লাভে বন্ধ হয়। ডিফেন্স স্টকগুলো তাদের লাভ ধরে রাখতে পেরেছিল: উপরের প্যানেলের চারটি প্রধান স্টকই গ্রিন বা লাভে বন্ধ হয়েছে।
আক্রমণের পরবর্তী এই তেজি ভাব কি স্থায়ী হয়েছিল?
না। আক্রমণের দিন Panic Low বা সর্বনিম্ন স্তর 18 এর নিচে QQQ 2022-03-14 ক্যালেন্ডার দিন পরে বন্ধ হয়, এবং 2022-12-28 তারিখে এর ২০২২ সালের সর্বনিম্ন স্তরে পৌঁছানোর সময় এটি আক্রমণের দিনের ক্লোজিংয়ের তুলনায় -23.7% নিচে ছিল।
২২ ফেব্রুয়ারি, ২০২২ এর মতো রিভার্সাল কতটা বিরল?
খুবই বিরল। ২০০৩ থেকে ২০২৫ সালের শেষ পর্যন্ত, মাত্র 2টি QQQ সেশনে ইন্ট্রাডে আগের ক্লোজিংয়ের তুলনায় ৩% বা তার বেশি কমে ট্রেড করার পরও অন্তত ১% লাভে বন্ধ হয়েছিল — এর মধ্যে এটি এবং 2022-10-13 অন্তর্ভুক্ত।
উপরের প্রতিটি প্যানেল ঐতিহাসিক ডেটার ওপর ভিত্তি করে একটি সংরক্ষিত এবং ভার্সন করা কুয়েরি — প্রতিটি পরিমাপ দেখতে SQL এক্সপ্যান্ড করুন। এটি পড়ার পরিবর্তে আপনি কি এই দিনটি অনুভব করতে চান? এটি Strasmore Labs trading simulator-এর একটি প্লেয়াবল সিনারিও।