Strasmore Research
Навчання Matt ConnorВід Matt Connor

Ratio spread: беззбитковість і naked-ризик

Як працює 1x2 call ratio spread: обчислюємо обидві точки беззбитковості та пік прибутку, щоб зрозуміти, коли naked leg починає створювати збиток.

Ratio spread купує один опціон і продає проти нього більше одного, зазвичай два, з дальшим strike і тією самою датою експірації. Додатковий короткий контракт покриває більшу частину вартості позиції та обмежує прибуток на рівні short strike. Водночас один call залишається без покриття вище цього рівня. Саме тут математика стає несприятливою.

Як насправді влаштований 1x2 call ratio spread

Стандартна версія — 1x2 call ratio: купівля одного call із нижчим strike і продаж двох call із вищим strike на той самий базовий актив і з тією самою датою експірації. Якщо розкласти конструкцію на частини, один long call і один short call утворюють звичайний vertical, описаний у матеріалі credit spreads і debit spreads. Другий short call не має long-опціону вище нього. Ця частина є naked і створює зобов’язання поставити 100 акцій за short strike незалежно від того, наскільки високо підніметься акція.

Математика ratio spread: дві точки беззбитковості та один пік

Круглі числа роблять розрахунок наочним. Візьмімо умовну акцію за $100. Купуємо call зі strike $100 за $6.00 і продаємо два call зі strike $110 за $2.50 кожен. Чиста вартість становить $6.00 мінус $5.00, тобто debit $1.00 на акцію або $100 за пакет.

На момент експірації позиція має чотири діапазони:

  • Нижче $100 усі call експірують без вартості, а збиток дорівнює debit $1.00.
  • Між $100 і $110 long call перебуває in the money, а два short call — ні. Позиція зростає на один долар на акцію за кожен долар підвищення ціни акції й стає прибутковою за $101.00. Це нижня точка беззбитковості.
  • За $110 long call коштує $10.00, а обидва short call експірують без вартості. Максимальна вартість становить $10.00 мінус debit $1.00, або $900 на контракт.
  • Вище $110 long call додає один долар, а два short call втрачають два долари. Позиція втрачає один долар на акцію за кожен долар подальшого зростання і повертає весь прибуток у розмірі $9.00 за $119.00. Це верхня точка беззбитковості.

У загальному вигляді, де A — strike long-опціону, B — strike short-опціонів, а C — чиста вартість на акцію (C є від’ємною, якщо пакет відкрито з credit): максимальний прибуток дорівнює (B - A) - C і досягається за B. Верхня точка беззбитковості дорівнює максимальному прибутку, доданому до B, тобто 2B - A - C. Для debit-версії нижня точка беззбитковості дорівнює A + C. У credit-версії нижньої точки беззбитковості немає, оскільки нижче A усі call експірують без вартості, а отриманий credit залишається у трейдера.

Після верхньої точки беззбитковості збиток зростає на один долар за кожен долар підвищення ціни акції. Верхньої межі збитку немає. У 1x3 ratio збиток зростає на два долари на акцію за кожен долар підвищення ціни. Жоден вибір strike не усуває цю частину ризику.

Розрахуйте payoff на власних параметрах

Конструкція визначається чотирма параметрами: двома strike, двома преміями та ratio. Нижче наведено базовий heredoc для Python 3. Потрібна лише стандартна бібліотека. Нічого не потрібно встановлювати або завантажувати. Скрипт виводить чисту вартість, пік, обидві точки беззбитковості та payoff на момент експірації для діапазону цін. Поруч він показує звичайний 1x1 vertical для порівняння.

python3 - <<'PY'
# 1x2 call ratio: buy 1 call at the lower strike, sell RATIO calls at the higher one.
SPOT = 100.00
LONG_STRIKE,  LONG_PREMIUM  = 100.00, 6.00
SHORT_STRIKE, SHORT_PREMIUM = 110.00, 2.50
RATIO = 2                      # short contracts per long contract

net_cost   = LONG_PREMIUM - RATIO * SHORT_PREMIUM      # per share, negative is a credit
max_profit = (SHORT_STRIKE - LONG_STRIKE) - net_cost   # per share, reached at the short strike
upper_be   = SHORT_STRIKE + max_profit / (RATIO - 1)   # slope above the short strike is 1 - RATIO
lower_be   = LONG_STRIKE + net_cost

