Блог им. hannimed

Паритет опционов Put и Call, моделируем на языке R

В продолжении предыдущей статьи о подбрасывании монетки на языке R, хотелось бы продолжить изучение этого языка и немного углубиться в финансовую математику. Здесь я попробую дать небольшое введение в опционы и их паритет. Не стоит использовать эту статью для изучения опционов, если вы о них не слышали, т.к. могут быть неточности. Надеюсь уважаемые мэтры укажут на них в комментариях.

Зачем нам язык R?


А зачем нам вообще нужен язык R? Строго говоря, он нам не нужен. Но если его освоить, он становится просто еще одним удобным инструментом, как калькулятор или Excel. В прошлой статье были комментарии о том, что лучше использовать C# или Python. Да, я совершенно согласен, именно их и нужно использовать для программирования законченной и оттестированной модели. Но для разработки модели, для экспериментов и для обучения, R подходит как нельзя лучше. Когда строят самолеты, сначала делают деревянный макет, вот для таких макетов и будем использовать R, чтобы убедиться, что взлетит и не тратить силы зря на то, что летать не будет.


Опционы Put и Call, что такое паритет?


Пожалуйста, не читайте это, если вы не знаете, что такое опционы. А если прочтете, не серчайте, если ввёл кого-то в заблуждение.


Сняв с себя ответственность, за неточность дальнейших формулировок, можно теперь сказать, что опцион call — это право покупки актива, по определенной цене. Опцион put — это право продажи актива по определенной цене. Исходя из того, что мы можем покупать и продавать опционы и базовый актив, паритетом опционов называется следующее выражение:


Паритет опционов Put и Call, моделируем на языке R

  • C — опцион Call
  • P — опцион Put
  • S — базовый актив
  • E — страйк, цена исполнения
  • r — процентная ставка
  • T, t — время

Другими словами, когда вы покупаете Call и продаете Put на одном страйке, прибыль от роста или падения, будет точно такой же, как если бы вы просто купили базовый актив. Это и есть паритет, т.е. нельзя сделать прибыль из воздуха, всё привязано к цене базового актива.


Но если это выражение не выполняется, возникает возможность арбитража. А арбитраж, как многие наверняка знают, это практически единственный безрисковый способ заработка на рынке.

Моделируем поведение актива


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


Паритет опционов Put и Call, моделируем на языке R
  • μ — drift — дрейф
  • σ — volatility — волатильность
  • δt — timestep — временной шаг
  • Φ — нормально распределенная случайная величина

Это можно записать как (ссылка на код будет в конце статьи):

Паритет опционов Put и Call, моделируем на языке R


На выходе получаем такой вот график поведения базового актива:

Паритет опционов Put и Call, моделируем на языке R

Рассчитываем стоимость опционов


Не будем разжигать споры о применимости формулы Блэка-Шоулза, я знаю, что здесь есть как сторонники, так и противники этой формулы, наша цель просто сделать модель. Для расчета стоимости опционов используем следующие формулы (да, их уже много раз приводили здесь, но я привожу еще раз, для целостности картины):
Паритет опционов Put и Call, моделируем на языке R



Паритет опционов Put и Call, моделируем на языке R



У нас появились дополнительные параметры, которые нам понадобятся:
  • N(d) — функция нормального распределения
  • r — процентная ставка
  • E — страйк
  • T — время экспирации
 

Соединяем всё вместе и строим график


Напишем функции на языке R для этих формул и построим графики.

Паритет опционов Put и Call, моделируем на языке R


(часть кода здесь опущена, чтобы не захламлять пост, но его можно посмотреть по ссылке в конце статьи)


Выполним и получим следующий график:

Паритет опционов Put и Call, моделируем на языке R


Пояснения к цвету линий:
  • красная — цена базового актива
  • зеленая — цена опциона call с экспирацией T
  • синяя — цена опциона put c экспирацией T
  • оранжевая — график паритета опционов


Как мы видим на графике, паритет соблюдается независимо от поведения базового актива. И важно заметить, что он сохраняет небольшой рост — это рост благодаря безрисковой процентной ставке, которая обычно равна доходности ОФЗ.

