Covered Call vs Cash-Secured Put
Both positions at four moments: entry, three weeks in, the SPY high, and the June diptable ·
2026-07-31 · 4×5
What each strike paid on May 1, 2026: SPY June 18 calls and puts side by sideranking ·
2026-07-31 · 8×3
Covered call vs cash-secured put: profit and loss per share, same strike, same expiryseries ·
2026-07-31 · 29×3
Both positions at four moments: entry, three weeks in, the SPY high, and the June dip
Both positions at four moments: entry, three weeks in, the SPY high, and the June dip
| stage | spy_price | covered_call_pl | cash_secured_put_pl | gap_abs |
|---|---|---|---|---|
| 1. Both trades opened (May 1) | 720 | 0 | 0 | 0 |
| 2. Three weeks in (May 15) | 737.34 | 7.32 | 6.44 | 0.88 |
| 3. SPY high (Jun 2) | 759.63 | 15.47 | 13.35 | 2.12 |
| 4. SPY dip (Jun 10) | 722.88 | 7.59 | 6.45 | 1.14 |
the exact SQL behind every number
WITH entry AS (
SELECT avgIf(option_close, ticker = 'O:SPY260618C00720000') AS call0,
avgIf(option_close, ticker = 'O:SPY260618P00720000') AS put0,
avg(underlying_close) AS spy0
FROM global_markets.options_greeks
WHERE ticker IN ('O:SPY260618C00720000', 'O:SPY260618P00720000')
AND date = '2026-05-01'
AND implied_volatility > 0.02
)
SELECT multiIf(g.date = '2026-05-01', '1. Both trades opened (May 1)',
g.date = '2026-05-15', '2. Three weeks in (May 15)',
g.date = '2026-06-02', '3. SPY high (Jun 2)',
'4. SPY dip (Jun 10)') AS stage,
round(avg(g.underlying_close), 2) AS spy_price,
round(avg(g.underlying_close) - any(entry.spy0) + any(entry.call0)
- avgIf(g.option_close, g.ticker = 'O:SPY260618C00720000'), 2) AS covered_call_pl,
round(any(entry.put0)
- avgIf(g.option_close, g.ticker = 'O:SPY260618P00720000'), 2) AS cash_secured_put_pl,
round(abs((avg(g.underlying_close) - any(entry.spy0) + any(entry.call0)
- avgIf(g.option_close, g.ticker = 'O:SPY260618C00720000'))
- (any(entry.put0)
- avgIf(g.option_close, g.ticker = 'O:SPY260618P00720000'))), 2) AS gap_abs
FROM global_markets.options_greeks g, entry
WHERE g.ticker IN ('O:SPY260618C00720000', 'O:SPY260618P00720000')
AND g.date IN ('2026-05-01', '2026-05-15', '2026-06-02', '2026-06-10')
AND g.implied_volatility > 0.02
GROUP BY g.date
ORDER BY g.date
More from this analysisCovered Call vs Cash-Secured Put
Covered call vs cash-secured put: profit and loss per share, same strike, same expiry
series 29×3
→
What each strike paid on May 1, 2026: SPY June 18 calls and puts side by side
ranking 8×3
→
Three years of total return, split into price change and distributions: July 2023 to June 2026
table 8×7
→
Price path indexed to 100: two index funds and their covered call counterparts, month ends
series 36×5
→
See all 2,170 queries →