২০১০ সালের ফ্ল্যাশ ক্র্যাশ প্রতি মিনিটে
৬ মে, ২০১০ তারিখে মাত্র ছত্রিশ মিনিটের মধ্যে প্রায় এক ট্রিলিয়ন ডলারের বাজারমূল্য হারিয়ে গিয়েছিল। সেই মুহূর্তের লেনদেনের বিস্তারিত বিবরণ এখানে দেওয়া হলো।
৬ মে, ২০১০ তারিখে মার্কিন শেয়ারবাজার ধসে পড়ে এবং আধ ঘণ্টার কিছু সময়ের মধ্যেই আবার স্বাভাবিক অবস্থায় ফিরে আসে — একে বলা হয় ফ্ল্যাশ ক্র্যাশ, যা আধুনিক বাজার ইতিহাসের অন্যতম অদ্ভুত ঘটনা। প্রায় এক ট্রিলিয়ন ডলারের বাজারমূল্য মুহূর্তের মধ্যে হারিয়ে গিয়েছিল এবং তার বেশিরভাগই আবার ফিরে এসেছিল; এই প্রক্রিয়ায় পরিচিত কিছু স্টকের দাম নেমে এসেছিল $0.01 এবং $100000 এ। নিচে দেওয়া হলো: প্রতি মিনিটের লেনদেনের বিবরণ, সময় এবং স্টকের নাম — এবং প্রতিটি সংখ্যার পেছনের সংরক্ষিত কুয়েরি। SQL দেখতে যেকোনো প্যানেলটি প্রসারিত করুন।
সারাদিনের সারসংক্ষেপ
প্রতিটি সংখ্যার পেছনের সঠিক 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('2010-05-05 00:00:00') AND window_start < toDateTime('2010-05-06 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(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(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 = 'SPY'
AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-06 23:59:00')দিনটি শুরু থেকেই অস্থির ছিল — সারাদিন জুড়ে গ্রীক ঋণের খবরের প্রভাব ছিল — এবং SPY তার $116.26 ওপেনিং প্রাইস থেকে ক্রমশ নিচের দিকে নামতে থাকে। এরপর বড় ধরনের পতন ঘটে: দিনের সর্বনিম্ন মূল্য $105 রেকর্ড করা হয় 14:45 ET সময়ে, যা পূর্ববর্তী ক্লোজিং $116.83 এর তুলনায় -10.1% কম। বাজার বন্ধ হওয়ার সময় SPY ফিরে এসে $112.88 এ পৌঁছায় — যা দিনের হিসেবে -3.4%। লেনদেনের পরিমাণ ছিল 639.9 মিলিয়ন শেয়ার, যা SPY-এর ইতিহাসের অন্যতম উচ্চতর লেনদেনের একটি।
ধস, প্রতি মিনিটে
আধা-ঘণ্টার চার্টে এই ঘটনাটি বোঝা যায় না; কিন্তু এক-মিনিটের রেজোলিউশনে এটি স্পষ্ট। এখানে ET সময় অনুযায়ী দুপুর ২:০০ থেকে বিকেল ৩:৩০ পর্যন্ত SPY-এর চিত্র দেওয়া হলো:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
round(toFloat64(close), 2) AS close_usd,
round(toFloat64(low), 2) AS low_usd,
round(toFloat64(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2010-05-06 18:00:00') AND window_start < toDateTime('2010-05-06 19:30:00')
ORDER BY window_startSEC এবং CFTC-এর যৌথ তদন্ত অনুযায়ী, এই ঘটনাটি শুরু হয় প্রায় দুপুর ২:৩২ মিনিটে (ET)। তখন একটি বড় আকারের স্বয়ংক্রিয় বিক্রয় প্রোগ্রাম প্রায় ৭৫,০০০ E-mini S&P 500 ফিউচার কন্ট্রাক্ট (প্রায় $৪.১ বিলিয়ন) বিক্রি করা শুরু করে। এটি চলতে থাকে প্রায় বিকেল ৩:০৮ পর্যন্ত, যখন বাজারের দাম পতনের বেশিরভাগ অংশ কাটিয়ে আবার ফিরে আসে — অর্থাৎ শুরু থেকে শেষ পর্যন্ত মোট ছত্রিশ মিনিট। উপরের চার্টটি সেই গতিপথ অনুসরণ করে। SPY 14:32 মিনিটে ছিল $113.15। বারো মিনিট পর, 14:44 মিনিটে 9.21 মিলিয়ন শেয়ার লেনদেন হয়েছে — যেখানে 14:05 মিনিটের মতো শান্ত মিনিটে লেনদেন ছিল মাত্র 1.44 মিলিয়ন। এরপর 14:45 মিনিটে দিনের সর্বনিম্ন দাম $105 রেকর্ড করা হয়। 15:08 মিনিট শেষ হওয়ার সময় SPY ছিল $113.63 — যা পতনের শুরুর দামের চেয়ে বেশি। মাত্র আধা ঘণ্টায় একটি পূর্ণ চক্র সম্পন্ন হলো।
সারাদিনে মাত্র একবার লেনদেন সাময়িকভাবে বন্ধ (halt) হয়েছিল এবং তা ছিল মাত্র পাঁচ সেকেন্ডের। ET সময় অনুযায়ী দুপুর ২:৪৫:২৮ মিনিটে — যা উপরের সর্বনিম্ন দামের মিনিটের মধ্যেই ছিল — CME-এর Stop Logic ফাংশনটি E-mini ফিউচার ট্রেডিং সাময়িকভাবে স্থগিত করে দেয়, যা অফিসিয়াল রিপোর্টে উল্লেখ করা হয়েছে; এবং স্থগিতাদেশ উঠে গেলে পুনরায় বিড (bid) ফিরে আসে। ২০১০ সালের মার্কেট-ওয়াইড সার্কিট ব্রেকারগুলো Dow-এর ১০, ২০ এবং ৩০ শতাংশের থ্রেশহোল্ডের ওপর ভিত্তি করে কাজ করত। তৎকালীন নিয়ম অনুযায়ী, দিনের শেষভাগে দশ শতাংশ পতন ঘটলে কোনো স্থগিতাদেশ ছিল না; তাই কোনো সার্কিট ব্রেকার কার্যকর হয়নি। সিঙ্গেল-স্টক সার্কিট ব্রেকার তখনো ছিল না — এগুলো এই দিনেরই নতুন উদ্ভাবন।
বিক্রির চাপ সৃষ্টির কারণসমূহ
নিয়ন্ত্রক সংস্থাগুলোর কাছে বিক্রির কারণটি কখনোই রহস্য ছিল না। SEC–CFTC রিপোর্ট অনুযায়ী, একটি মিউচুয়াল ফান্ড কমপ্লেক্স — যা সংবাদমাধ্যমে Waddell & Reed হিসেবে পরিচিত — একটি স্বয়ংক্রিয় অ্যালগরিদম ব্যবহার করছিল। এই অ্যালগরিদমটি মূল্য বা সময়ের কথা বিবেচনা না করেই ভলিউমের হারের সাথে সামঞ্জস্য রেখে E-mini কন্ট্রাক্ট বিক্রি করছিল। ভলিউম বৃদ্ধির সাথে সাথে অ্যালগরিদমটি আরও দ্রুত বিক্রি শুরু করে। সেই সময় হাই-ফ্রিকোয়েন্সি মধ্যস্থতাকারীরা ইনভেন্টরি গ্রহণ করা বন্ধ করে দিয়েছিল এবং তা একে অপরের কাছে হস্তান্তর করতে শুরু করেছিল — যা রিপোর্টে বিখ্যাত "hot potato" ভলিউম হিসেবে পরিচিত। পাঁচ বছর পর এই ঘটনার সাথে দ্বিতীয় একটি নাম যুক্ত হয়: মার্কিন কর্তৃপক্ষ ২০১৫ সালের এপ্রিলে লন্ডনের ট্রেডার Navinder Singh Sarao-কে গ্রেপ্তার করে। তার বিরুদ্ধে অভিযোগ ছিল যে, তিনি ৬ মে এবং আরও শত শত দিনে E-mini অর্ডার বুকে spoofing করেছিলেন — অর্থাৎ এমন সব অর্ডার সাজিয়েছিলেন যা তিনি কখনোই কার্যকর করার ইচ্ছা রাখতেন না। ২০১৬ সালে তিনি দোষ স্বীকার করেন এবং ২০২০ সালের জানুয়ারিতে তার সাজা ঘোষণা করা হয়। সেই বিকেলে তার অর্ডারগুলো কতটা গুরুত্বপূর্ণ ছিল তা নিয়ে বিতর্ক রয়েছে; তবে নিচের কাঠামোগত শিক্ষাটি তার ওপর নির্ভর করে না।
যেখানে বিক্রির চাপ সবচেয়ে বেশি ছিল
প্রতিটি সংখ্যার পেছনের সঠিক SQL
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
round(toFloat64(open), 2) AS minute_open,
round(toFloat64(low), 2) AS minute_low,
round(toFloat64(open) - toFloat64(low), 2) AS drop_within_minute_usd,
round(toFloat64(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2010-05-06 18:00:00') AND window_start < toDateTime('2010-05-06 19:30:00')
ORDER BY drop_within_minute_usd DESC
LIMIT 5খোলার সময়ের তুলনায় মাত্র এক মিনিটে এর মূল্য $5.72 কমে যায় — 14:49 ET সময়ে, মাত্র ৬০ সেকেন্ডে 4.98 মিলিয়ন শেয়ার বিক্রি হয়। মার্কেটের তথ্য যা প্রকাশ করে তা সহজ এবং সুষ্পষ্ট: দাম স্থিতিশীল রাখতে ক্রেতার প্রয়োজন হয়, এবং কয়েক মিনিটের জন্য সেখানে কোনো ক্রেতা ছিল না। মার্কেট অর্ডার কী করতে পারে তা বোঝার জন্য এটি এখন পর্যন্ত সবচেয়ে শক্তিশালী উদাহরণ — ওই সময়ের মধ্যে সক্রিয় হওয়া প্রতিটি stop-loss অর্ডার এমন একটি মার্কেট অর্ডার হিসেবে কাজ করেছিল যা বিদ্যমান ছিল না এমন কোনো বিড (bid) খুঁজছিল। NBBO হলো একটি মার্কেটের হৃৎস্পন্দন, এবং সেই বিকেলে তা স্তব্ধ হয়ে গিয়েছিল।
এক পয়সা এবং ১০০,০০০ ডলার: অযৌক্তিক লেনদেনসমূহ
যখন প্রকৃত বিড (bid) অদৃশ্য হয়ে যায়, তখন নতুন অর্ডারগুলো অবশিষ্ট থাকা যেকোনো কোটেশনের (quote) দিকে চলে যায় — যার মধ্যে মার্কেট-মেকারদের রাখা যেকোনো অসংগতিপূর্ণ "স্টাব কোট" (stub quotes) অন্তর্ভুক্ত থাকে। লেনদেনের রRaw টেপে সেই রেকর্ডগুলো এখনও রয়েছে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
SELECT
ticker,
round(min(toFloat64(price)), 2) AS lowest_print,
round(max(toFloat64(price)), 2) AS highest_print,
countIf(toFloat64(price) <= 0.05) AS penny_prints,
countIf(toFloat64(price) >= 99999) AS hundred_k_prints,
count() AS prints
FROM global_markets.stocks_trades
WHERE ticker IN ('ACN', 'AAPL', 'BID', 'PG')
AND sip_timestamp >= toDateTime('2010-05-06 18:30:00') AND sip_timestamp < toDateTime('2010-05-06 19:30:00')
GROUP BY ticker
ORDER BY ticker ASCAccenture (ACN), একটি কনসালটেন্সি ফার্ম যা সেই বিকেলে প্রায় $41.49 দামে লেনদেন করছিল, তা পাঁচ সেন্ট বা তার কম দামে 43 বার লেনদেন রেকর্ড করেছে, যার সর্বনিম্ন মূল্য ছিল $0.01। অন্যদিকে, Apple প্রতি শেয়ারে $100000 দরে 2 বার লেনদেন করেছে, এবং Sotheby's একইভাবে 2 বার লেনদেন করেছে।
এক্সচেঞ্জগুলো পরবর্তীতে সেই সমস্ত লেনদেন বাতিল করে দেয় যা ক্রাশের আগের রেফারেন্স প্রাইস থেকে ৬০ শতাংশের বেশি দূরে সম্পাদিত হয়েছিল — এবং এই নিয়মটিই রেকর্ডের অসমতা ব্যাখ্যা করে। ACN-এর এক পয়সার লেনদেনগুলো বাতিল হয়ে গেছে, তাই এর সর্বনিম্ন টিকে থাকা মিনিট-বার লো (low), $17.74, রেফারেন্সের তুলনায় -57.2% নিচে অবস্থান করছে — যা বাতিল করার সীমার ঠিক ভেতরে। Procter & Gamble কখনোই স্টাব কোটে লেনদেন করেনি: ওই সময়ের মধ্যে এর সবচেয়ে খারাপ লেনদেন ছিল $39.37, যা এর রেফারেন্সের তুলনায় -36.7% নিচে ছিল, তাই সেখানে বিক্রি হওয়া প্রতিটি স্টপ-লস (stop-loss) কার্যকর ছিল। ACN-এর এক পয়সার লেনদেনগুলো সেই সীমা অতিক্রম করেছিল এবং মুছে ফেলা হয়েছিল; P&G-এর সবচেয়ে খারাপ লেনদেনটি সীমার ভেতরে ছিল এবং তা বহাল ছিল। এই অনির্দিষ্ট সীমানা যেকোনো পুস্তিকার চেয়েও ট্রেডারদের অর্ডার টাইপ সম্পর্কে বেশি শিক্ষা দিয়েছে।
ক্ষতির পরিধি কত ব্যাপক
একই সময়সীমা, শুধুমাত্র সম্মানিত টেপ — প্রতিটি নামের ২:৩০ pm মূল্যের ভিত্তিতে পরিমাপকৃত মিনিটব্যাপী সমষ্টি:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
SELECT
ticker,
round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870), 2) AS pre_crash_1430,
round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915), 2) AS crash_low,
round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS low_vs_1430_pct,
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 871 AND 915), 'America/New_York'), '%H:%i') AS low_et,
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) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS close_vs_1430_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('ACN', 'PG', 'MMM', 'IWM', 'DIA', 'SPY')
AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-06 23:59:00')
GROUP BY ticker
ORDER BY low_vs_1430_pct ASCবিক্ষিপ্ততাই হলো মূল বিষয়। ACN-এর টিকে থাকা সর্বনিম্ন মূল্য তার রেফারেন্সের -57.2% নিচে ছিল এবং P&G-এর ছিল -36.7%, যেখানে বিস্তৃত ETF-গুলো এক অঙ্কের শতাংশে নিচে নেমে এসেছিল — DIA, যা Dow অনুসরণকারী ETF, -6.5% এবং IWM -5.2%। সেই DIA মিনিটের ঘটনাগুলো বিশ্বজুড়ে Dow-এর ইতিহাসে সেই তারিখ পর্যন্ত বৃহত্তম ইন্ট্রাডে পয়েন্ট পতন হিসেবে রিপোর্ট করা হয়েছিল। শেষ কলামটি হলো পুনরুদ্ধারের চিত্র: ছয়টির মধ্যে প্রতিটিই তার ২:৩০ pm লেভেলের প্রায় তিন শতাংশের মধ্যে বন্ধ হয়েছে, যেন মাঝখানের ঘণ্টাটি কেবল একটি গুজব ছিল।
How May 6 compares to other crash days
Set the flash crash against the other famous one-day wrecks in the minute-bar era (this equities tape reaches back to 2003; Black Monday 1987 predates it):
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
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,
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 rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= toDateTime('2008-09-26 04:00:00') AND window_start < toDateTime('2008-09-30 00:00:00'))
OR (window_start >= toDateTime('2010-05-05 04:00:00') AND window_start < toDateTime('2010-05-07 00:00:00'))
OR (window_start >= toDateTime('2015-08-21 04:00:00') AND window_start < toDateTime('2015-08-25 00:00:00'))
OR (window_start >= toDateTime('2018-02-02 04:00:00') AND window_start < toDateTime('2018-02-06 00:00:00'))
OR (window_start >= toDateTime('2020-03-13 04:00:00') AND window_start < toDateTime('2020-03-17 00:00:00')))
GROUP BY et_date
)
SELECT
toString(et_date) AS session,
round((rth_low / prev_close - 1) * 100, 1) AS low_vs_prior_pct,
round((rth_close / prev_close - 1) * 100, 1) AS close_vs_prior_pct,
round((rth_close / rth_low - 1) * 100, 1) AS bounce_off_low_pct
FROM (
SELECT et_date, rth_low, rth_close,
lagInFrame(rth_close) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM daily
)
WHERE et_date IN (toDate('2008-09-29'), toDate('2010-05-06'), toDate('2015-08-24'), toDate('2018-02-05'), toDate('2020-03-16'))
ORDER BY et_dateMay 6, 2010 is not the deepest hole in the table: March 16, 2020 traded -12.4% below its prior close against -10.1% for the flash crash. But no other day comes close on the bounce. SPY closed 7.5% above its May 6 low, versus 3.9% for the next-best recovery in the set (August 24, 2015 — itself a mini flash crash) and just 1.7% and 0.9% on the Lehman-era and COVID crash days. A repricing stays down into the close; a liquidity hole snaps back the same afternoon.
V আকৃতিটি কি বজায় ছিল?
একটি ধস আসলে কী ছিল, তা দুটি প্রশ্নের ওপর নির্ভর করে: পুরনো দাম কত দ্রুত ফিরে এসেছে এবং প্যানিক লো (panic low) বা আতঙ্কের সর্বনিম্ন স্তরটি কি পুনরায় ট্রেড হয়েছে কি না। উভয় প্রশ্নেরই উত্তর পাওয়া গেছে:
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH
(
SELECT minIf(toFloat64(low), (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('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-07 00:00:00')
) AS flash_low
SELECT
round(any(flash_low), 2) AS flash_crash_low,
round(any(may5_close), 2) AS may5_close,
toString(any(first_above_date)) AS first_close_above_may5,
countIf(et_date > toDate('2010-05-06') AND et_date <= first_above_date) AS sessions_until_reclaim,
toString(any(first_below_date)) AS first_close_below_low,
round(anyIf(close_usd, et_date = first_below_date), 2) AS close_that_session,
countIf(et_date > toDate('2010-05-06') AND et_date <= first_below_date) AS sessions_until_break
FROM (
SELECT et_date, close_usd, flash_low, may5_close,
min(if(et_date > toDate('2010-05-06') AND close_usd < flash_low, et_date, toDate('2100-01-01'))) OVER () AS first_below_date,
min(if(et_date > toDate('2010-05-06') AND close_usd > may5_close, et_date, toDate('2100-01-01'))) OVER () AS first_above_date
FROM (
SELECT et_date, close_usd, flash_low,
max(if(et_date = toDate('2010-05-05'), close_usd, 0)) OVER () AS may5_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,
flash_low
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2010-05-05 04:00:00') AND window_start < toDateTime('2011-01-01 00:00:00')
GROUP BY et_date
)
)
)দাম দ্রুত পুনরুদ্ধার হয়েছে: SPY মাত্র 4 সেশন পরে, 2010-05-12 তারিখে, ৫ মে-র $116.83 ক্লোজিংয়ের উপরে পুনরায় ক্লোজ হয়েছে। V আকৃতিটি বজায় ছিল — কিছু সময়ের জন্য। কিন্তু ফ্ল্যাশ-ক্রাশের সেই সর্বনিম্ন স্তরটি কেবল একটি ব্যতিক্রম হিসেবে সীমাবদ্ধ থাকেনি: ক্রাশের 37 সেশন পরে, 2010-06-29 তারিখে, SPY $104.22 এ ক্লোজ হয়েছে — যা $105 প্যানিক লো-এর নিচে — সেই গ্রীষ্মের ইউরোপীয় সার্বভৌম ঋণের বিক্রয়চক্রের (sovereign-debt selloff) সময়। মূল পার্থক্যটি এখানেই: ফ্ল্যাশ ক্রাশ কোনো সংবাদ ছাড়াই মাত্র কয়েক মিনিটে সেই দামে পৌঁছেছিল এবং দ্রুত ঘুরে দাঁড়িয়েছিল; কিন্তু গ্রীষ্মকালীন মন্দা কয়েক সপ্তাহ ধরে সেই স্তরে পৌঁছেছিল এবং সেখানেই অবস্থান করেছিল। দাম হলো সেই স্তর যা আপনি এই মুহূর্তে লেনদেন করতে পারেন; ভ্যালু বা মূল্য হলো তা যা বিকেল শেষ হওয়ার পরেও টিকে থাকে।
পরবর্তী পরিবর্তনসমূহ
সেই ফ্ল্যাশ ক্র্যাশ বা আকস্মিক ধস আধুনিক সার্কিট-ব্রেকার ব্যবস্থা তৈরি করেছে: একক স্টকের জন্য Limit Up/Limit Down ব্যান্ড এবং সংশোধিত মার্কেট-ওয়াইড হ작্ট বা স্থগিতাদেশ। এই ব্যবস্থাটি পরবর্তী সংকটে কার্যকর হতে দেখা গেছে (২০২০ সালের মার্চের স্থগিতাদেশ হলো এর সরাসরি উত্তরসূরি)। Stub quotes নিষিদ্ধ করা হয়েছে; clearly-erroneous-trade বা স্পষ্ট ভুল লেনদেনের নিয়মাবলী আনুষ্ঠানিক রূপ পেয়েছে; বড় ফিউচার অর্ডারের ক্ষেত্রে এখন মূল্য-সচেতন কার্যকরকরণ যাচাই করা হয়। আপনি আজ যে মার্কেট স্ট্রাকচারে ট্রেড করছেন, তার একটি বড় অংশ ওই ছত্রিশ মিনিটের ঘটনার পরকার প্রেক্ষাপটে তৈরি করা হয়েছে।
ফ্ল্যাশ ক্র্যাশ সংক্রান্ত সাধারণ জিজ্ঞাসা
২০১০ সালের ফ্ল্যাশ ক্র্যাশের কারণ কী ছিল?
SEC/CFTC-এর অফিসিয়াল রিপোর্ট অনুযায়ী, প্রায় ৪.১ বিলিয়ন ডলারের একটি স্বয়ংক্রিয় E-mini বিক্রয় কর্মসূচি কম তারল্যের মধ্যে কার্যকর হয়েছিল। উচ্চ-ফ্রিকোয়েন্সি মধ্যস্থতাকারীরা প্রথমে লেনদেনের পরিমাণ বাড়িয়ে দেয় এবং পরে বাজার থেকে সরে যায়। সংবাদমাধ্যমের প্রতিবেদন অনুযায়ী, বিক্রেতা হিসেবে মিউচুয়াল ফান্ড সংস্থা Waddell & Reed-এর নাম এসেছে; পরবর্তীতে ট্রেডার Navinder Sarao-কে সেই দিনের বাজারে spoofing করার জন্য অভিযুক্ত করা হয়। বাজারের তথ্যানুযায়ী: তারল্য দ্রুত শেষ হয়ে গিয়েছিল এবং দাম কমে যেখানে পরবর্তী বিড (bid) ছিল সেখানেই পৌঁছে গিয়েছিল — যা কখনও কখনও মাত্র এক সেন্টে নেমে এসেছিল।
ফ্ল্যাশ ক্র্যাশ কখন শুরু এবং শেষ হয়েছিল?
নিয়ন্ত্রকদের সময়সীমা অনুযায়ী, স্বয়ংক্রিয় বিক্রয় শুরু হয় আনুমানিক দুপুর ২:৩২ মিনিটে (ET) এবং প্রায় দুপুর ৩:০৮ মিনিটে বাজার অধিকাংশ পতন কাটিয়ে আগের অবস্থায় ফিরে আসে — অর্থাৎ মোট ৩৬ মিনিট। SPY-এর সর্বনিম্ন দাম ছিল 14:45 ET সময়ে, যা আগের ক্লোজিং থেকে -10.1% কম; এবং তলানি থেকে আগের স্তরে ফিরে আসতে প্রায় ২৩ মিনিট সময় লেগেছিল।
২০১০ সালের ফ্ল্যাশ ক্র্যাশে কোন স্টকগুলো প্রভাবিত হয়েছিল?
প্রায় সব শেয়ারের দামই কমেছিল, তবে সবচেয়ে বড় ক্ষতি হয়েছিল সেই সব শেয়ারের যেগুলোর বিড (bid) সম্পূর্ণভাবে অদৃশ্য হয়ে গিয়েছিল: Accenture-এর দাম সর্বনিম্ন $0.01 পর্যন্ত নেমেছিল, Apple এবং Sotheby's-এর দাম ছিল $100000, এবং Procter & Gamble-এর দাম নেমে এসেছিল $39.37-এ — যা ছিল এর দুপুরের লেভেল থেকে -36.7% কম। ক্র্যাশের আগের দামের তুলনায় ৬০ শতাংশের বেশি লেনদেন বাতিল করা হয়েছিল; তবে P&G-এর লেনদেনগুলো কার্যকর ছিল।
ফ্ল্যাশ ক্র্যাশের সময় কি লেনদেন বন্ধ হয়েছিল?
৬ মে, ২০১০ তারিখে কোনো মার্কেট-ওয়াইড সার্কিট ব্রেকার কার্যকর হয়নি — তৎকালীন নিয়ম অনুযায়ী, দিনের শেষভাগে এত বড় পতন ঘটলে কোনো বিরতি দেওয়ার কথা ছিল না। সেই দিনের একমাত্র বিরতি ছিল মাত্র পাঁচ সেকেন্ডের: CME-এর Stop Logic দুপুর ২:৪৫:২৮ মিনিটে (ET) সাময়িকভাবে E-mini ফিউচারস বন্ধ করে দিয়েছিল, যা ছিল সূচকের সর্বনিম্ন দামের সময়ের সাথে মিলে যায়। পরবর্তীতে সিঙ্গেল-স্টক সার্কিট ব্রেকার এবং Limit Up/Limit Down ব্যান্ড তৈরি করা হয়েছে।
ভবিষ্যতে কি আবারও ফ্ল্যাশ ক্র্যাশ হতে পারে?
এর ছোট সংস্করণ ইতিমধ্যে ঘটেছে — একক কোনো সিম্বল নিয়মিতভাবে LULD হ্যাল্টের সম্মুখীন হয় এবং ছোটখাটো ফ্ল্যাশ ইভেন্ট বারবার ঘটে। ২০১০ সালের মতো বড় আকারের মার্কেট-ওয়াইড ক্র্যাশ এড়াতে পরবর্তীতে নতুন হ্যাল্ট মেকানিজম বা বিরতি দেওয়ার ব্যবস্থা চালু করা হয়েছে। প্রকৃত সত্য হলো যে, এর মূল কারণটি—মিলিসেকেন্ডের মধ্যে অদৃশ্য হয়ে যেতে পারে এমন তারল্য—এটি একটি স্থায়ী বিষয়।
ডেটা নোটস
সম্পূর্ণ ডেটা নোটস
- মিনিট-বাই-মিনিট প্যানেলের ১৫:০৯ বারটি রিকভারির কয়েক মিনিট পরে একটি বিচ্ছিন্ন 108.37 লো (low) প্রদর্শন করে। এই একই বারটি সবচেয়ে দ্রুত পরিবর্তনশীল মিনিটের তালিকার সারিতেও দেখা যায় — যা দেরিতে রিপোর্ট করা প্রিন্টের সাথে সামঞ্জস্যপূর্ণ। এই এগ্রিগেটগুলো প্রিন্ট আসার সময় অনুযায়ী মিনিট হিসেবে তা অন্তর্ভুক্ত করে। ৬ মে তারিখের টেপে এমন অনেক উদাহরণ রয়েছে।
- বাতিল করা ট্রেড এবং এগ্রিগেট: ACN-এর র ডেটা টেপে $0.01 প্রিন্ট দেখা যায় যেখানে এর মিনিট-বার লো হলো $17.74 — মিনিট এগ্রিগেটগুলো ক্যানসেলের পরের রেকর্ড প্রতিফলিত করে, আর র ট্রেড টেপ মূল প্রিন্টগুলো দেখায়।
- ডিসপারশন প্যানেলের "2:30 pm reference" হলো প্রতিটি নামের শেষ রেগুলার-সেশনের মিনিট-বার ক্লোজ যা 2:30 pm ET বা তার আগে ঘটেছে; ক্র্যাশ উইন্ডো হলো 2:31–3:15 pm।
- ক্রস-নেম প্যানেলগুলোতে QQQ নেই: ২০১০ সালে এটি QQQQ টিকারে ট্রেড করত।
উপরের প্রতিটি প্যানেল হলো ঐতিহাসিক টেপের ওপর ভিত্তি করে একটি সংরক্ষিত এবং ভার্সনযুক্ত কুয়েরি — প্রতিটি পরিমাপ দেখতে SQL এক্সপ্যান্ড করুন। এটি পড়ার পরিবর্তে আপনি কি এই দিনটি অনুভব করতে চান? এটি Strasmore Labs trading simulator-এর একটি প্লে-অ্যাবল সিনারিও।