تحلیل نقطه حضیض بحران مالی در مارس 2009
بررسی دقیق روز 9 مارس 2009 و نقطه حضیض بحران مالی؛ چرا بازار در آن دوشنبه آرام بود؟ تحلیل سوابق SPY و بررسی ویژگیهای کفهای تاریخی بازار سهام.
9 مارس 2009 یکی از مهمترین تاریخها در تاریخ مدرن بازار است: نقطه حضیض در بحران مالی — یعنی -56.5% پایینتر از اوج اکتبر 2007 — و اولین روز از یک بازار صعودی که بیش از یک دهه ادامه یافت. کتابهای تاریخ، سطوح شاخصها را در آن دوشنبه ذکر میکنند: 676.53 در S&P 500 و 6,547 در Dow. دادههای زیر از SPY، یعنی S&P 500 ETF، استفاده میکنند که این پایگاه داده، ثبت لحظهای آن را از سال 2003 ذخیره کرده است. و این حقیقت تلخ است که سوابق آن را حفظ کردهاند: هیچ نشانهای در آن جلسه معاملاتی وجود نداشت. نه اوج تسلیم بازار و نه انفجار روند بازگشتی؛ فقط یک دوشنبه قرمز، آرام و فرسایشی که از قضا آخرین دوشنبه بود. تمام اعداد حاصل از پرسوجوهای ذخیرهشده هستند؛ برای مشاهده SQL هر پنل را باز کنید.
مسیر سقوط
بحران در مراحل مختلف رخ داد و تاریخها برای درک مطالب زیر اهمیت دارند. Bear Stearns در مارس 2008 به JPMorgan فروخته شد. Lehman Brothers در روز دوشنبه، 15 سپتامبر 2008، اعلام ورشکستگی کرد — جلسهای با صفحه اختصاصی خود در اینجا. کنگره در 3 اکتبر قانون TARP، یعنی صندوق 700 میلیارد دلاری نجات بانکها را تصویب کرد. طرح نجات دولتی AIG دو بار گسترش یافت. Citigroup در نوامبر، دومین پشتیبانی فدرال خود را دریافت کرد. رالی زمستانی فروکش کرد و تا اواخر فوریه 2009، شاخصهای میانگین، کفهای ماه نوامبر را شکستند و به سقوط ادامه دادند. یک ردیف، این بازه هفده ماهه را خلاصه میکند:
کد دقیق 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 dailyاز اوج قیمت بستهشده در $156.41 در تاریخ 2007-10-09، SPY در تاریخ 2009-03-09 به $68.07 رسید — کاهش -56.5%، که عمیقترین افت از دهه 1930 تاکنون بوده است. همین ردیف شامل عددی است که سرمایهگذاران بلندمدت در مورد آن سوال میکنند: بازگشت کامل قیمت. SPY تا 2013-03-14 دوباره بالاتر از اوج سال 2007 بسته نشد — یعنی چهار سال پس از نقطه کف و پنج سال و نیم پس از نقطه اوج. جزئیات هر دو بخش این محاسبات در ادامه آمده است.
خلاصهی روز در یک سطر
کد دقیق 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')ETF SPY با قیمت 67.95 دلار باز شد — که نشاندهنده یک شکاف نزولی -1.3% از قیمت بستهشدن روز جمعه در سطح 68.84 دلار است — در ساعت 10:13 به سطح 70 دلار رسید، در اواخر روز (15:17 ET) تا کف 67.73 دلاری کاهش یافت و در سطح 68.07 دلار بسته شد — که نشاندهنده تغییر -1.1% در روز است. محدوده نوسان کل جلسه معاملاتی حدود دو دلار بود. مهمترین قیمت بستهشدن در یک نسل، بدون حتی یک دقیقه هیجانی رخ داد.
حجم معاملات به سوالی پاسخ میدهد که عدد خام به تنهایی نمیتواند پاسخ دهد: آیا 357.4 میلیون سهم، سطح پرحجم یا کمحجم بود؟ برای مارس 2009، کمحجم بود. میانگین بیست جلسه گذشته 406.3 میلیون سهم SPY در روز بوده است — کف قیمتی نسبت به آن میانگین در سطح -12% ثبت شد — و میانگین شصت جلسه گذشته 337.9 میلیون بوده است. نظریه تسلیم (Capitulation) میگوید کفهای قیمتیِ نسلی، در زمان حجم معاملات رکوردشکن و اوجگیرنده رخ میدهند. اما مشهورترین کف قیمتی در عصر مدرن، حجم معاملاتی کمتر از یک روز عادی در همان ماه داشت.
The shape of the session
کد دقیق 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_timeThe half-hour path corrects a detail most retellings flatten: March 9 was not a one-way slide. After the gap down, SPY rallied through mid-morning — the 10:00 ET bucket closed at $69.49, just under the $70 day high printed at 10:13 — then spent the afternoon giving it back, drifting down to the $67.73 low at 15:17 and bouncing modestly into the close. Rally, fade, small bounce: an utterly ordinary shape. No waterfall, no panic volume signature, no v-bottom. Compare it with Lehman Monday's close-on-the-low urgency or the flash crash's air pocket: this is a third species entirely, the exhausted tape. The multi-percent crashes of that winter had all happened in the preceding weeks. The bottom itself was the day sellers simply ran out.
عامل تغییر روند بازار
هیچیک از دادههای روز دوشنبه، تغییرات روز سهشنبه را توجیه نمیکند؛ این چرخش با چرخه اخبار رخ داد، نه با دادههای معاملاتی. پیش از بازگشایی بازار در روز سهشنبه، یادداشت داخلی ویکرام پاندیت، مدیرعامل Citigroup، به رسانهها درز کرد: در این یادداشت آمده بود که این بانک در ماههای ژانویه و فوریه 2009 سودآور بوده است که بهترین بازه دو ماهه از سال 2007 تاکنون محسوب میشود. 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بازگشایی 10 مارس با صعود همراه بود و این روند حفظ شد: SPY در قیمت $72.21 بسته شد که نشاندهنده رشد 6.1% با حجم معاملات 401.3 میلیون سهم است؛ حجمی بیشتر از خودِ روز کف. Citigroup نیز در قیمت $1.44 بسته شد. تا روز جمعه، SPY در سطح $76.09 و Citigroup در سطح $1.78 قرار گرفتند. بازدهی اوراق قرضه 10 ساله نیز در همان روز سهشنبه از 2.89% به 2.99% افزایش یافت؛ یعنی همزمان با رالی سهام، سرمایه از امنترین دارایی خارج شد و معاملهی «فرار به کیفیت» (flight-to-quality) معکوس شد.
نکته احتیاطی: در آن زمستان، چندین رالی چند درصدی پیش از این رخ داده و شکست خورده بودند و هیچچیز در 10 مارس ثابت نکرد که این بار متفاوت است. یادداشت پاندیت همان نقطهای است که مورخان برای تعیین زمان چرخش بازار انتخاب میکنند؛ آنچه دادههای معاملاتی نشان میدهند — و در بالا نیز نشان داده شده — همزمانی این دو اتفاق است.
آیا کف قیمتی حفظ شد؟
یک کف قیمتی تنها زمانی تثبیت میشود که بازار هرگز به آن سطح بازنگردد. این جدول، وضعیت SPY را هفته به هفته تا پایان ژوئن 2009 رصد میکند؛ در ستون آخر، کمترین قیمت معامله و قیمت بستهشدن در هر هفته، به همراه کمترین مقدار تکرار شده، آورده شده است:
کد دقیق 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 در شانزده هفته پس از 9 مارس، مبلغ $69.37 بود که این رقم در اولین هفته پس از ثبت کف (2009-03-09) مشاهده شد. SPY هرگز به زیر قیمت بستهشدن 9 مارس یعنی $68.07 بازنگشت، چه برسد به کمترین قیمت درونروزی $67.73. هیچ بازگشت قیمتی، فرصت مجدد یا اصلاحی به سطح قبلی رخ نداد: تا هفته 2009-05-04، SPY در قیمت $93.04 بسته شد که سه واحد بالاتر از کف قیمتی در مدت نه هفته بود. انتظار برای تاییدیه قیمتی هزینهای داشت که این جدول دقیقاً آن را نشان میدهد.
پیشتازان بازگشت از کف قیمتی
بانکهایی که بیشترین آسیب را دیدند، مرکز اصلی بازگشت بازار نیز بودند. یک سال پس از پایینترین سطح بسته شده در نزدیکی 9 مارس 2010:
کد دقیق 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% رشد کرد. این بازگشت، ترتیب برندگان و بازندگان دوران ریزش را تقریباً به طور دقیق معکوس کرد.
مقایسه با کفهای قیمتی دیگر
دادههای دقیق از سپتامبر 2003 آغاز میشوند، بنابراین کف قیمتی اکتبر 2002 در دوران حباب داتکام خارج از محدوده دادههای موجود است. در مقایسه با سه کف قیمتی عمیقتر از آن، وضعیت مارس 2009 به این صورت است:
کد دقیق 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از کف قیمتی سال 2009، SPY در سه ماه 38.5% و در یک سال 68.1% رشد کرد؛ این قویترین بازدهی دوازده ماهه بود که اکثر سرمایهگذاران فعال تا آن زمان تجربه کرده بودند و از معمولیترین روز بحران آغاز شد. تنها کف قیمتی مارس 2020 در دوران COVID در همین رده قرار دارد که در سال اول خود 75.1% رشد داشت؛ بازگشتی که تحلیل ساختار رالی محرک اقتصادی 2020 آن در صفحه دیگری بررسی شده است. کفهای اصلاحی سالهای 2011 و 2018 که در زمان وقوع، وحشت واقعی در بازار ایجاد کرده بودند، در سال اول خود 31.4% و 37.1% بازگشت داشتند. الگوی موجود در هر چهار مورد نشان میدهد: هرچه سقوط عمیقتر باشد، اولین مرحله صعودی تندتر خواهد بود و اولین مرحله صعودی همواره تندترین بخش از روند بازیابی بازار بوده است.
چرا کفهای قیمتی تنها در گذشته قابل شناسایی هستند
مکانیسم واقعی: کف قیمتی بر اساس آنچه بعد از آن رخ نمیدهد تعریف میشود؛ یعنی عدم ثبت پایینترین سطح جدید. این امر ذاتاً در زمان واقعی غیرقابل شناسایی است. تمام سیگنالهای کمی که برای تشخیص کف پیشنهاد شدهاند، در مسیر نزولی تا اواخر سال 2008 بارها فعال شده بودند؛ خودِ جلسه معاملاتی 9 مارس نیز در تمامی آنها عملکرد معمولی داشت؛ با الگوی قیمتی عادی، حجم معاملات پایینتر از میانگین و کاتالیست خبری که تازه صبح روز بعد پدیدار شد. هر کسی که ادعا کند اندیکاتورش این روز را پیشبینی کرده، در حال توصیف سوگیری بقا است؛ و «کفهای» متعدد دیگری که آن اندیکاتور اعلام کرده، گواهی بر این ادعا هستند.
درس این روز: آمادگی برای بازههای مختلف از نتایج، به جای تمرکز بر نقاط دقیق. سرمایهگذارانی که از مارس 2009 سودآفرین بودند، اکثریت قاطع آنها کسانی بودند که طبق برنامه در تمام طول زمستانِ دشوار به خرید ادامه داده بودند — رویکردی که استانداردهای اندازهگیری بازده به صورت ضمنی فرض میکنند — نه کسانی که دقیقترین نقطه کف را پیدا کرده بودند. نقش بازار در این انضباط معاملاتی، تنظیم و کالیبره کردن است، نه پیشگویی: شناخت ظاهرِ یک حرکت معمولی است که باعث میشود یک دوشنبه عادی با یک روز دیگر از سقوطی که در واقع پایان یافته، اشتباه گرفته نشود.
سوالات متداول درباره کف بازار در مارس 2009
کف دقیق سقوط سالهای 2008-2009 چه بود؟
کمترین قیمت در قیمت پایانی، دوشنبه 9 مارس 2009 ثبت شد: SPY در سطح $68.07 و شاخص S&P 500 در سطح 676.53 که بسیار مورد استناد قرار گرفته است. عدد مشهور «666» در معاملات درونجلسهای، یک جلسه قبل یعنی جمعه 6 مارس ثبت شده بود.
بازار سهام از سال 2007 تا 2009 چقدر کاهش یافت؟
SPY بر اساس قیمت پایانی -56.5% کاهش یافت — از $156.41 در 2007-10-09 به $68.07 در 2009-03-09 — که عمیقترین ریزش بازار سهام ایالات متحده از دهه 1930 میلادی بود.
در 10 مارس 2009 چه اتفاقی افتاد؟
اولین جلسه معاملاتی پس از کف بازار: SPY در پی انتشار گزارش داخلی Citigroup مبنی بر سودآوری بانک در ماههای ژانویه و فوریه، 6.1% رشد کرد. خودِ Citigroup با قیمت پایانی $1.44 بسته شد که نسبت به قیمت $1.05 در نقطه کف، افزایش داشت.
بازار با چه سرعتی از کف سال 2009 بازیابی شد؟
سال اول از نظر تاریخی بیسابقه بود: SPY از قیمت پایانی کف بازار، 68.1% رشد کرد. بازیابی تمام ریزش دوران بحران بسیار طولانیتر بود؛ اولین قیمت پایانی که به بالای اوج اکتبر 2007 بازگشت، در تاریخ 2013-03-14 رخ داد.
آیا نشانهای برای پیشبینی کف بازار وجود داشت؟
هیچ عاملی در روند قیمتها، روز 9 مارس را از هفتههای اطراف آن متمایز نکرد؛ آن جلسه معاملاتی آرام بود و حجم معاملات کمتر از میانگین 20 روزه خود بود. این نقطه تنها با عدم شکستن قیمت در ادامه، به کف تبدیل شد: پایینترین سطح معاملاتی در شانزده هفته پس از آن، همچنان بالاتر از قیمت پایانی 9 مارس باقی ماند.
هر پنل در بالا، یک پرسوجوی ذخیرهشده و نسخهبندیشده از دادههای تاریخی است — برای مشاهده هر اندازهگیری، کد SQL را گسترش دهید. میخواهید به جای خواندن، این روز را تجربه کنید؟ این یکی از سناریوهای قابل بازیابی در شبیهساز معاملاتی Strasmore Labs است.