Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-31

Лучшая и худшая сделка на тысячу долларов в июне 2026

Лучший опционный контракт июня принес 495x прибыли, тогда как продажа аналогичного актива привела к потере 494,000 долларов с каждой тысячи премии. Полный ретроспективный отчет.

Лучшая опционная сделка июня 2026 года

Какой была лучшая опционная сделка июня 2026 года и во что превратилась бы тысяча долларов, вложенная в неё? Честный ответ звучит четырежды: джекпот; аномальная сделка по двум контрактам с ценой в один цент, на которой строится заголовок; девять тысяч почти полных убытков вокруг неё; и зеркальная сделка — продажа того, что купил победитель, где тысяча долларов собранной премии превратилась в шестизначную дыру. Всё рассчитано постфактум на основе архивных данных ленты сделок; оптимальная с точки зрения ретроспективного анализа сделка измеряет то, что содержал в себе месяц, а не стратегию, которую мог бы реализовать кто-либо. Каждая цифра — это результат сохранённого запроса; разверните любую панель для получения точного SQL.

Насколько бурным был июнь две тысячи двадцать шестого года?

Нужен ли исторически значимый рыночный месяц для того, чтобы опцион вырос в сто раз? Июнь доказывает, что нет. Мы пересчитываем каждый месяц две тысячи двадцать шестого года по единой методике: от открытия до закрытия в основную торговую сессию, плюс диапазон от максимума до минимума в процентах к цене открытия для SPY и NVDA — базового актива для выигрышного инструмента. В июне было 21 торговых сессий.

ЗапросКалибровка: расчет каждого месяца 2026 года, SPY и NVDA, показатели open-to-close и диапазон
Начало периодаSPY изм. мес. (%)SPY диапазон (%)NVDA изм. мес. (%)NVDA диапазон (%)Торговые дни
2026-01-010.93.10.88.920
2026-02-01-0.53.1-5.414.219
2026-03-01-4.28.7-0.414.122
2026-04-019.911.413.425.821
2026-05-014.964.920.820
2026-06-01-1.25.8-7.419.721
Точный 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 ASC
Запустите сами

SPY завершил июнь с результатом -1.2% от цены открытия в рамках диапазона 5.8%, что уже, чем в марте (8.7%) или апреле (11.4%). Основные события разворачивались на уровень ниже: NVDA закрылся с изменением -7.4% от цены открытия июня, пройдя диапазон 19.7% (обзор рынка за июнь две тысячи двадцать шестого года содержит общую картину). Для стократного роста опциона не потребовался обвал рынка: хватило резкого падения одной крупной акции в течение двух недель.

Самые высокие мультипликаторы месяца

Вселенная инструментов: все контракты по шести ликвидным базовым активам, по которым в июне было совершено не менее пятидесяти сделок, 30951 контрактов, оцененных от первой до последней сделки месяца. Рассматриваются два сценария: покупка по первой цене с переоценкой по последней и продажа опциона за тысячу долларов премии с расчетом итогового обязательства.

ЗапросПять крупнейших мультипликаторов июня (от первого до последнего принта), расчет по обеим позициям (шесть ликвидных базовых активов, 50+ сделок)
КонтрактТип PUTПервая ценаПоследняя ценаКратностьКонтрактов на $1000Стоимость на конец ($)Чистый убыток ($)Сделки
O:NVDA260629P0020000010.014.9549510004950004940004650
O:AAPL260724P0024000010.010.343410003400033000119
O:MU260710P0010000010.05120200200001900081
O:TSLA260610P0039750011.2815.9512.57111651146110801
O:QQQ260610P0070700011.2614.7411.77103181069814669
Точный 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-1509:49:300.012122.441014.9521980
Точный 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. Движение от второй сделки, по сути удвоение за две недели на фоне высокой волатильности, было реальным и доступным для торговли. Джекпот, как он представлен в ленте, таковым не являлся.

Путь: десять сессий от листинга до экспирации

Исполните заявку по невозможной цене и удерживайте позицию до конца: данные по каждой сессии, когда проходили торги, обороту, цене последней сделки и переоценке позиции.

ЗапросДинамика по сессиям: дневной оборот, цена закрытия и оценка позиции в 1000 долларов
ДатаОбъем контрактовДневная премия ($ млн)Дневная цена закр.Стоимость позиции ($)% от пика
2026-06-153850.061.414000018.8
2026-06-163430.062.1921900029.4
2026-06-173340.082.8728700038.5
2026-06-1811770.161.2712700017
2026-06-2245050.411.0610600014.2
2026-06-2397182.863.636000048.3
2026-06-2431141.034.3343300058.1
2026-06-2547802.945.2552500070.5
2026-06-2638152.437.45745000100
2026-06-2917171.084.9549500066.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 миллиона. Крупные объемы появились только после того, как движение уже началось.

Другая сторона баланса

ЗапросПолное распределение: на каждый джекпот — тысячи убыточных сделок (с учетом разделения на put/call)
Контракты (50+ сделок)PUT контрактыРост 100x+Рост 10x+Puts с ростом 10xCalls с ростом 10xПадение на 90%+Calls с падением 90%Доля Calls -90% (%)Цена закрытия ≤ $0.02
30951149941141409385440346.98949
Точный 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
)
Запустите сами
ЗапросСамый дорогой путь к нулю: наиболее дорогой контракт, завершившийся с ценой 0,02 или ниже
КонтрактПервая ценаПоследняя ценаКуплено контрактов (тыс.)Итоговая стоимость ($)
O:MU260612C01350000100.0111
Точный 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-опционов также оказались в стопке убыточных, будучи неверными по цене исполнения, по неделе экспирации или по обоим параметрам сразу.

Где накопились убытки

Какой базовый актив стал «кладбищем»? Не тот, что обвалился.

ЗапросУбытки по базовым активам: контракты с падением на 90%+ от первого принта, доля в общем объеме и десятикратные сделки по каждому активу
RootКонтрактыПадение на 90%+Доля обесценивания Root (%)Доля от всех -90% (%)Рост 10x+
QQQ8199292335.731.19
SPY7460231931.124.70
MU5652166029.417.72
TSLA4527136830.214.61
NVDA307867121.87.11
AAPL203544421.84.71
Точный 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 ASC
Запустите сами

QQQ обеспечил самую большую стопку: 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.

#options#hindsight#convexity#risk#deepdive