В продолжении предыдущей статьи о подбрасывании монетки на языке R, хотелось бы продолжить изучение этого языка и немного углубиться в финансовую математику. Здесь я попробую дать небольшое введение в опционы и их паритет. Не стоит использовать эту статью для изучения опционов, если вы о них не слышали, т.к. могут быть неточности. Надеюсь уважаемые мэтры укажут на них в комментариях.
Зачем нам язык R?
А зачем нам вообще нужен язык R? Строго говоря, он нам не нужен. Но если его освоить, он становится просто еще одним удобным инструментом, как калькулятор или Excel. В прошлой статье были комментарии о том, что лучше использовать C# или Python. Да, я совершенно согласен, именно их и нужно использовать для программирования законченной и оттестированной модели. Но для разработки модели, для экспериментов и для обучения, R подходит как нельзя лучше. Когда строят самолеты, сначала делают деревянный макет, вот для таких макетов и будем использовать R, чтобы убедиться, что взлетит и не тратить силы зря на то, что летать не будет.
Опционы Put и Call, что такое паритет?
Пожалуйста, не читайте это, если вы не знаете, что такое опционы. А если прочтете, не серчайте, если ввёл кого-то в заблуждение.
Сняв с себя ответственность, за неточность дальнейших формулировок, можно теперь сказать, что опцион call — это право покупки актива, по определенной цене. Опцион put — это право продажи актива по определенной цене. Исходя из того, что мы можем покупать и продавать опционы и базовый актив, паритетом опционов называется следующее выражение:
- C — опцион Call
- P — опцион Put
- S — базовый актив
- E — страйк, цена исполнения
- r — процентная ставка
- T, t — время
Другими словами, когда вы покупаете Call и продаете Put на одном страйке, прибыль от роста или падения, будет точно такой же, как если бы вы просто купили базовый актив. Это и есть паритет, т.е. нельзя сделать прибыль из воздуха, всё привязано к цене базового актива.
Но если это выражение не выполняется, возникает возможность арбитража. А арбитраж, как многие наверняка знают, это практически
единственный безрисковый способ заработка на рынке.
Моделируем поведение актива
Давайте попробуем смоделировать поведение базового актива. Для этого возьмем формулу, полученную на основе измерения доходности базового актива. Не будем вдаваться в подробности получения этих параметров, это, возможно, станет предметом дальнейшего исследования. На данный момент нам интересно только получить цену каждого очередного шага, что можно сделать по формуле:
- μ — drift — дрейф
- σ — volatility — волатильность
- δt — timestep — временной шаг
- Φ — нормально распределенная случайная величина
Это можно записать как (ссылка на код будет в конце статьи):
На выходе получаем такой вот график поведения базового актива:
Рассчитываем стоимость опционов
Не будем разжигать споры о применимости формулы Блэка-Шоулза, я знаю, что здесь есть как сторонники, так и противники этой формулы, наша цель просто сделать модель. Для расчета стоимости опционов используем следующие формулы (да, их уже много раз приводили здесь, но я привожу еще раз, для целостности картины):
У нас появились дополнительные параметры, которые нам понадобятся:
- N(d) — функция нормального распределения
- r — процентная ставка
- E — страйк
- T — время экспирации
Соединяем всё вместе и строим график
Напишем функции на языке R для этих формул и построим графики.
(часть кода здесь опущена, чтобы не захламлять пост, но его можно посмотреть по ссылке в конце статьи)
Выполним и получим следующий график:
Пояснения к цвету линий:
- красная — цена базового актива
- зеленая — цена опциона call с экспирацией T
- синяя — цена опциона put c экспирацией T
- оранжевая — график паритета опционов
Как мы видим на графике, паритет соблюдается независимо от поведения базового актива. И важно заметить, что он сохраняет небольшой рост — это рост благодаря безрисковой процентной ставке, которая обычно равна доходности ОФЗ.
Код можно найти здесь
github.com/dmitryy/finance/blob/master/RScripts/put-call-parity.R
Тимофей Мартынов добавьте пожалуйста пост в раздел «Опционы». Спасибо!
Клево! Продолжайте пожалуйста, очень интересно следить за ходом мысли. Особенно редко на СЛ встречается готовность поделиться кодом на R.
Успеха!
ПС Примите процентную ставку == 0.
Оранжевая должна стать строго горизонтальной.
А про то, что на опционном рынке нужно меньше денег — это не так. Там зачастую нужно больше денег, потому что биржа требует ГО (гарантийное обеспечение), без которого вас принудительно закрывают.
vladdidaddi, Возможно, дело в следующем (буду писать для рынка ФОРТС, у Вас в Валиноре логика примерно такая же плюс/минус).
Пришел человек с 50 тыр на счете. Торгует 1 лот фьючерса на СИ с ГО порядка 5 тыр. Доволен. "Я — трейдер". Самомнение до небес, девушки интересуются и все такое. Самое главное, что мани-менеджмент паршиво, но выполнен. Будем считать, что ГО/Счет==1-к-10 — годный ММ для внутридневной скальпинга с коротким стопом.
Пришел другой человек. Он видит куда дует ветер и хочет работать от продажи опционов. Продать 1 опцион — не вопрос. ГО те же самые 5 тыр. Только никому нафиг не надо продавать 1 опцион. Ему дельту не выровнять, фактически, позиция не обладает опционными свойствами.
Поэтому он продает минимум 10 опционов. ГО минимум 50 тыр. Чтобы выполнить требования ММ у него должен быть счет уже более 500 тыр.
Отсюда возникает НАБЛЮДЕНИЕ, что для торговли опционами надо больше денег, чем для торговли фьючерсами.
Сколько денег с меня за это возьмут, столько же как и за 100 акций?
Я хочу поставить под сомнение ваше утверждение, что для покупки опциона требуется такая же сумма, а зачастую больше (sic), сколько для приобретения базового актива.
Eugene Logunov, в1. Как выглядит аналитическая формула для американских опционов? ;-)
в2. Как выглядит паритет для американских опционов на фьючерсы?
ну или (по в1): p=max (c-S+K*exp(-r*T); c-S+K). Если так очевидней, но это какая-то нетрадиционная PCP-форма). Логунов поправит, что не так)
в2 (без разницы, Ам/евр) :c-p=S-K. при дивах=0
vladdidaddi, Пример. У Вас 10 тысяч опционов на фьючерс е-мини СП500 (или больше???). Вы правда думаете, что абсолютно все трейдеры успевают во всех этих опционах поддерживать абсолютно верные идеально точные котировки с полным соблюдением партитета в каждый момент времени?
А если фьючерс делат шпильку на 5 шагов цены, кто-то просто не успеет отменить свою заявку, которая вдруг стала неадекватной.
если котировать и брать некий риск на себя, то возможно быстрее
Андрей К, расходы на инфраструктуру будут все съедать кмк.
Это можно работать чисто как вишенку на торте. Если у Вас и так есть сервер в стойке и все очень быстро работает. Тогда почему бы не охотиться за нарушением паритета в дополнение к уже работающему портфелю алгоритмов.
=) Но пользы для рынка больше, если котировать опционы в-деньгах.
достоверно знаю, кто в таких паритетах берет риск на себя с придумыванием второй ноги, в апреле год назад совсем нехорошо себя чувствовали
На самом деле на месте мосбиржи я бы упростил ситуацию и переделал все опционы на европейский тип.
Или это заговор такой специальный и кто-то умеет зарабатывать на досрочном исполнении???
В Валиноре торгуются опционы европейского типа. Но почему-то их мало. Вот и возникает вопрос: может быть, опционы амерского типа содержат в себе способ зарабатывать на исполнении???
В противном случае это все выглядит просто как тонкий троллинг и возможность подложить своему ближнему большую и вонючую кучку…
А сами данные можно взять из разных источников, например на сайте мос. биржи, они бесплатные и открытые.