def ratio_payoff(px):
    return (max(px - LONG_STRIKE, 0)
            - RATIO * max(px - SHORT_STRIKE, 0)
            - net_cost)

def vertical_payoff(px):
    return (max(px - LONG_STRIKE, 0)
            - max(px - SHORT_STRIKE, 0)
            - (LONG_PREMIUM - SHORT_PREMIUM))

print("net %s of %.2f per share" % ("debit" if net_cost > 0 else "credit", abs(net_cost)))
print("max profit %.2f per share, at %.2f" % (max_profit, SHORT_STRIKE))
if net_cost > 0:
    print("lower breakeven %.2f" % lower_be)
else:
    print("lower breakeven none, the credit is kept under %.2f" % LONG_STRIKE)
print("upper breakeven %.2f, then unbounded" % upper_be)
print()
print("%8s %10s %10s" % ("price", "1x2", "1x1"))
for step in range(17):
    px = SPOT * (0.90 + 0.025 * step)
    print("%8.2f %10.2f %10.2f" % (px, ratio_payoff(px), vertical_payoff(px)))
PY

За strike і преміями з наведеного прикладу скрипт виводить:

net debit of 1.00 per share
max profit 9.00 per share, at 110.00
lower breakeven 101.00
upper breakeven 119.00, then unbounded

   price        1x2        1x1
   90.00      -1.00      -3.50
   92.50      -1.00      -3.50
   95.00      -1.00      -3.50
   97.50      -1.00      -3.50
  100.00      -1.00      -3.50
  102.50       1.50      -1.00
  105.00       4.00       1.50
  107.50       6.50       4.00
  110.00       9.00       6.50
  112.50       6.50       6.50
  115.00       4.00       6.50
  117.50       1.50       6.50
  120.00      -1.00       6.50
  122.50      -3.50       6.50
  125.00      -6.00       6.50
  127.50      -8.50       6.50
  130.00     -11.00       6.50

Порівняйте два стовпці. Нижче long strike обидві позиції залишаються незмінними: ratio має збиток $1.00, а vertical — $3.50. Ratio зростає до $9.00 за $110 і потім втрачає цей прибуток у міру подальшого зростання ціни. Нуль перетинається між $117.50 і $120.00, що відповідає верхній точці беззбитковості $119.00, наведеній над таблицею. Vertical обмежений прибутком $6.50 вище short strike і далі не змінюється. Для розрахунку показника на контракт помножте будь-який стовпець на 100. Якщо встановити RATIO на 3, падіння після піку прискориться до двох доларів на акцію за кожен долар зростання. Підвищуйте SHORT_PREMIUM, доки net_cost не стане від’ємним. Тоді нижня точка беззбитковості зникне.

Margin визначається naked-частиною, а не шириною між strike

У vertical spread максимальний збиток визначається відстанню між strike, і margin, яку утримує брокер, залежить від цього показника. У ratio spread максимальний збиток не обмежений. Покрита частина взаємозаліковується, а залишковий short call маржується як uncovered call. Формула починається з відсотка від повної вартості базового активу, враховує відстань strike до рівня out of the money і додає отриману премію. Відстань між strike не використовується. Вузький і широкий ratio на одній акції мають подібну вимогу щодо margin для naked-частини. Ця вимога змінюється разом із ціною акції протягом сесії. Повна механіка описана в матеріалі margin для продажу naked-опціонів.

Як часто акція проходила таку відстань?

Верхня точка беззбитковості — це відстань, обмежена строком. Нижче показано, як ця відстань порівнюється з фактичним рухом AAPL за відповідний період: кожен відрізок із 25 торгових сесій, приблизно п’ять календарних тижнів, від січня 2021 року до липня 2026 року. Дані згруповано за рівнем, на якому завершився рух акції.

ЗапитРухи AAPL за 25 сесій із січня 2021 року, за масштабом
Точний SQL-код для кожного числа
WITH
    daily AS
    (
        SELECT
            date,
            toFloat64(max(close)) AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2021-01-04'
          AND date <= '2026-07-31'
        GROUP BY date
    ),
    indexed AS
    (
        SELECT
            date,
            close_px,
            row_number() OVER (ORDER BY date) AS n
        FROM daily
    ),
    moves AS
    (
        SELECT 100 * (b.close_px / a.close_px - 1) AS fwd_move_pct
        FROM indexed AS a
        INNER JOIN indexed AS b ON b.n = a.n + 25
    ),
    totals AS
    (
        SELECT count() AS all_windows FROM moves
    )
