৯ মার্চ ২০০৯: বাজারের সর্বনিম্ন স্তর
৯ মার্চ ২০০৯ ছিল আর্থিক সংকটের সর্বনিম্ন স্তর। সেই সোমবারের শান্ত লেনদেন এবং বাজারের ঐতিহাসিক নিম্নমুখী পর্যায়ের প্রকৃত চিত্রটি এখানে দেখুন।
৯ মার্চ, ২০০৯ আধুনিক বাজার ইতিহাসের অন্যতম গুরুত্বপূর্ণ একটি তারিখ: আর্থিক সংকটের সর্বনিম্ন স্তর — যা অক্টোবর ২০০৭-এর শিখর থেকে -56.5% নিচে ছিল — এবং এক দশকেরও বেশি সময় ধরে চলা বুল মার্কেটের প্রথম দিন। সেই সোমবারের সূচকের মান ইতিহাসে উল্লেখ করা হয়: S&P 500-এর ক্ষেত্রে ৬৭৬.৫৩ এবং Dow-এর ক্ষেত্রে ৬,৫৪৭। নিচের তথ্যগুলো SPY বা S&P 500 ETF ব্যবহার করে তৈরি করা হয়েছে, যার প্রতি মিনিটের তথ্য এই ডেটাবেসে ২০০৩ সাল পর্যন্ত সংরক্ষিত আছে। এবং এই তথ্যে একটি অপ্রীতিকর সত্য প্রকাশ পায়: সেই দিনের লেনদেন দেখে বোঝার মতো কোনো সংকেত ছিল না। কোনো বড় ধরনের পতন বা আকস্মিক পরিবর্তনের লক্ষণ ছিল না — এটি ছিল একটি শান্ত ও ধীরগতির নিম্নমুখী সোমবার, যা ঘটনাক্রমে শেষ দিন হিসেবে চিহ্নিত হয়েছিল। প্রতিটি সংখ্যা একটি সংরক্ষিত কুয়েরি; SQL দেখতে যেকোনো প্যানেল বড় করে দেখুন।
নিম্নমুখী যাত্রার পথ
সংকটটি বিভিন্ন ধাপে এসেছিল এবং নিচের তথ্যগুলো বোঝার জন্য তারিখগুলো অত্যন্ত গুরুত্বপূর্ণ। ২০০৮ সালের মার্চ মাসে Bear Stearns-কে JPMorgan-এর কাছে বিক্রি করা হয়েছিল। ২০০৮ সালের ১৫ সেপ্টেম্বর সোমবার Lehman Brothers দেউলিয়া হওয়ার আবেদন জানায় — এই বিষয়ের বিস্তারিত এখানে দেখুন। কংগ্রেস ৩ অক্টোবর ৭০% বিলিয়ন ডলারের ব্যাংক-উদ্ধার তহবিল TARP পাস করে। AIG-এর সরকারি উদ্ধার কার্যক্রম দুবার বৃদ্ধি করা হয়েছিল। Citigroup নভেম্বরে তাদের দ্বিতীয় ফেডারেল ব্যাকস্টপ গ্রহণ করে। শীতকালীন র্যালিটি ম্লান হয়ে যায় এবং ২০০৯ সালের শেষ ফেব্রুয়ারির মধ্যে গড় সূচকগুলো নভেম্বরের নিম্নতম স্তর অতিক্রম করে ক্রমাগত কমতে থাকে। নিচের সারিটি এই সতেরো মাসের সময়কালকে সংকুচিত করে দেখায়:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
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 close_usd
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2007-01-02 00:00:00') AND window_start < toDateTime('2013-07-01 00:00:00')
GROUP BY et_date
),
(SELECT max(close_usd) FROM daily WHERE et_date < toDate('2008-01-01')) AS peak_close_usd
SELECT
round(peak_close_usd, 2) AS peak_close,
toString(argMaxIf(et_date, (close_usd, et_date), et_date < toDate('2008-01-01'))) AS peak_date,
round(minIf(close_usd, et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30')), 2) AS trough_close,
toString(argMinIf(et_date, (close_usd, et_date), et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30'))) AS trough_date,
round((minIf(close_usd, et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30')) / peak_close_usd - 1) * 100, 1) AS decline_pct,
toString(minIf(et_date, et_date > toDate('2009-03-09') AND close_usd >= peak_close_usd)) AS recovered_date
FROM daily2007-10-09 তারিখে 156.41 এর ক্লোজিং পিক থেকে, 2009-03-09 তারিখে SPY কমে 68.07 এ দাঁড়ায় — যা একটি -56.5% পতন, যা ১৯৩০-এর দশকের পর থেকে সবচেয়ে গভীর। একই সারিতে সেই সংখ্যাটি রয়েছে যা দীর্ঘমেয়াদী বিনিয়োগকারীরা পরবর্তী ধাপ হিসেবে জানতে চান: রাউন্ড ট্রিপ। SPY তার ২০০৭ সালের সর্বোচ্চ শিখরের উপরে পুনরায় ক্লোজ করতে পারেনি 2013-03-14 পর্যন্ত — যা নিম্নতম স্তর থেকে চার বছর এবং সর্বোচ্চ শিখর থেকে সাড়ে পাঁচ বছর পরের ঘটনা। এই গাণিতিক হিসাবের উভয় অংশই নিচে বিস্তারিতভাবে দেওয়া হলো।
দিনের সারসংক্ষেপ
প্রতিটি সংখ্যার পেছনের সঠিক 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 = 'SPY'
AND window_start >= toDateTime('2009-03-06 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
) AS prior_rth_close,
(
SELECT round(avg(day_shares) / 1e6, 1)
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, toFloat64(sum(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2008-12-01 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
GROUP BY d
ORDER BY d DESC
LIMIT 20
)
) AS avg20_shares,
(
SELECT round(avg(day_shares) / 1e6, 1)
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, toFloat64(sum(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2008-12-01 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
GROUP BY d
ORDER BY d DESC
LIMIT 60
)
) AS avg60_shares
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(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,
formatDateTime(toTimeZone(argMaxIf(window_start, (toFloat64(high), -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 high_et,
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(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(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
avg20_shares AS avg20_shares_m,
avg60_shares AS avg60_shares_m,
round((toFloat64(sum(volume)) / 1e6 / avg20_shares - 1) * 100, 0) AS vol_vs_20d_pct,
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 = 'SPY'
AND window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2009-03-09 23:59:00')SPY 67.95 ডলারে ওপেন করেছে — যা শুক্রবারের 68.84 ডলার ক্লোজিং থেকে -1.3% গ্যাপ ডাউন — 10:13 ET সময়ে এটি 70 ডলারে পৌঁছেছিল, দিনের শেষভাগে (15:17 ET) 67.73 ডলারে নেমে আসে এবং $68.07 ডলারে ক্লোজ করেছে — যা দিনের জন্য -1.1%। পুরো সেশনের রেঞ্জ ছিল প্রায় দুই ডলার। একটি প্রজন্মের সবচেয়ে গুরুত্বপূর্ণ ক্লোজিং প্রিন্ট কোনো নাটকীয় মুহূর্ত ছাড়াই সম্পন্ন হয়েছে।
ভলিউম এমন একটি প্রশ্নের উত্তর দেয় যা কেবল সংখ্যা দিয়ে পাওয়া সম্ভব নয়: 357.4 মিলিয়ন শেয়ার কি উচ্চ ছিল নাকি নিচু? মার্চ ২০০৯-এর জন্য, এটি নিচু ছিল। গত ২০টি সেশনে প্রতিদিন গড়ে 406.3 মিলিয়ন SPY শেয়ার ট্রেড হয়েছে — সেই গড়ের তুলনায় সর্বনিম্ন ছিল -12% — এবং গত ৬০টি সেশনের গড় ছিল 337.9 মিলিয়ন। লোকগাথা অনুযায়ী, রেকর্ড পরিমাণ লেনদেনের মাধ্যমে প্রজন্মের সর্বনিম্ন স্তর বা ক্যাপিচুলেশন আসে। আধুনিক যুগের সবচেয়ে বিখ্যাত বটম বা সর্বনিম্ন স্তরটি তার নিজস্ব মাসের একটি সাধারণ দিনের তুলনায় কম ট্রেড হয়েছিল।
সেশনের গতিপ্রকৃতি
প্রতিটি সংখ্যার পেছনের সঠিক 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 = 'SPY'
AND window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2009-03-09 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অর্ধ-ঘণ্টার এই পথচলা একটি সূক্ষ্ম বিষয় সংশোধন করে যা অধিকাংশ বর্ণনায় এড়িয়ে যাওয়া হয়: ৯ মার্চ কোনো একমুখী পতন ছিল না। গ্যাপ ডাউন হওয়ার পর, SPY মধ্য-সকাল পর্যন্ত বৃদ্ধি পেয়েছিল — 10:00 ET বাকেটে এটি $69.49 এ বন্ধ হয়, যা 10:13 সময়ে నమోदित $70 দিনের উচ্চতম দামের সামান্য নিচে ছিল — এরপর বিকেল বেলা এই লাভটুকু হারিয়ে ফেলে, 15:17 সময়ে $67.73 এর নিম্নতম অবস্থানে নেমে আসে এবং বাজার বন্ধ হওয়ার আগে সামান্য ঘুরে দাঁড়ায়। বৃদ্ধি, হ্রাস এবং সামান্য পুনরুদ্ধার: এটি একটি অত্যন্ত সাধারণ গতিপ্রকৃতি। এখানে কোনো জলপ্রপাতের মতো পতন, আতঙ্কের মতো ভলিউম বা V-বটম দেখা যায়নি। একে Lehman Monday's নিম্নতম অবস্থানে বন্ধ হওয়ার জরুরি অবস্থা বা the flash crash's শূন্যতার সাথে তুলনা করবেন না: এটি সম্পূর্ণ ভিন্ন এক ধরন, যা হলো ক্লান্ত বাজার। সেই শীতের কয়েক শতাংশের পতনগুলো এর আগের সপ্তাহগুলোতেই ঘটেছিল। এই দিনের সর্বনিম্ন বিন্দুটি ছিল সেই মুহূর্ত যখন বিক্রেতারা শেষ হয়ে গিয়েছিলেন।
বাজারের মোড় কোন দিকে ঘুরল
সোমবারের তথ্যে মঙ্গলবার কেন পরিবর্তন এল তার কোনো কারণ পাওয়া যায়নি — এই পরিবর্তনটি বাজারের লেনদেনের মাধ্যমে নয়, বরং সংবাদমাধ্যমের খবরের মাধ্যমে এসেছিল। মঙ্গলবার বাজার খোলার আগে Citigroup-এর প্রধান নির্বাহী Vikram Pandit-এর একটি অভ্যন্তরীণ মেমো সংবাদমাধ্যমে ফাঁস হয়ে যায়: সেখানে বলা হয়েছিল, ব্যাংকটি ২০০৯ সালের জানুয়ারি এবং ফেব্রুয়ারি মাসে লাভজনক ছিল, যা ২০০৭ সালের পর তাদের সেরা দুই মাস। Citigroup — যা এই সংকটের কেন্দ্রবিন্দু এবং সোমবার বাজার বন্ধের সময় $1.05 মূল্যে লেনদেন করছিল — গত কয়েক মাস ধরে কোনো প্রাথমিক উৎসের ইতিবাচক সংবাদ দেয়নি। নিম্নতম পর্যায়ের পরবর্তী পাঁচটি সেশনের লেনদেনের তথ্য নিচে দেওয়া হলো:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
argMaxIf(toFloat64(close), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS spy_close_raw,
round(argMaxIf(toFloat64(close), window_start, ticker = 'C' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS citi_close,
round(toFloat64(sumIf(volume, ticker = 'SPY')) / 1e6, 1) AS spy_shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'C')
AND window_start >= toDateTime('2009-03-06 04:00:00') AND window_start < toDateTime('2009-03-14 00:00:00')
GROUP BY et_date
)
SELECT
toString(d.et_date) AS session,
round(d.spy_close_raw, 2) AS spy_close,
round((d.spy_close_raw / d.prev_close - 1) * 100, 1) AS spy_change_pct,
d.spy_shares_m,
d.citi_close,
t.ten_year_pct
FROM (
SELECT *, lagInFrame(spy_close_raw) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM daily
) AS d
LEFT JOIN (
SELECT date, round(toFloat64(yield_10_year), 2) AS ten_year_pct
FROM global_markets.treasury_yields
WHERE date BETWEEN '2009-03-09' AND '2009-03-13'
) AS t ON d.et_date = t.date
WHERE d.et_date >= toDate('2009-03-09')
ORDER BY d.et_date১০ মার্চ বাজার উচ্চমূল্যে যাত্রা শুরু করেছিল এবং আর তা কমেনি: SPY 72.21 মূল্যে বন্ধ হয়েছে, যা 6.1% বৃদ্ধি পেয়েছে এবং 401.3 মিলিয়ন শেয়ার লেনদেন হয়েছে — যা সর্বনিম্ন দিনের তুলনায় অনেক বেশি ভলিউম। Citigroup বন্ধ হয়েছে $1.44 মূল্যে। শুক্রবার নাগাদ, SPY দাঁড়িয়েছে $76.09 মূল্যে এবং Citigroup দাঁড়িয়েছে $1.78 মূল্যে। একই মঙ্গলবার ১০-বছাদী Treasury yield 2.89% থেকে বেড়ে 2.99% হয়েছে — শেয়ার বাজারের এই উত্থানের পাশাপাশি নিরাপদ সম্পদ থেকে অর্থ বেরিয়ে যাচ্ছে, অর্থাৎ 'flight-to-quality' ট্রেডটি উল্টো দিকে ঘুরছে।
একটি সতর্কতা: সেই শীতকালে ইতিমধ্যে বেশ কিছু কয়েক শতাংশের উত্থান এসেছিল যা ব্যর্থ হয়েছিল, এবং ১০ মার্চের কোনো কিছুই এটি যে ভিন্ন কিছু তা নিশ্চিত করেনি। ঐতিহাসিকরা এই পরিবর্তনের সন্ধিক্ষণ হিসেবে Pandit-এর মেমোটিকে চিহ্নিত করেন; বাজারের লেনদেনের তথ্য কেবল সময়ের এই কাকতালীয় মিলটিই দেখাতে পারে — যা উপরে দেখানো হয়েছে।
নিম্নস্তরটি কি বজায় ছিল?
একটি নিম্নস্তর তখনই প্রকৃত নিম্নস্তর হিসেবে গণ্য হয়, যখন বাজার আর কখনো সেই স্তরে ফিরে আসে না। এই প্যানেলটি ২০০৯ সালের জুন মাসের শেষ পর্যন্ত সপ্তাহভিত্তিক SPY-এর গতিবিধি পর্যবেক্ষণ করে — শেষ কলামে প্রতিটি সপ্তাহের সর্বনিম্ন লেনদেন এবং চূড়ান্ত ক্লোজিং প্রাইসসহ চলমান সর্বনিম্ন মান (running minimum) দেখানো হয়েছে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS day_low,
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 day_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2009-03-10 04:00:00') AND window_start < toDateTime('2009-06-27 00:00:00')
GROUP BY et_date
)
SELECT
week_of,
week_low,
week_close,
round(min(week_low) OVER (), 2) AS lowest_low_after_mar9
FROM (
SELECT
toString(toMonday(et_date)) AS week_of,
round(min(day_low), 2) AS week_low,
round(argMax(day_close, et_date), 2) AS week_close
FROM daily
GROUP BY week_of
)
ORDER BY week_of৯ মার্চের পরবর্তী ষোলো সপ্তাহে SPY-এর সর্বনিম্ন লেনদেন ছিল $69.37 — এবং এই মানটি নিম্নস্তরের পরবর্তী প্রথম সপ্তাহে (2009-03-09) দেখা গিয়েছিল। SPY আর কখনোই ৯ মার্চের ক্লোজিং প্রাইস $68.07-এর নিচে লেনদেন করেনি, এমনকি $67.73 ইন্ট্রাডে লো-এর নিচেও নয়। পুরনো স্তরে কোনো রিটেস্ট, দ্বিতীয় সুযোগ বা পুলব্যাক দেখা যায়নি: 2009-05-04 সপ্তাহের মধ্যে SPY $93.04 প্রাইসে ক্লোজ হয়েছে, যা নয় সপ্তাহে নিম্নস্তরের চেয়ে তিন শতাংশ বেশি। কনফার্মেশনের জন্য অপেক্ষা করার একটি নির্দিষ্ট মূল্য ছিল, যা এই প্যানেলে স্পষ্টভাবে উল্লেখ করা হয়েছে।
নিম্ন পর্যায় থেকে ঘুরে দাঁড়ানোর নেতৃত্বে কারা ছিল
যে ব্যাংকগুলো সবচেয়ে বেশি ক্ষতিগ্রস্ত হয়েছিল, ঘুরে দাঁড়ানোর ক্ষেত্রেও তারাই ছিল প্রধান। ২০১০ সালের মার্চ ৯ তারিখের কাছাকাছি সময়ের সর্বনিম্ন অবস্থান থেকে এক বছরের পরিবর্তন:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
SELECT
ticker,
round(b_close, 2) AS close_mar9_2009,
round(y_close, 2) AS close_mar9_2010,
round((y_close / b_close - 1) * 100, 0) AS pct_1yr,
fin AS financial
FROM (
SELECT
ticker,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2009-03-09') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS b_close,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2010-03-09') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS y_close,
max(ticker IN ('C', 'BAC', 'WFC', 'JPM', 'GS', 'XLF')) AS fin
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('C', 'BAC', 'WFC', 'JPM', 'GS', 'XLF', 'SPY', 'AAPL', 'XOM')
AND ((window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2009-03-10 04:00:00'))
OR (window_start >= toDateTime('2010-03-09 04:00:00') AND window_start < toDateTime('2010-03-10 04:00:00')))
GROUP BY ticker
)
ORDER BY pct_1yr DESCশীর্ষ তালিকা: BAC +349%, C +265% (প্রতি শেয়ারে $1.05 থেকে), WFC +190% — সবচেয়ে বেশি ক্ষতিগ্রস্ত বড় আর্থিক প্রতিষ্ঠানগুলো, যেগুলোর দাম সর্বনিম্ন পর্যায়ে থাকার পর তিন থেকে চার গুণ বৃদ্ধি পেয়েছে। এই তালিকায় সব ব্যাংক নেই — AAPL একই বছরে 168% বৃদ্ধি পেয়েছে — তবে এই প্যানেলের সিদ্ধান্ত হলো যে, সবচেয়ে ভালো পারফর্ম করা কোম্পানিটি একটি আর্থিক প্রতিষ্ঠান। এদিকে সামগ্রিক বাজার (SPY) 68% বৃদ্ধি পেয়েছে, এবং XOM, যা পতনের সময় সবচেয়ে ভালো সুরক্ষা দিয়েছিল, তা মাত্র 3% বৃদ্ধি পেয়েছে। এই ঘুরে দাঁড়ানোর ফলে পতনের তালিকার ঠিক উল্টো চিত্র দেখা গেছে।
অন্যান্য নিম্নতম পর্যায়ের সাথে এর তুলনা
এখানে মিনিটের টেপ সেপ্টেম্বর ২০০৩ থেকে শুরু হয়েছে, তাই অক্টোবর ২০০২ সালের ডট-কমের নিম্নতম স্তরটি এই পরিসরের বাইরে। এরপর থেকে সবচেয়ে বড় তিনটি ক্লোজিং লো (closing low)-এর বিপরীতে মার্চ ২০০৯-এর চিত্রটি নিম্নরূপ:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
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 close_usd
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2010-03-17 00:00:00'))
OR (window_start >= toDateTime('2011-10-03 04:00:00') AND window_start < toDateTime('2012-10-10 00:00:00'))
OR (window_start >= toDateTime('2018-12-24 04:00:00') AND window_start < toDateTime('2019-12-31 00:00:00'))
OR (window_start >= toDateTime('2020-03-23 04:00:00') AND window_start < toDateTime('2021-03-30 00:00:00')))
GROUP BY et_date
)
SELECT
bottom_session,
round(argMin(close_usd, et_date), 2) AS bottom_close,
round((argMinIf(close_usd, et_date, et_date >= toDate(bottom_session) + 91) / argMin(close_usd, et_date) - 1) * 100, 1) AS plus_3mo_pct,
round((argMinIf(close_usd, et_date, et_date >= toDate(bottom_session) + 365) / argMin(close_usd, et_date) - 1) * 100, 1) AS plus_1yr_pct
FROM (
SELECT
multiIf(et_date >= toDate('2020-03-23'), '2020-03-23',
et_date >= toDate('2018-12-24'), '2018-12-24',
et_date >= toDate('2011-10-03'), '2011-10-03',
'2009-03-09') AS bottom_session,
et_date,
close_usd
FROM daily
)
GROUP BY bottom_session
ORDER BY bottom_session২০০৯ সালের নিম্নতম স্তর থেকে, SPY তিন মাসে 38.5% এবং এক বছরে 68.1% বৃদ্ধি পেয়েছে — এটি জীবিত থাকা অধিকাংশ বিনিয়োগকারীর দেখা সবচেয়ে শক্তিশালী বারো মাস ছিল, যা সংকটের সবচেয়ে সাধারণ দিনটিতে শুরু হয়েছিল। শুধুমাত্র মার্চ ২০২০ কোভিড লো একই পর্যায়ের, যা এর প্রথম বছরে +75.1% বৃদ্ধি পেয়েছে — এই ২০২০ স্টিমুলাস র্যালি-এর গঠন নিয়ে আলাদা পৃষ্ঠা রয়েছে। ২০১১ এবং ২০১৮ সালের কারেকশন লো — যা সেই সময়ে প্রকৃত আতঙ্ক সৃষ্টি করেছিল — তাদের প্রথম বছরে 31.4% এবং 37.1% রিটার্ন দিয়েছে। এই চারটি পর্যায়ের সাধারণ বৈশিষ্ট্য হলো: পতন যত গভীর হয়, পুনরুদ্ধারের প্রথম ধাপটি তত বেশি দ্রুত হয়, এবং প্রথম ধাপটি সবসময়ই পুনরুদ্ধারের সবচেয়ে দ্রুততম অংশ ছিল।
কেন মার্কেট বটম বা তলানি কেবল অতীতের তথ্যে দেখা যায়
এর প্রকৃত কারণ হলো: একটি বটম বা তলানি নির্ধারিত হয় পরবর্তী সময়ে কী ঘটে না তার মাধ্যমে — অর্থাৎ কোনো নতুন লো (low) তৈরি না হওয়া। কিন্তু রিয়েল টাইমে এটি জানা অসম্ভব। ২০০৮ সালের শেষভাগ পর্যন্ত মার্কেট যখন নিচের দিকে নামছিল, তখন প্রস্তাবিত প্রতিটি কোয়ান্টিটেটিভ "বটম সিগন্যাল" বারবার ভুল সংকেত দিয়েছিল; এমনকি ৯ মার্চের সেশনটি সবকটি সিগন্যালের ক্ষেত্রে সাধারণ ছিল — এর গঠন ছিল সাধারণ, ভলিউম ছিল গড়পড়তার নিচে, এবং খবরের প্রভাব দেখা গিয়েছিল কেবল পরের দিন সকালে। যারা দাবি করেন যে তাদের ইন্ডিকেটর এই দিনটিকে চিহ্নিত করেছে, তারা মূলত সারভাইভারশিপ বায়াস বা টিকে থাকার প্রবণতার কথা বলছেন; এর আগে তাদের ইন্ডিকেটর যে অনেকগুলো ভুল বটম নির্দেশ করেছিল, তাই এর প্রমাণ।
এই দিনটি আমাদের যা শেখায়: নির্দিষ্ট পয়েন্টের পরিবর্তে সম্ভাব্য ফলাফলের পরিসরের জন্য প্রস্তুতি নেওয়া। যারা ২০০৯ সালের মার্চ মাস থেকে ভালো লাভ করেছেন, তাদের অধিকাংশই ছিলেন সেই বিনিয়োগকারী যারা পুরো কঠিন শীতকাল জুড়ে নির্ধারিত নিয়ম অনুযায়ী কেনাকাটা চালিয়ে যাচ্ছিলেন — যা return-measurement conventions পদ্ধতিটি ধরে নেয় — তারা নন যারা একদম নিখুঁত লো (low) খুঁজে পেয়েছিলেন। এই শৃঙ্খলার ক্ষেত্রে মার্কেটের ভূমিকা হলো ক্যালিব্রেশন বা সমন্বয় করা, ভবিষ্যদ্বাণী করা নয়: সাধারণ মার্কেটের অবস্থা কেমন তা জানাই হলো আসল, যা একটি সাধারণ সোমবারকে ভুল করে পতনের আরও একটি দিন হিসেবে ভুল করতে বাধা দেয়, যা আসলে মাত্র শেষ হয়েছে।
২০0৯ সালের মার্চের নিম্নতম স্তর সংক্রান্ত সাধারণ জিজ্ঞাসা
২০০৮-২০০৯ সালের ধসের সঠিক নিম্নতম স্তরটি কী ছিল?
সোমবার, ৯ মার্চ, ২০০৯ তারিখে ক্লোজিং লো (closing low) দেখা যায়: SPY ছিল $68.07 এবং S&P 500 সূচক ছিল বহুল আলোচিত ৬৭৬.৫৩। সূচকের বিখ্যাত ইন্ট্রাডে "666" এর মানটি এর আগের দিন অর্থাৎ শুক্রবার, ৬ মার্চ দেখা গিয়েছিল।
২০০৭ থেকে ২০০৯ সালের মধ্যে শেয়ার বাজার কতটা কমেছিল?
SPY ক্লোজিং ভিত্তিতে -56.5% কমেছিল — 2007-10-09 তারিখে $156.41 থেকে 2009-03-09 তারিখে $68.07 এ — যা ১৯৩০-এর দশকের পর মার্কিন ইকুইটির সবচেয়ে বড় ড্রডাউন (drawdown)।
২০০৯ সালের ১০ মার্চ কী ঘটেছিল?
নিম্নতম স্তরের পরের প্রথম সেশন: Citigroup-এর একটি অভ্যন্তরীণ মেমো রাতারাতি ফাঁস হওয়ার পর SPY 6.1% বৃদ্ধি পায়, যেখানে উল্লেখ ছিল যে ব্যাংকটি জানুয়ারি এবং ফেব্রুয়ারি মাসে লাভজনক ছিল। Citigroup নিজে $1.05 এর নিম্নতম স্তর থেকে বেড়ে $1.44 এ ক্লোজ হয়।
২০০৯ সালের নিম্নতম স্তর থেকে বাজার কত দ্রুত পুনরুদ্ধার করেছিল?
প্রথম বছরটি ছিল ঐতিহাসিক: নিম্নতম ক্লোজিং থেকে SPY 68.1% বৃদ্ধি পায়। সংকটের সম্পূর্ণ ড্রডাউন পুনরুদ্ধার করতে অনেক বেশি সময় লেগেছিল — ২০০৭ সালের অক্টোবরের সর্বোচ্চ শিখরের উপরে প্রথম ক্লোজিং এসেছিল 2013-03-14 তারিখে।
আগে থেকে কি নিম্নতম স্তরের কোনো সংকেত পাওয়া গিয়েছিল?
মার্চ ৯ তারিখকে আশেপাশের সপ্তাহগুলোর থেকে আলাদা করার মতো কোনো সংকেত মার্কেটে ছিল না — ওই সেশনটি ছিল শান্ত এবং ভলিউম এর ২০-দিনের গড়ের নিচে ছিল। নিম্নতম স্তরটি মূলত রিট্রোঅ্যাক্টিভভাবে (retroactively) প্রমাণিত হয়েছে, কারণ এর নিচে আর কোনো দাম ওঠেনি: পরবর্তী ষোলো সপ্তাহের মধ্যে সর্বনিম্ন ট্রেডও ৯ মার্চের ক্লোজিংয়ের উপরে ছিল।
উপরের প্রতিটি প্যানেল হলো ঐতিহাসিক টেপ নিয়ে করা একটি সংরক্ষিত এবং ভার্সনযুক্ত কুয়েরি — প্রতিটি পরিমাপ দেখতে SQL এক্সপ্যান্ড করুন। এটি পড়ার পরিবর্তে আপনি কি এই দিনটি অনুভব করতে চান? এটি Strasmore Labs trading simulator-এর একটি প্লেঅ্যাবল সিনারিও।