Код можно найти здесь github.com/dmitryy/finance/blob/master/RScripts/put-call-parity.R
★16
Имей ввиду с фьючерсом такое не пройдёт. И обрати внимание, что стреддл даст.
Дмитрий Новиков, а почему с фьючерсом не пройдет? Я бы сказал такое в реальности не работает, потому что цены в стакане обычно далеки от формульных.
avatar

Dmitryy

Dmitryy, процентную ставку убери. Ты же не вкладываешь деньги которые чего то там стоят. Значит и начислять тебе незачто 
Дмитрий Новиков, я вас понял, так или иначе это не может быть прибыльной стратегией, по крайней мере более прибыльной, чем обычные ОФЗ, а значит бессмысленной. Тут просто скорее спортивный интерес, ну и знание на будущее, чтобы следить за возможным арбитражом при резких скачках волатильности. 
avatar

Dmitryy

Dmitryy, цены всюду формульный. Просто волу БА ты задал. Задай теперь волу Опционам. 

Тимофей Мартынов  добавьте пожалуйста пост в раздел «Опционы». Спасибо!

avatar

ch5oh

Клево! Продолжайте пожалуйста, очень интересно следить за ходом мысли. Особенно редко на СЛ встречается готовность поделиться кодом на R.

 

Успеха!

 

ПС Примите процентную ставку == 0.

Оранжевая должна стать строго горизонтальной.

avatar

ch5oh

ну наконец то формулы, блть уже ломать начало, ну когда же новые формулы то завезут, спать плохо стал!)
КАРАТЕЛЬ, пока простые и избитые, но на безрыбье как говорится :)
avatar

Dmitryy

Поясните нубу, зачем вам паритет стоимости производных на базовый актив? Что эта информация вам даст? Да, я в курсе, что опционный рынок гораздо объёмнее рынка базового актива (акций), но не являются-ли эти гигантские объёмы на опционном рынке так называемыми «глупыми деньгами» — деньгами хомяков, которым не хватает на покупку базового актива? Зная, где больше коллов, чем путов, вы предсказываете движение в этом направлении, или как?  А если эти коллы — хэдж базового актива (шорт по акциям), а не самостоятельная позиция? А если не голый хэдж, а более сложная конструкция? А если хэдж, но банк уже вышел из позиции, и не будет опционы исполнять. Попытки предсказать в какую сторону сдвинется паритет — это как угадать стоимость литра молока, анализируя (только) транспортные тарифы перевозчиков.
avatar

vladdidaddi

vladdidaddi, здесь не возможно ничего предсказать. Опцион это просто страховка, вы в праве выбрать кем вам быть, продавцом или покупателем страховки. Если вы держите акцию, вы можете застраховаться от падения, но за это заплатите премию за страховку. С другой стороны, человек посчитал, что акция никуда не денется и безболезненно продает страховки всем желающим. Это всё в общих терминах.

А про то, что на опционном рынке нужно меньше денег — это не так. Там зачастую нужно больше денег, потому что биржа требует ГО (гарантийное обеспечение), без которого вас принудительно закрывают.
avatar

Dmitryy

Там зачастую нужно больше денег
Опцион call на покупку 100 акций Амазона на не очень далёком страйке требует больше денег, чем покупка 100 акций Амазона прямо сейчас? Серъёзно?
avatar

vladdidaddi

vladdidaddi, вы хотите поспорить или разобраться? Да, вам продадут 100 колов, но если вы их будете держать до исполнения, во время исполнения вам продадут 100 акций амазона. Прибыль вы получите, продав их по рынку.
avatar

Dmitryy

vladdidaddi, Возможно, дело в следующем (буду писать для рынка ФОРТС, у Вас в Валиноре логика примерно такая же плюс/минус).

 

