STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

March 24, 2020: The Day the Market Turned
Did it hold? The retest that never came, and two recovery clocksscalar · 2026-07-26 · 1×12338.31 March 24, 2020 ranked against every SPY session on the minute tapescalar · 2026-07-26 · 1×115,613 SPY by half-hour: March 24, 2020 regular sessionseries · 2026-07-26 · 13×4Preview: a 13-point series, ending higher. SPY on March 24, 2020: the turn, receiptedscalar · 2026-07-26 · 1×11222.51 SPY daily close, drawdown, and the 10-year yield: Feb 19 to Mar 23, 2020series · 2026-07-26 · 24×4Preview: a 16-point series, ending lower. March 24, 2020 across index and sector ETFs: everything up, cyclicals firstranking · 2026-07-26 · 12×4Preview: 12 ranked values, smallest first. SPY closes, March 23-26, 2020: the three-day burstseries · 2026-07-26 · 4×4Preview: a 4-point series, ending lower.
Did it hold? The retest that never came, and two recovery clocks

Did it hold? The retest that never came, and two recovery clocks

most recentas of scalar 1×12read in context →
feb19 ath close
338.31
mar23 bottom close
222.51
recovery date
2020-08-18
sessions to new high
103
days low to new high
148
round trip days
181
lowest close after
243.59
lowest close date
2020-03-24
closest retest pct
9.5
peak 2007 date
2007-10-09
recovery 2013 date
2013-03-14
round trip 2008 days
1,983
the exact SQL behind every number
SELECT
    round(ath_close, 2) AS feb19_ath_close,
    round(bottom_close, 2) AS mar23_bottom_close,
    toString(rec_date) AS recovery_date,
    countIf(et_date > toDate('2020-03-23') AND et_date <= rec_date) AS sessions_to_new_high,
    dateDiff('day', toDate('2020-03-23'), rec_date) AS days_low_to_new_high,
    dateDiff('day', toDate('2020-02-19'), rec_date) AS round_trip_days,
    round(minIf(close_usd, et_date > toDate('2020-03-23') AND et_date <= rec_date), 2) AS lowest_close_after,
    toString(argMinIf(et_date, (close_usd, et_date), et_date > toDate('2020-03-23') AND et_date <= rec_date)) AS lowest_close_date,
    round((minIf(close_usd, et_date > toDate('2020-03-23') AND et_date <= rec_date) / bottom_close - 1) * 100, 1) AS closest_retest_pct,
    toString(peak07_date) AS peak_2007_date,
    toString(rec07_date) AS recovery_2013_date,
    dateDiff('day', peak07_date, rec07_date) AS round_trip_2008_days
FROM (
    SELECT
        et_date, close_usd, ath_close, bottom_close, peak07_date,
        min(if(et_date > toDate('2020-03-23') AND close_usd >= ath_close, et_date, toDate('2099-01-01'))) OVER () AS rec_date,
        min(if(et_date >= toDate('2008-01-01') AND close_usd >= peak07_close, et_date, toDate('2099-01-01'))) OVER () AS rec07_date
    FROM (
        SELECT
            et_date, close_usd,
            max(if(et_date = toDate('2020-02-19'), close_usd, -999)) OVER () AS ath_close,
            max(if(et_date = toDate('2020-03-23'), close_usd, -999)) OVER () AS bottom_close,
            max(if(et_date >= toDate('2007-01-01') AND et_date < toDate('2008-01-01'), (close_usd, et_date), (-999., toDate('1970-01-01')))) OVER () .1 AS peak07_close,
            max(if(et_date >= toDate('2007-01-01') AND et_date < toDate('2008-01-01'), (close_usd, et_date), (-999., toDate('1970-01-01')))) OVER () .2 AS peak07_date
        FROM (
            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('2021-01-01 00:00:00')
            GROUP BY et_date
            HAVING close_usd > 0
        )
    )
)
GROUP BY ath_close, bottom_close, rec_date, peak07_date, rec07_date
$