STRASMORE/EXPLORE 3,127 QUERIES

iran_holidays_1405

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-06, from does-the-us-market-close-for-iranian-holidays.

as of series 8×6read in context →
iran_holidays_1405 — 8 rows by 6 columns, computed from US exchange, SIP and OPRA data.
holiday_dategregorian_labeljalali_labelholiday_faus_weekdayspy_minute_bars
2026-03-2121 مارس 2026۱ فروردین ۱۴۰۵نوروزشنبه0
2026-03-2222 مارس 2026۲ فروردین ۱۴۰۵نوروزیک‌شنبه0
2026-03-2323 مارس 2026۳ فروردین ۱۴۰۵نوروزدوشنبه390
2026-03-2424 مارس 2026۴ فروردین ۱۴۰۵نوروزسه‌شنبه390
2026-04-011 آپریل 2026۱۲ فروردین ۱۴۰۵روز جمهوری اسلامیچهارشنبه390
2026-04-022 آپریل 2026۱۳ فروردین ۱۴۰۵روز طبیعتپنج‌شنبه390
2026-06-044 ژوئن 2026۱۴ خرداد ۱۴۰۵رحلت امام خمینیپنج‌شنبه390
2026-06-055 ژوئن 2026۱۵ خرداد ۱۴۰۵قیام ۱۵ خردادجمعه390
Rows × columns
8 × 6
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for iran_holidays_1405, derived from the stored result.
ColumnTypeRangeNotes
holiday_date date 2026-03-21 to 2026-06-05
gregorian_label text 8 distinct values (1 آپریل 2026, 2 آپریل 2026, 21 مارس 2026…)
jalali_label text 8 distinct values
holiday_fa text 5 distinct values
us_weekday text 7 distinct values (جمعه, دوشنبه, سه‌شنبه…)
spy_minute_bars number 0 to 390

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    toString(cal.holiday_date) AS holiday_date,
    concat(toString(toDayOfMonth(cal.holiday_date)), ' ',
           transform(toMonth(cal.holiday_date), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                     ['ژانویه', 'فوریه', 'مارس', 'آپریل', 'مه', 'ژوئن',
                      'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], ''),
           ' ', toString(toYear(cal.holiday_date))) AS gregorian_label,
    transform(toString(cal.holiday_date),
              ['2026-03-21', '2026-03-22', '2026-03-23', '2026-03-24',
               '2026-04-01', '2026-04-02', '2026-06-04', '2026-06-05'],
              ['۱ فروردین ۱۴۰۵', '۲ فروردین ۱۴۰۵', '۳ فروردین ۱۴۰۵', '۴ فروردین ۱۴۰۵',
               '۱۲ فروردین ۱۴۰۵', '۱۳ فروردین ۱۴۰۵', '۱۴ خرداد ۱۴۰۵', '۱۵ خرداد ۱۴۰۵'],
              '') AS jalali_label,
    transform(toString(cal.holiday_date),
              ['2026-03-21', '2026-03-22', '2026-03-23', '2026-03-24',
               '2026-04-01', '2026-04-02', '2026-06-04', '2026-06-05'],
              ['نوروز', 'نوروز', 'نوروز', 'نوروز',
               'روز جمهوری اسلامی', 'روز طبیعت', 'رحلت امام خمینی', 'قیام ۱۵ خرداد'],
              '') AS holiday_fa,
    transform(toDayOfWeek(cal.holiday_date), [1, 2, 3, 4, 5, 6, 7],
              ['دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنج‌شنبه', 'جمعه', 'شنبه', 'یک‌شنبه'], '') AS us_weekday,
    toUInt32(ifNull(tape.bars, 0)) AS spy_minute_bars
FROM
(
    SELECT toDate(arrayJoin(['2026-03-21', '2026-03-22', '2026-03-23', '2026-03-24',
                             '2026-04-01', '2026-04-02', '2026-06-04', '2026-06-05'])) AS holiday_date
) AS cal
LEFT JOIN
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        toUInt32(countDistinct(window_start))                AS bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-03-20 00:00:00', 'UTC')
      AND window_start <  toDateTime('2026-06-07 00:00:00', 'UTC')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    GROUP BY d
) AS tape ON tape.d = cal.holiday_date
ORDER BY cal.holiday_date
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.