Пришел человек с 50 тыр на счете. Торгует 1 лот фьючерса на СИ с ГО порядка 5 тыр. Доволен. "Я — трейдер". Самомнение до небес, девушки интересуются и все такое. Самое главное, что мани-менеджмент паршиво, но выполнен. Будем считать, что ГО/Счет==1-к-10 — годный ММ для внутридневной скальпинга с коротким стопом.

 

Пришел другой человек. Он видит куда дует ветер и хочет работать от продажи опционов. Продать 1 опцион — не вопрос. ГО те же самые 5 тыр. Только никому нафиг не надо продавать 1 опцион. Ему дельту не выровнять, фактически, позиция не обладает опционными свойствами.

 

Поэтому он продает минимум 10 опционов. ГО минимум 50 тыр. Чтобы выполнить требования ММ у него должен быть счет уже более 500 тыр.

 

Отсюда возникает НАБЛЮДЕНИЕ, что для торговли опционами надо больше денег, чем для торговли фьючерсами.

avatar

ch5oh

Да, вам продадут 100 колов,

Сколько денег с меня за это возьмут, столько же как и за 100 акций?

Я хочу поставить под сомнение ваше утверждение, что для покупки опциона требуется такая же сумма, а зачастую больше (sic), сколько для приобретения базового актива. 
avatar

vladdidaddi

vladdidaddi, я возможно не правильно выразился или был не правильно понят. Купить вы конечно сможете, но для поддержки стратегии в прибыли, для того же дельта хеджа, или возможности пересидеть резкие всплески волатильности, вам потребуется гораздо больше денег чем стоимость колов. Вас могут просто закрыть из-за внезапно выросшего ГО. Одним из требований покупки опционов является ГО, которое должно всегда присутствовать на счете, т.е. вы не сможете тратить эти деньги. Т.о. их часто включают в расходы, т.к. эти деньги теряют свою гибкость. Расчет ГО есть на сайте биржи. 
avatar

Dmitryy

Указанное соотношение верно для европейских опционов; для американских оно выглядит чуть иначе…
avatar

Eugene Logunov

Eugene Logunov, вы используете в своих системах этот паритет? Для меня лично это всё выглядит как snake oil 
vladdidaddi, когда-то пытался торговать его на заре, так сказать, в раннем детстве. Деньги есть, но мало. Основной интерес к этому виду халявы должен быть у крупных торговых домов и брокеров, но почему-то мы мало видим, чтобы они действительно котировали.
avatar

ch5oh

vladdidaddi,
Для меня лично это всё выглядит как snake oil 
Это потому, что у вас, вероятно, нет достаточно быстрой инфраструктуры для исполнения таких стратегий. В статье приведена одна из рабочих идей, которые представляют интерес для высокочастотных трейдеров.
Eugene Logunov, совсем запутали. Я полагал, что высокочастотные трейдеры торгуют базовый актив, используя latency и перекос в ценах на 16 биржах, перехватывая летящие маркетные заявки и успевая перехватить предложение и передвинув его немного в свою сторону… Какие перекосы могут быть на одной-единственной CBOE и с кем?

vladdidaddi, Пример. У Вас 10 тысяч опционов на фьючерс е-мини СП500 (или больше???). Вы правда думаете, что абсолютно все трейдеры успевают во всех этих опционах поддерживать абсолютно верные идеально точные котировки с полным соблюдением партитета в каждый момент времени?

 

А если фьючерс делат шпильку на 5 шагов цены, кто-то просто не успеет отменить свою заявку, которая вдруг стала неадекватной.

avatar

ch5oh

vladdidaddi, Во-первых, они не ограничены торговлей базового актива. Во-вторых, помимо latency arbitrage есть куча других интересных стратегий, которые можно исполнять в рамках одной биржи или даже инструмента. В-третьих, как вам уже правильно написали — при больших движениях базового актива кто-то может просто не успеть переставить заявку, что приведёт к нарушению PCP. В четвёртых, опционы торгуются не только на CBOE:



Eugene Logunov, а она вообще существует?
avatar

Dmitryy

Eugene Logunov, в1. Как выглядит аналитическая формула для американских опционов? ;-)

 

