STRASMORE/EXPLORE 3,293 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,293 answered market questions

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

Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan
How to Get Approved for Options Trading
The same short put as a five-point credit spread in a margin account (June 12, 2026 close, July 17 expiry)table · 2026-09-17 · 9×9 Selling one SPY put in a cash account: premium collected vs. cash held (June 12, 2026 close, July 17 expiry)table · 2026-09-17 · 9×5
The same short put as a five-point credit spread in a margin account (June 12, 2026 close, July 17 expiry)

The same short put as a five-point credit spread in a margin account (June 12, 2026 close, July 17 expiry)

most recentas of table 9×9read in context →
The same short put as a five-point credit spread in a margin account (June 12, 2026 close, July 17 expiry) — 9 rows by 9 columns, computed from US exchange, SIP and OPRA data.
short_strikelong_strikeshort_put_pricelong_put_pricenet_credit_dollarsmargin_requirement_dollarscredit_pct_of_requirementcash_vs_margin_ratiospy_close
74073512.3710.617732354.8229.1742.45
73573010.68.9616433648.8218.8742.45
7307258.967.7112537533.3194.7742.45
7257207.716.5811338729.2187.3742.45
7207156.585.728641420.8173.9742.45
7157105.724.878541520.5172.3742.45
7107054.874.196843215.7164.4742.45
7057004.193.596044013.6160.2742.45
7006953.593.18414598.9152.5742.45
the exact SQL behind every number
SELECT
    s.strike                                                          AS short_strike,
    l.strike                                                          AS long_strike,
    s.put_price                                                       AS short_put_price,
    l.put_price                                                       AS long_put_price,
    toInt32(round((s.put_price - l.put_price) * 100))                 AS net_credit_dollars,
    toInt32(round((s.strike - l.strike) * 100)) - net_credit_dollars  AS margin_requirement_dollars,
    round(net_credit_dollars / margin_requirement_dollars * 100, 1)   AS credit_pct_of_requirement,
    round(s.strike * 100 / margin_requirement_dollars, 1)             AS cash_vs_margin_ratio,
    s.spy_close                                                       AS spy_close
FROM
(
    SELECT
        toInt32(round(toFloat64(strike_price)))               AS strike,
        strike - 5                                            AS long_strike,
        round(any(toFloat64(option_close)), 2)                AS put_price,
        toString(round(any(toFloat64(underlying_close)), 2))  AS spy_close
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND toDate(date) = toDate('2026-06-12')
      AND toDate(expiration_date) = toDate('2026-07-17')
      AND lower(toString(option_type)) LIKE 'p%'
      AND iv_converged = 1
      AND volume > 0
      AND toFloat64(underlying_close) > 0
      AND toFloat64(strike_price) < toFloat64(underlying_close)
      AND toFloat64(strike_price) >= toFloat64(underlying_close) * 0.94
      AND toInt32(round(toFloat64(strike_price))) % 5 = 0
      AND abs(toFloat64(strike_price) - round(toFloat64(strike_price))) < 0.001
    GROUP BY strike_price
) AS s
INNER JOIN
(
    SELECT
        toInt32(round(toFloat64(strike_price)))               AS strike,
        round(any(toFloat64(option_close)), 2)                AS put_price
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND toDate(date) = toDate('2026-06-12')
      AND toDate(expiration_date) = toDate('2026-07-17')
      AND lower(toString(option_type)) LIKE 'p%'
      AND iv_converged = 1
      AND volume > 0
      AND toFloat64(underlying_close) > 0
      AND toFloat64(strike_price) < toFloat64(underlying_close)
      AND toFloat64(strike_price) >= toFloat64(underlying_close) * 0.90
      AND toInt32(round(toFloat64(strike_price))) % 5 = 0
      AND abs(toFloat64(strike_price) - round(toFloat64(strike_price))) < 0.001
    GROUP BY strike_price
) AS l ON l.strike = s.long_strike
ORDER BY short_strike DESC
$