STRASMORE/EXPLORE 2,882 QUERIES

pinned_trace

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-01, from put-credit-spread-win-rate-and-breakeven.

as of series 33×4read in context →
pinned_trace — 33 rows by 4 columns, computed from US exchange, SIP and OPRA data.
datespy_closeshort_strikebreakeven
2022-08-16429.7415412.86
2022-08-17426.65415412.86
2022-08-18427.89415412.86
2022-08-19422.14415412.86
2022-08-22413.35415412.86
2022-08-23412.35415412.86
2022-08-24413.67415412.86
2022-08-25419.51415412.86
2022-08-26405.31415412.86
2022-08-29402.63415412.86
2022-08-30398.21415412.86
2022-08-31395.18415412.86
2022-09-01396.42415412.86
2022-09-02392.24415412.86
2022-09-06390.76415412.86
2022-09-07397.78415412.86
2022-09-08400.38415412.86
2022-09-09406.6415412.86
2022-09-12410.97415412.86
2022-09-13393.1415412.86
2022-09-14394.6415412.86
2022-09-15390.12415412.86
2022-09-16385.56415412.86
2022-09-19388.55415412.86
2022-09-20384.09415412.86
2022-09-21377.39415412.86
2022-09-22374.22415412.86
2022-09-23367.95415412.86
2022-09-26364.31415412.86
2022-09-27363.38415412.86
2022-09-28370.53415412.86
2022-09-29362.79415412.86
2022-09-30357.18415412.86
Rows × columns
33 × 4
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 pinned_trace, derived from the stored result.
ColumnTypeRangeNotes
date date 2022-08-16 to 2022-09-30
spy_close number 357.18 to 429.7 US dollars
short_strike number every row is 415 US dollars
breakeven number every row is 412.86

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.

WITH
pin AS
(
    SELECT
        date                                              AS entry_date,
        argMin(expiration_date, abs(days_to_expiry - 45)) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND lower(option_type) IN ('put', 'p')
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 38 AND 52
      AND date = '2022-08-16'
    GROUP BY date
),
short_leg AS
(
    SELECT
        p.entry_date                                                AS entry_date,
        p.expiry                                                    AS expiry,
        argMin(toFloat64(g.strike_price), abs(abs(g.delta) - 0.30)) AS short_strike,
        argMin(toFloat64(g.option_close), abs(abs(g.delta) - 0.30)) AS short_mark
    FROM global_markets.options_greeks AS g
    INNER JOIN pin AS p
        ON g.date = p.entry_date AND g.expiration_date = p.expiry
    WHERE g.underlying_symbol = 'SPY'
      AND lower(g.option_type) IN ('put', 'p')
      AND g.iv_converged = 1
      AND g.volume > 0
      AND g.date = '2022-08-16'
      AND abs(g.delta) BETWEEN 0.20 AND 0.40
    GROUP BY p.entry_date, p.expiry
),
long_leg AS
(
    SELECT
        s.entry_date                                                                             AS entry_date,
        argMin(toFloat64(g.option_close), abs(toFloat64(g.strike_price) - (s.short_strike - 10))) AS long_mark
    FROM global_markets.options_greeks AS g
    INNER JOIN short_leg AS s
        ON g.date = s.entry_date AND g.expiration_date = s.expiry
    WHERE g.underlying_symbol = 'SPY'
      AND lower(g.option_type) IN ('put', 'p')
      AND g.iv_converged = 1
      AND g.date = '2022-08-16'
      AND toFloat64(g.strike_price) BETWEEN s.short_strike - 12 AND s.short_strike - 8
    GROUP BY s.entry_date
),
spread AS
(
    SELECT
        s.entry_date                                  AS entry_date,
        s.expiry                                      AS expiry,
        s.short_strike                                AS short_strike,
        s.short_strike - (s.short_mark - l.long_mark) AS breakeven
    FROM short_leg AS s
    INNER JOIN long_leg AS l ON s.entry_date = l.entry_date
)
SELECT
    toString(d.date)             AS date,
    round(toFloat64(d.close), 2) AS spy_close,
    round(p.short_strike, 2)     AS short_strike,
    round(p.breakeven, 2)        AS breakeven
FROM global_markets.stocks_daily_aggs AS d
CROSS JOIN spread AS p
WHERE d.ticker = 'SPY'
  AND d.date >= p.entry_date
  AND d.date <= p.expiry
ORDER BY d.date
⌘/Ctrl + Enter

Work with this data in your AI assistant

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