в2. Как выглядит паритет для американских опционов на фьючерсы?

avatar

ch5oh

ch5oh,
в1: (S-K)<=(C-P)<=(S-K*exp(-r*T))
в2: Читаем у Халла :)
Eugene Logunov, при r=0 получается европейский случай? =)

На самом деле на месте мосбиржи я бы упростил ситуацию и переделал все опционы на европейский тип.


Или это заговор такой специальный и кто-то умеет зарабатывать на досрочном исполнении???
avatar

ch5oh

ch5oh, 
европейский тип
иначе, как сами заметили, нет -досрочному исполнению (по дефолту). кмк, досрочное исполнение упрощает жизнь, все зависит от торгуемой страты и, наверно, размера потерь теты (если она имеет для трейдера значение)
ch5oh, 
при r=0 получается европейский случай? =)
Мы покупаем или продаём? :)
На самом деле на месте мосбиржи я бы упростил ситуацию и переделал все опционы на европейский тип.
Угу. И остальным биржам то же самое посоветовать.
(А как доставляют фьючерсы на бонды с переменной, сцуко, стоимостью пункта...)
Но ведь не послушают!
Eugene Logunov, без разницы. Ваши неравенства вырождаются в строгое равенство при r=0.


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


В противном случае это все выглядит просто как тонкий троллинг и возможность подложить своему ближнему большую и вонючую кучку…
avatar

ch5oh

ch5oh, 
без разницы. Ваши неравенства вырождаются в строгое равенство при r=0.
Да я шучу же. Просто вы задаёте вопросы, ответы на которые очевидны :)
ch5oh, 
ну или (по в1): p=max (c-S+K*exp(-r*T); c-S+K). Если так очевидней, но это какая-то нетрадиционная PCP-форма). Логунов поправит, что не так)

в2 (без разницы, Ам/евр) :c-p=S-K. при дивах=0
Eugene Logunov, именно так. кроме того Афтару можно было вообще не прикручивать в топик прайсинг по BSM, раз в топик о паритете. 
flextrader, хотелось именно график увидеть :)
avatar

Dmitryy

осталось инфраструктуру построить вокруг формул =))
avatar

Андрей К

Андрей К, зачем? Там денег мало-мало в абсолюте.
avatar

ch5oh

ch5oh, я так примерно прикинул, если не котировать (не стоять в стакане) с идеальной разработкой лет за 8-10 отобьется =))

если котировать и брать некий риск на себя, то возможно быстрее

Андрей К, расходы на инфраструктуру будут все съедать кмк.


Это можно работать чисто как вишенку на торте. Если у Вас и так есть сервер в стойке и все очень быстро работает. Тогда почему бы не охотиться за нарушением паритета в дополнение к уже работающему портфелю алгоритмов.

 

=) Но пользы для рынка больше, если котировать опционы в-деньгах.

avatar

ch5oh

ch5oh, 
Но пользы для рынка больше, если котировать опционы в-деньгах.
а для этого нужна сильная подготовка, потому что когда в деньгах собьют одну ногу, то на второй 100% ликвидности не будет, и чего тогда делать? это уже брать риск и что то придумывать.

достоверно знаю, кто в таких паритетах берет риск на себя с придумыванием второй ноги, в апреле год назад совсем нехорошо себя чувствовали
Андрей К, мы же про ХФТ вроде бы? Если со второй (и третьей) ноги слетает ликвидность — лимитник надо успеть отменить, конечно.
avatar

ch5oh

 
в дополнение к уже работающему портфелю алгоритмов.
когда рынок нормальный, квартальная экспира генерит сумму. Либо если рынок не нормальный, но в квартале был трендовый день, который посшибал 2-3 серии страйков, тогда то же кварталка нормальная.
avatar

Андрей К

Спасибо за статья. А как вы исторические данные в R Studio загоняете?
avatar

Arion

Arion, в данной статье этого не требовалось, но вообще там есть импорт:



А сами данные можно взять из разных источников, например на сайте мос. биржи, они бесплатные и открытые. 

avatar

Dmitryy


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW