Лучшая и худшая сделка на тысячу долларов в июне 2026
Лучший опционный контракт июня принес 495x прибыли, тогда как продажа аналогичного актива привела к потере 494,000 долларов с каждой тысячи премии. Полный ретроспективный отчет.
Лучшая опционная сделка июня 2026 года
Какой была лучшая опционная сделка июня 2026 года и во что превратилась бы тысяча долларов, вложенная в неё? Честный ответ звучит четырежды: джекпот; аномальная сделка по двум контрактам с ценой в один цент, на которой строится заголовок; девять тысяч почти полных убытков вокруг неё; и зеркальная сделка — продажа того, что купил победитель, где тысяча долларов собранной премии превратилась в шестизначную дыру. Всё рассчитано постфактум на основе архивных данных ленты сделок; оптимальная с точки зрения ретроспективного анализа сделка измеряет то, что содержал в себе месяц, а не стратегию, которую мог бы реализовать кто-либо. Каждая цифра — это результат сохранённого запроса; разверните любую панель для получения точного SQL.
Насколько бурным был июнь две тысячи двадцать шестого года?
Нужен ли исторически значимый рыночный месяц для того, чтобы опцион вырос в сто раз? Июнь доказывает, что нет. Мы пересчитываем каждый месяц две тысячи двадцать шестого года по единой методике: от открытия до закрытия в основную торговую сессию, плюс диапазон от максимума до минимума в процентах к цене открытия для SPY и NVDA — базового актива для выигрышного инструмента. В июне было 21 торговых сессий.
| Начало периода | SPY изм. мес. (%) | SPY диапазон (%) | NVDA изм. мес. (%) | NVDA диапазон (%) | Торговые дни |
|---|---|---|---|---|---|
| 2026-01-01 | 0.9 | 3.1 | 0.8 | 8.9 | 20 |
| 2026-02-01 | -0.5 | 3.1 | -5.4 | 14.2 | 19 |
| 2026-03-01 | -4.2 | 8.7 | -0.4 | 14.1 | 22 |
| 2026-04-01 | 9.9 | 11.4 | 13.4 | 25.8 | 21 |
| 2026-05-01 | 4.9 | 6 | 4.9 | 20.8 | 20 |
| 2026-06-01 | -1.2 | 5.8 | -7.4 | 19.7 | 21 |
Точный SQL-код для каждого числа
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start,
round((argMaxIf(toFloat64(close), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMinIf(toFloat64(open), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS spy_month_pct,
round((maxIf(toFloat64(high), ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - minIf(toFloat64(low), ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / argMinIf(toFloat64(open), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) * 100, 1) AS spy_range_pct,
round((argMaxIf(toFloat64(close), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMinIf(toFloat64(open), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS nvda_month_pct,
round((maxIf(toFloat64(high), ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - minIf(toFloat64(low), ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / argMinIf(toFloat64(open), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) * 100, 1) AS nvda_range_pct,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), ticker = 'SPY') AS trading_days
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'NVDA')
AND window_start >= toDateTime('2026-01-01 05:00:00') AND window_start < toDateTime('2026-07-01 04:00:00')
GROUP BY period_start
HAVING uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), ticker = 'SPY') >= 17
ORDER BY period_start ASCSPY завершил июнь с результатом -1.2% от цены открытия в рамках диапазона 5.8%, что уже, чем в марте (8.7%) или апреле (11.4%). Основные события разворачивались на уровень ниже: NVDA закрылся с изменением -7.4% от цены открытия июня, пройдя диапазон 19.7% (обзор рынка за июнь две тысячи двадцать шестого года содержит общую картину). Для стократного роста опциона не потребовался обвал рынка: хватило резкого падения одной крупной акции в течение двух недель.
Самые высокие мультипликаторы месяца
Вселенная инструментов: все контракты по шести ликвидным базовым активам, по которым в июне было совершено не менее пятидесяти сделок, 30951 контрактов, оцененных от первой до последней сделки месяца. Рассматриваются два сценария: покупка по первой цене с переоценкой по последней и продажа опциона за тысячу долларов премии с расчетом итогового обязательства.
| Контракт | Тип PUT | Первая цена | Последняя цена | Кратность | Контрактов на $1000 | Стоимость на конец ($) | Чистый убыток ($) | Сделки |
|---|---|---|---|---|---|---|---|---|
| O:NVDA260629P00200000 | 1 | 0.01 | 4.95 | 495 | 1000 | 495000 | 494000 | 4650 |
| O:AAPL260724P00240000 | 1 | 0.01 | 0.34 | 34 | 1000 | 34000 | 33000 | 119 |
| O:MU260710P00100000 | 1 | 0.05 | 1 | 20 | 200 | 20000 | 19000 | 81 |
| O:TSLA260610P00397500 | 1 | 1.28 | 15.95 | 12.5 | 7 | 11165 | 11461 | 10801 |
| O:QQQ260610P00707000 | 1 | 1.26 | 14.74 | 11.7 | 7 | 10318 | 10698 | 14669 |
Точный SQL-код для каждого числа
SELECT ticker AS contract,
substring(ticker, -9, 1) = 'P' AS is_put,
round(first_px, 2) AS first_price,
round(last_px, 2) AS last_price,
round(last_px / first_px, 1) AS multiple,
toUInt32(floor(1000 / (first_px * 100))) AS contracts_for_a_thousand,
round(floor(1000 / (first_px * 100)) * last_px * 100, 0) AS bought_end_value_usd,
round(1000 * (last_px / first_px) - 1000, 0) AS sold_net_loss_usd,
trades
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
ORDER BY multiple DESC, contract ASC
LIMIT 5Лидером стал пут-опцион: O:NVDA260629P00200000, первая сделка по которому прошла по цене $0.01, а последняя — $4.95, что дало мультипликатор 495x. Расшифровка тикера: пут-опцион на NVDA со страйком $200 и экспирацией 29 июня. Тысяча долларов по первой цене позволяла купить 1000 контрактов; по последней цене позиция оценивалась в $495000. Во второй половине июня акции NVDA падали, в нашем глубоком анализе приведена динамика этого снижения по сессиям, и данный контракт стал инструментом для игры на этом падении с кредитным плечом. Знание этого заранее — то, что не даст ни одна таблица; первая сделка подробно разобрана в аналитическом разделе ниже.
Кто еще вошел в список лидеров
Все пять контрактов — это пут-опционы, столбец is_put показывает полученную выручку, и даже самый низкий мультипликатор превысил десятикратный размер. Вторая строка: пут-опцион на AAPL со страйком $240 и экспирацией 24 июля вырос с $0.01 до $0.34, показав 34x, и оставался открытым на конец месяца (июльская экспирация означает, что последняя цена является рыночной оценкой, а не ценой исполнения). Третья строка: пут-опцион на MU со страйком $100 и экспирацией 10 июля показал 20x и также перешел на июль. Четвертая и пятая строки: пут-опционы на TSLA со страйком $397,50 и на QQQ со страйком $707, оба с экспирацией 10 июня, принесли 12.5x и 11.7x на фоне падения рынка в начале месяца. Пять контрактов, пять ставок на снижение.
Продажа: как тысяча долларов превращается в минус полмиллиона
Покупка актива-победителя несла риск ровно в одну тысячу долларов. ПРОДАЖА этого же актива, при которой вы получаете ту же тысячу в качестве премии, подвергает вас риску движения цены. Столбец sold_net_loss_usd рассчитывает каждую строку с позиции продавца, не учитывая маржинальные требования, исполнение опционов и принудительное закрытие позиций. Продажа 1000 контрактов по цене $0.01 принесла одну тысячу долларов; последняя сделка зафиксировала позицию на уровне $495000 против продавца, что означает чистый убыток в размере $494,000. Худший сценарий для покупателя ограничен стоимостью самого контракта; худший сценарий для продавца — это рыночное движение, а самое значительное движение в июне составило пятьсот пунктов.
Проблема сделок по одному центу
Откуда берется множитель 495x? Приведенная ниже выписка объединяет всю июньскую ленту сделок победителя в одну аналитическую строку: первая сделка, вторая сделка и перепись всех сделок по одному центу за весь период.
| Дата первой сделки | Время первой сделки (ET) | Первая цена | Объем первой сделки | Сделки по $0.01 (июнь) | Контракты по $0.01 (июнь) | Вторая цена | Сек. до второй сделки | Цена на конец мес. | Кратность (2-я цена к посл.) | Итог $1000 на 2-й сделке ($) |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-06-15 | 09:49:30 | 0.01 | 2 | 1 | 2 | 2.44 | 101 | 4.95 | 2 | 1980 |
Точный SQL-код для каждого числа
SELECT
toString(toDate(min(sip_timestamp))) AS first_print_date,
formatDateTime(toTimeZone(min(sip_timestamp), 'America/New_York'), '%H:%i:%S') AS first_print_et,
round(anyIf(price, rn = 1), 2) AS first_price,
toUInt64(anyIf(size, rn = 1)) AS first_print_contracts,
countIf(price <= 0.011) AS penny_prints_in_june,
toUInt64(sumIf(size, price <= 0.011)) AS penny_contracts_in_june,
round(anyIf(price, rn = 2), 2) AS second_price,
toUInt32(dateDiff('second', min(sip_timestamp), anyIf(sip_timestamp, rn = 2))) AS seconds_to_second_print,
round(argMax(price, (sip_timestamp, price)), 2) AS month_last_price,
round(argMax(price, (sip_timestamp, price)) / anyIf(price, rn = 2), 1) AS second_print_multiple_to_last,
round(floor(1000 / (anyIf(price, rn = 2) * 100)) * argMax(price, (sip_timestamp, price)) * 100, 0) AS thousand_at_second_print_end_usd
FROM (
SELECT sip_timestamp, toFloat64(price) AS price, size,
row_number() OVER (ORDER BY sip_timestamp, price) AS rn
FROM global_markets.options_trades
WHERE ticker = 'O:NVDA260629P00200000'
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
)Контракт отсутствовал в июньской ленте до 2026-06-15. Его первая сделка в 09:49:30 по восточному времени составила 2 контрактов по цене $0.01, что соответствует примерно двум долларам премии. Следующая сделка, прошедшая через 101 секунд, была совершена по цене $2.44, и после этого сделок по одному центу больше не было (1 сделка по одному центу, 2 контрактов за весь месяц). Позиция в тысячу контрактов, о которой говорится в заголовке, в пятьсот раз превышает объем, который когда-либо торговался по этой цене. Если войти в позицию по цене второй сделки, то тысяча долларов превратится в $1980 к моменту последней сделки месяца, что дает множитель 2x, а не 495x. Движение от второй сделки, по сути удвоение за две недели на фоне высокой волатильности, было реальным и доступным для торговли. Джекпот, как он представлен в ленте, таковым не являлся.
Путь: десять сессий от листинга до экспирации
Исполните заявку по невозможной цене и удерживайте позицию до конца: данные по каждой сессии, когда проходили торги, обороту, цене последней сделки и переоценке позиции.
| Дата | Объем контрактов | Дневная премия ($ млн) | Дневная цена закр. | Стоимость позиции ($) | % от пика |
|---|---|---|---|---|---|
| 2026-06-15 | 385 | 0.06 | 1.4 | 140000 | 18.8 |
| 2026-06-16 | 343 | 0.06 | 2.19 | 219000 | 29.4 |
| 2026-06-17 | 334 | 0.08 | 2.87 | 287000 | 38.5 |
| 2026-06-18 | 1177 | 0.16 | 1.27 | 127000 | 17 |
| 2026-06-22 | 4505 | 0.41 | 1.06 | 106000 | 14.2 |
| 2026-06-23 | 9718 | 2.86 | 3.6 | 360000 | 48.3 |
| 2026-06-24 | 3114 | 1.03 | 4.33 | 433000 | 58.1 |
| 2026-06-25 | 4780 | 2.94 | 5.25 | 525000 | 70.5 |
| 2026-06-26 | 3815 | 2.43 | 7.45 | 745000 | 100 |
| 2026-06-29 | 1717 | 1.08 | 4.95 | 495000 | 66.4 |
Точный SQL-код для каждого числа
WITH (
SELECT (ticker, first_px)
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
ORDER BY last_px / first_px DESC, ticker ASC
LIMIT 1
) AS winner
SELECT toDate(sip_timestamp) AS date,
toUInt64(sum(size)) AS contracts_traded,
round(sum(toFloat64(price) * toFloat64(size)) * 100 / 1e6, 2) AS day_premium_usd_m,
round(toFloat64(argMax(price, (sip_timestamp, price))), 2) AS day_last_price,
round(floor(1000 / (winner.2 * 100)) * toFloat64(argMax(price, (sip_timestamp, price))) * 100, 0) AS position_value_usd,
round(100 * toFloat64(argMax(price, (sip_timestamp, price))) / max(toFloat64(argMax(price, (sip_timestamp, price)))) OVER (), 1) AS pct_of_peak
FROM global_markets.options_trades
WHERE ticker = winner.1
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY date
ORDER BY date ASCКонтракт совершал сделки на протяжении всех 10 сессий своего существования, с 2026-06-15 по дату экспирации 2026-06-29. Первый день закрылся на отметке $1.4, при этом тысяча долларов прибыли уже была зафиксирована по цене $140000 относительно входа по одному центу. Затем динамика изменилась: оценка в $287000 на 2026-06-17 сократилась до $106000 к 2026-06-22, что означает просадку почти на две трети. Пик, $745000, был достигнут 2026-06-26, за одну сессию до экспирации; последняя сделка прошла по цене $495000, что составляет 66.4% от пикового значения. Даже лучшая сделка месяца завершилась на треть ниже своего максимума. Оборот: в первый день было проторговано 385 контрактов за всю сессию, что примерно равно предполагаемому объему позиции за первые три сессии вместе взятые, в то время как в самый активный день, 2026-06-23, объем составил 9718 контрактов, а премия — $2.86 миллиона. Крупные объемы появились только после того, как движение уже началось.
Другая сторона баланса
| Контракты (50+ сделок) | PUT контракты | Рост 100x+ | Рост 10x+ | Puts с ростом 10x | Calls с ростом 10x | Падение на 90%+ | Calls с падением 90% | Доля Calls -90% (%) | Цена закрытия ≤ $0.02 |
|---|---|---|---|---|---|---|---|---|---|
| 30951 | 14994 | 1 | 14 | 14 | 0 | 9385 | 4403 | 46.9 | 8949 |
Точный SQL-код для каждого числа
SELECT
count() AS contracts_with_50_trades,
countIf(substring(ticker, -9, 1) = 'P') AS put_contracts,
countIf(last_px / first_px >= 100) AS up_100x_plus,
countIf(last_px / first_px >= 10) AS up_10x_plus,
countIf(last_px / first_px >= 10 AND substring(ticker, -9, 1) = 'P') AS up_10x_puts,
countIf(last_px / first_px >= 10 AND substring(ticker, -9, 1) = 'C') AS up_10x_calls,
countIf(last_px / first_px <= 0.1) AS down_90_pct_plus,
countIf(last_px / first_px <= 0.1 AND substring(ticker, -9, 1) = 'C') AS down_90_calls,
round(100.0 * countIf(last_px / first_px <= 0.1 AND substring(ticker, -9, 1) = 'C') / countIf(last_px / first_px <= 0.1), 1) AS down_90_call_share_pct,
countIf(last_px <= 0.02) AS ended_at_two_cents_or_less
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)| Контракт | Первая цена | Последняя цена | Куплено контрактов (тыс.) | Итоговая стоимость ($) |
|---|---|---|---|---|
| O:MU260612C01350000 | 10 | 0.01 | 1 | 1 |
Точный SQL-код для каждого числа
SELECT ticker AS contract,
round(first_px, 2) AS first_price,
round(last_px, 2) AS last_price,
toUInt32(floor(1000 / (first_px * 100))) AS contracts_a_thousand_bought,
round(floor(1000 / (first_px * 100)) * last_px * 100, 0) AS ending_value_usd
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
WHERE last_px <= 0.02 AND floor(1000 / (first_px * 100)) >= 1
ORDER BY first_px DESC, contract ASC
LIMIT 1Число, которое стоит рядом с джекпотом: из 30951 ликвидных контрактов ровно 1 принесли стократную прибыль, а 9385 потеряли девяносто процентов или более; 8949 контрактов по всей совокупности инструментов в последний раз торговались по цене два цента или ниже. При случайном выборе из этой колоды стопка с девяностопроцентными убытками выпадала тысячи раз на каждый джекпот. Самый дорогой путь вниз: O:MU260612C01350000, call-опцион на MU с ценой исполнения одна тысяча триста пятьдесят долларов и экспирацией двенадцатого июня, открылся в июне по цене 10 и закрылся на уровне 0.01, превратив тысячу долларов в 1.
Call или put: какая сторона выиграла?
Два «хвоста» распределения не совпадают. Выигрышный хвост состоял исключительно из put-опционов: каждый из 14 десятикратных выигрышей пришелся на put (14 put-опционов, 0 call-опционов) в совокупности, содержащей 14994 put-опционов среди 30951 контрактов. Проигрышный хвост оказался почти симметричным: из 9385 случаев почти полной потери стоимости 4403, 46.9%, были call-опционами, при этом put-опционы составили незначительное большинство. Направление движения определило каждого крупного победителя, но само по себе никого не спасло: тысячи put-опционов также оказались в стопке убыточных, будучи неверными по цене исполнения, по неделе экспирации или по обоим параметрам сразу.
Где накопились убытки
Какой базовый актив стал «кладбищем»? Не тот, что обвалился.
| Root | Контракты | Падение на 90%+ | Доля обесценивания Root (%) | Доля от всех -90% (%) | Рост 10x+ |
|---|---|---|---|---|---|
| QQQ | 8199 | 2923 | 35.7 | 31.1 | 9 |
| SPY | 7460 | 2319 | 31.1 | 24.7 | 0 |
| MU | 5652 | 1660 | 29.4 | 17.7 | 2 |
| TSLA | 4527 | 1368 | 30.2 | 14.6 | 1 |
| NVDA | 3078 | 671 | 21.8 | 7.1 | 1 |
| AAPL | 2035 | 444 | 21.8 | 4.7 | 1 |
Точный SQL-код для каждого числа
SELECT
multiIf(startsWith(ticker, 'O:NVDA'), 'NVDA', startsWith(ticker, 'O:TSLA'), 'TSLA', startsWith(ticker, 'O:AAPL'), 'AAPL', startsWith(ticker, 'O:SPY'), 'SPY', startsWith(ticker, 'O:QQQ'), 'QQQ', 'MU') AS root,
count() AS contracts,
countIf(last_px / first_px <= 0.1) AS down_90_pct_plus,
round(100.0 * countIf(last_px / first_px <= 0.1) / count(), 1) AS pct_of_root_wiped,
round(100.0 * countIf(last_px / first_px <= 0.1) / sum(countIf(last_px / first_px <= 0.1)) OVER (), 1) AS share_of_all_down_90_pct,
countIf(last_px / first_px >= 10) AS up_10x_plus
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
GROUP BY root
ORDER BY down_90_pct_plus DESC, root ASCQQQ обеспечил самую большую стопку: 2923 случаев почти полной потери стоимости, 31.1% от всей совокупности, при этом 35.7% его ликвидных контрактов были обесценены. Добавьте 24.7% от SPY, и на долю индексных инструментов придется более половины всех убыточных позиций. Два самых низких показателя потерь принадлежат NVDA и AAPL (21.8% и 21.8%), первый из них — NVDA, базовый актив для самого крупного выигрыша месяца. Стопка росла быстрее всего там, где премия оставалась неподвижной. Обратная сторона, та же таблица: QQQ обеспечил 9 из 14 десятикратных выигрышей месяца; SPY, имея 2319 контрактов в стопке убытков, обеспечил 0.
Чему учит эта таблица (и чего она не может)
Четыре урока. Выпуклость (convexity) реальна: дешевый опцион вне денег (out-of-the-money) кратно увеличивается в цене при резком движении базового актива — именно поэтому лотерейные билеты торгуются за копейки. Заголовки с мультипликаторами требуют проверки: июньский показатель 495x основан на одной сделке объемом в два лота; реальный торговый диапазон был двукратным. Распределение — это цена выпуклости: 14 десятикратных прибылей соседствуют с 9385 почти полными потерями (в разъяснении о маркет-мейкерах описано, кто продает эти «билеты»). Ретроспективный взгляд нельзя монетизировать: выигрышного билета не существовало первого июня, он впервые был зафиксирован пятнадцатого июня, а его покупка требовала знания направления и тайминга последующих двух недель еще утром того дня. Эта страница оценивает содержание июня. Она не дает прогнозов на июль.
Часто задаваемые вопросы
Какая опционная сделка стала лучшей в июне две тысячи двадцать шестого года?
Если измерять от первой до последней сделки по шести ликвидным базовым активам, то это put-опцион на NVDA со страйком двести долларов и экспирацией двадцать девятого июня две тысячи двадцать шестого года: от $0.01 до $4.95, рост в 495 раз; первая сделка прошла по цене в один цент объемом в два контракта (следующая сделка была по $2.44).
Можно ли потерять больше вложенного при торговле опционами?
При покупке опционов — нет: покупатель может потерять максимум уплаченную премию. При продаже опционов — да; июньские данные показывают продавца, который получил тысячу долларов премии, но к моменту последней сделки оказался в убытке на $494,000.
Почему большинство дешевых опционов обесцениваются к экспирации?
Дешевый опцион закладывает в цену исход, который рынок считает маловероятным: сильное движение до истечения короткого срока. В большинстве месяцев таких движений мало, и большинство контрактов обесцениваются. В июне две тысячи двадцать шестого года 9385 из 30951 активно торгуемых контрактов потеряли не менее девяноста процентов своей первоначальной стоимости; 8949 закрылись по цене два цента или ниже.
Мог ли реальный трейдер получить прибыль в 495 раз?
Почти наверняка нет при таком объеме: по цене входа $0.01 было совершено всего 2 сделок, а цена достигла $2.44 в течение 101 секунд. Тысяча долларов, вложенная по второй цене, превратилась бы примерно в $1980 к моменту последней сделки — это сильный результат, но кратный рост, меняющий жизнь, виден только задним числом.
Примечания к данным
Полные примечания к данным
- Расчеты для продавца намеренно не учитывают маржу, исполнение опционов и принудительную ликвидацию: реальная короткая позиция была бы закрыта или исполнена задолго до последней сделки. Эти данные отражают движение цены, а не выписку брокерского счета.
- Ретроспективный анализ, а не инвестиционная рекомендация. Каждая цифра рассчитана постфактум на основе зафиксированных сделок.
- Интервал от первой до последней сделки — это инструмент измерения, а не отчет об исполнении; именно поэтому показатели называются кратными, а не доходностью.
- Оговорка о «пенни» применима ко всем случаям: любая строка с начальной ценой в один цент (победитель; второе место AAPL) обладает той же уязвимостью.
- Вселенная активов: шесть базовых инструментов, MU, NVDA, TSLA, SPY, QQQ, AAPL, только стандартные тикеры OCC (скорректированные контракты исключены из-за длины), не менее пятидесяти июньских сделок, ненулевая цена первой сделки.
- Парсинг даты экспирации, цены исполнения и типа опциона выполнен на основе символа OCC; расчет премии предполагает множитель в сто акций.
Методология
- Период: с первого по тридцатое июня две тысячи двадцать шестого года; временные метки хранятся в формате UTC и фильтруются по исходным границам UTC. Калибровочная панель является базовым блоком и намеренно использует ретроспективные данные за две тысячи двадцать шестой год, рассчитанные по аналогичной методике.
- На контракт: первая цена — это сделка с самой ранней временной меткой SIP за июнь, последняя — с самой поздней; при совпадении меток приоритет отдается цене. Кратность рассчитывается как отношение последней цены к первой внутри запроса.
- Панель ежедневной динамики пересчитывает лидера на основе того же ранжированного сканирования при каждой генерации; запись о входе фиксирует его по тикеру с использованием границ, которые удерживают позицию в случае расхождения данных.
- Генерация осуществляется только пакетно через закрытый путь доступа «только для чтения»; страница никогда не делает запросов к «живым» данным. Состояние хранилища актуально на двенадцатое июля две тысячи двадцать шестого года.
Каждая панель представляет собой отдельный сохраненный объект, график, таблицу и SQL-запрос. Вы можете самостоятельно изучить реестр через терминал Strasmore.