Опционы  -  вид ценных бумаг, вызывающих постоянный интерес даже у начинающих трейдеров.  Об опционах написано немало  статей, поэтому мы опустим ознакомительную часть и будем считать,  что читатель знаком с основными терминами опционной торговли. Если что, то их толкование несложно найти в интернете. После первого знакомства с теорией у начинающих торговцев опционами возникает вопрос: а при каких условиях данный набор опционов даст прибыль, и какую. Даже опытный опционщик сходу не сможет ответить на этот вопрос, если у вас  более одного опциона. Для этого необходим анализ опционного портфеля ( набора опционов и , возможно, фьючерсов), который нагляднее всего делается в графическом виде, на диаграмме зависимости прибыли/убытка от стоимости базового актива. В настоящее время существует несколько сайтов для этого, а также отдельных программ. Автор статьи реализовал анализ опционов с помощью телеграмм-бота, что дает возможность быстрого получения информации об инвестиционном портфеле на смартфоне.   Будем считать, что, кроме опционов, читатель знаком с телеграмм ботами. Поэтому здесь не будет описания создания бота от получения токена до обработки клавиатуры. Вместо этого перечислим концептуальные проблемы, которые возникли при создании программы, и способы их решения. Бот получает сообщения от пользователя через встроенный в телеграмм механизм вебхуков. Каждый вебхук  заново запускает программу, но для каждого пользователя необходим свой набор данных.  Идентификация пользователей осуществляется через просмотр потока ввода: Для каждого пользователя строится следующая структура данных: файл состояния: переменные – флажки , которые описывают в частности,  идентификационные номера сообщений ( message_Id) для дальнейшей их редакции, актуальное состояние ( ввод количества, ввод страйка и т.д.),  вспомогательные данные для построения графика файл данных по составу портфеля (  идентификационный номер ценной бумаги, тип, количество, цена, дата экспирации)    файлы для построения графика После каждого вебхука происходит инициация данных в программе из указанных файлов. График строится  по состоянию на момент экспирации опционов, что дает возможность упрощенно представить график каждого инструмента в виде y=kx+b,   где  y – это  размер прибыли/убытка на момент экспирации         х – стоимость базового актива После  записи данных в портфель создаются файлы с расширением png с помощью библиотеки GD в несколько этапов: 1) определение Х-координат всех точек перелома на графике  (очевидно, что сумма всех линий даст ломанную кривую) 2) определение масштаба изображения (средняя всех  координат точек перелома по оси Х, максимальное отклонение от среднего,  и максимальный размер по оси Y)  3) создание ассоциативного массива точек, в котором координата X    это ключ, координата Y – величина, для всей цифровой полуплоскости: $typ – опцион колл, пут или фьючерс $q – количество ( отрицательное продажа) $cena – цена приобретения ценной бумаги $strike – страйк для опционов $x0 – начальная координата по оси Х $sx – масштаб по оси Х 4)      создание файлов изображений, при этом одновременно строится график для каждой строки из портфеля ( зеленый цвет)  и результирующий для портфеля ( красный цвет). Кроме того, know-how заключается в том, что одновременно строится еще четыре изображения  для увеличения/уменьшения изображения по оси Х и по оси Y. За счет этого достигается эффект работы он-лайн с клавишами X+,X-,Y+,Y- под графиком. Таким образом, для каждого пользователя в каждый момент времени существует пять файлов изображения. В тесной связи с прибыльностью находится понятие риска.  В количественном выражении риск по опционному портфелю выражается в сумме так называемого гарантийного обеспечения. Гарантийное обеспечение – та сумма, которая списывается со счета трейдера при совершении сделки.  Фактически, исходя из данных на текущий момент, блокируется сумма максимального убытка (потерь).  Однако, и это самое главное, сумма гарантийного обеспечения, списанная с вашего счета, пересчитывается после каждого клиринга ( утро, обед и вечер).  Она может как увеличиваться, так и уменьшаться. При спокойном течении торгов (в пределах какого-то диапазона) вы можете увидеть, что  сумма на вашем счете растет за счет уменьшения ГО.  Однако, ГО может резко вырасти в экстренных ситуациях ( стихийные бедствия, санкции, войны)  и не только в экстренных (праздники) . В этом случае у вас может быть списана дополнительная сумма в рамках увеличения ГО.  Если денег на вашем счете не хватит для оплаты увеличившегося ГО, наступает маржин-колл, в рамках которого ваши ценные бумаги будут принудительно списаны  по текущей рыночной цене, что ведет к обнулению счета.   В телеграмм-боте встроен блок расчета гарантийного обеспечения, в котором реализован следующий подход. Гарантийное обеспечение для фьючерсов считается по формуле, которая предложена самой Московской биржей: ГО=БГО+(Цена-Расчетная_Цена)*БП; где Расчетная_Цена определяется по результатам клиринга и практически равна цене базового актива на момент клиринга,  определяется в пунктах БП – стоимость пункта  в рублях, зависит, в частности, от курса доллара,  БГО – базовое гарантийное обеспечение, определяется биржей, может произвольно увеличиваться, например, перед праздниками   Таким образом, по фьючерсам ГО считается достаточно просто, поскольку все данные есть в открытом доступе. Что касается опционов и тем более сочетаний их в разных комбинациях, Московская биржа не дает однозначного рецепта, вернее не дает данных для их расчета, а предлагает купить модуль расчета ГО. В телеграмм-боте предлагается следующий подход:  риск по опциону такой же , как по фьючерсу, в той мере,  насколько опцион похож на фьючерс. При этом понятно, что нас интересуют только убытки, то есть нижняя полуплоскость нашего графика. Попробуем пояснить с помощью графиков. Вот как выглядит покупка колла в нашем боте: Гарантийное обеспечение=23. Что нам показывает график: если стоимость базового актива  ( в данном случае стоимость фьючерса на курс рубля к доллару) [вечером] 03.06.2021  будет 75000 и ниже,  то наш убыток составит 23 . При повышении этой стоимости до 75023 мы выйдем в безубыток, при дальнейшем росте получим прибыль.  Что мы имеем с точки зрения риска: не при каких обстоятельствах наш убыток не  превысит сумму 23. Следовательно, наш опцион совершенно не похож на фьючерс, и в расчете ГО мы можем записать просто сумму 23.  Покупка пута – примерно та же картина. Продажа пута. Гарантийное обеспечение= 5436. Можно убедиться, что при стоимости базового актива выше 72750 мы имеем прибыль 44. При снижении стоимости БА до 72706 мы выходим в ноль. При дальнейшем падении стоимости БА наш убыток НИЧЕМ НЕ ОГРАНИЧИВАЕТСЯ.  С точки зрения рисков – это фьючерс, купленный по цене 72706. Подставляем это число в формулу ГО для фьючерса и получаем ГО для опциона!  Этот ГО достаточно велик  (5436), но может превратится в прибыль в течение нескольких дней. Стоит ли овчинка выделки?  Если при условных затратах сегодня 5436 мы получим через несколько дней 44? Мне кажется, риск очень велик. С другой стороны, курс рубля к доллару был таким примерно 3 месяца назад. С продажей колла будет аналогичная ситуация. А если одновременно продать пут и кол? Гарантийное обеспечение не изменилось! С точки зрения риска понятно почему – может реализоваться только один из сценариев – либо по фьючерсу, купленному по примерно по 72700  (левая «нога»)  либо по фьючерсу проданному по 75190 ( правая «нога»).  Из них выбираем вариант  с наибольшим ГО , оно и будет мерилом риска.  На графике можно увидеть, что прибыль мы имеем при стоимости базового актива  в диапазоне от примерно 72700 до 75190,  в остальных случаях получаем убыток, который ничем не ограничивается. На экране отображаются следующие группы данных: подробная инструкция по работе с ботом текущие котировки ближайших фьючерсов по трем базовым активам таблица «Портфель»,  отображающая состав портфеля, сделанная с помощью интерфейса телеграмм  (  можно редактировать) значение гарантийного обеспечения таблица, дублирующая состав портфеля, построенная как изображение формата png, которую можно копировать и сохранять нижняя клавиатура, которую можно скрывать,  с кнопками: «Добавить позицию в портфель», «Анализ портфеля с помощью графика», «Обновить котировки»   Таблица «Портфель»  создана с помощью InlineKeyboard.  При нажатии на клавиши в этой таблице происходят следующие действия:  клавиша в столбце «К-во» редактирует количество ценных бумаг, соответствующее строке, в которой нажата клавиша  клавишами в столбце «Цена»  можно ввести реальную цену приобретения ценной бумаги. По умолчанию цена вставляется по данным биржи, и для опционов она может значительно отличаться от рыночной клавишей  Х  можно удалить строку. Прочие клавиши в таблице заблокированы и служат только для передачи информации. Значение гарантийного обеспечения пересчитывается каждый раз, когда  вы нажимаете кнопку  «Записать в портфель»( не показана, возникает в конце процедуры редактирования или добавления инструмента). В телеграмм-боте реализовано запоминание портфеля ценных бумаг для каждого пользователя.  Под ценными бумагами понимаются опционы и фьючерсы, базовым активом для которых являются: курс рубля к доллару (Si),  стоимость нефти брент (BR), а также индекс РТС (RI). Это самые высоколиквидные деривативы на московской бирже.  В телеграмм-бот заложен алгоритм подсчета гарантийного обеспечения, которое является мерой риска. С помощью телеграмм-бота можно анализировать опционный портфель на графике прибылей/убытков (P/L  график).  Протестировать телеграмм-бота можно по ссылке t.me/@test09062020bot.  Или попробовать найти в телеграмме по названию «опционный портфель».