SELECT
    multiIf(
        fwd_move_pct < -5,  'down more than 5%',
        fwd_move_pct <  0,  'down 0 to 5%',
        fwd_move_pct <  5,  'up 0 to 5%',
        fwd_move_pct < 10,  'up 5 to 10%',
        fwd_move_pct < 15,  'up 10 to 15%',
                            'up more than 15%')  AS move_bucket,
    count()                                       AS window_count,
    round(100 * count() / any(t.all_windows), 1)  AS share_of_windows_pct
FROM moves AS m
CROSS JOIN totals AS t
GROUP BY move_bucket
ORDER BY min(m.fwd_move_pct)
Run this yourself

Вікна, що завершилися up more than 15%, становили 5.8% вибірки, 80 з них. Ratio, верхня точка беззбитковості якого потрапляє в один із найбільш заповнених середніх діапазонів, у минулому часто перевищувалася. Рівень за межами крайнього діапазону перевищувався рідко. Обидва показники описують історію однієї акції на одному відрізку часу. Вони нічого не говорять про наступні п’ять тижнів.

Assignment за short strike

Американські equity options, що котируються у США, можуть бути призначені до виконання в будь-який робочий день, а не лише на момент експірації. Одночасний assignment за двома short call створює short-позицію на 200 акцій на кожен 1x2. Long call покриває 100 із них. У результаті залишається short-позиція на 100 акцій разом із long call, яка утримується з вимогою margin до закриття. Достроковий assignment call найчастіше відбувається перед ex-dividend dates, коли часова вартість deep in-the-money call стає меншою за дивіденд, який отримує власник у разі виконання опціону. У матеріалі Ex-dividend dates і опціони розглянуто це порівняння, а матеріал коли short-опціони призначаються до виконання достроково охоплює інші випадки.

Чому останній тиждень створює труднощі

Пік є точкою, а не діапазоном. Gamma, тобто швидкість зміни delta опціону, концентрується біля strike у міру наближення експірації. Саме в зоні максимального payoff directional exposure позиції змінюється найшвидше. Якщо до останньої сесії акція залишається поблизу short strike, трейдеру складно передбачити, скільки з двох short call буде призначено до виконання. Трейдери часто закривають позицію або переносять її на пізнішу експірацію до початку цього тижня. Це встановлює нові пік і точки беззбитковості за іншою вартістю позиції.

FAQ

Що таке 1x2 ratio spread?

1x2 ratio spread купує один опціон і продає два опціони з дальшим strike і тією самою датою експірації. У call-версії один short call покривається long call, а другий залишається непокритим. Саме ця непокрита частина визначає профіль ризику.

Чи має ratio spread дві точки беззбитковості?

Call ratio, відкритий із net debit, має дві точки беззбитковості. Нижня дорівнює long strike плюс debit. Верхня дорівнює short strike плюс максимальний прибуток. Версія, відкрита з credit, має лише верхню точку беззбитковості, оскільки credit зберігається за будь-якої ціни нижче long strike.

Чому ratio spread потребує margin для naked-опціону?

Непокритий short call створює необмежене зобов’язання. Стандартна формула margin для нього починається з відсотка від вартості базового активу, а не з відстані між strike. Сума margin змінюється разом із ціною акції.

Що відбувається в разі дострокового assignment short call?

Assignment за обома short call створює short-позицію на 200 акцій на кожен 1x2, а long call покриває 100 із них. До закриття позиції залишається short-позиція в акції разом із long call. Assignment call найчастіше відбувається безпосередньо перед ex-dividend date.

Чи є ratio spread тим самим, що й backspread?

Це дзеркальні конструкції. Ratio spread продає більше контрактів, ніж купує, і несе ризик на стороні відкритого зобов’язання. Backspread купує більше контрактів, ніж продає, фінансує додаткові long-контракти продажем ближчого short-опціону й має необмежений потенціал прибутку.


Наведена вище панель містить SQL-запит, за допомогою якого її було сформовано. Скрипт приймає будь-які задані вами strike і премії. Запустіть ті самі розрахунки для будь-якого опціонного ланцюжка в терміналі Strasmore.

#options#ratio spread#breakeven#margin#assignment