FateevVV
FateevVV личный блог
09 ноября 2014, 12:01

Анализатор опционных позиций.

  Предоставляю на суд общественности, разработанный мной, «анализатор опционных позиций». Анализатор написан в экселе на языке VBA и является бесплатным проектом, доступный всем. Анализатор будет полезен в первую очередь новичкам, которые еще не знают сильные и слабые стороны различных опционных стратегий и как изменится профиль их стратегии при изменении таких условий как количество дней удержания, волатильность или курс доллара. Внешний вид такой:

Анализатор опционных позиций.Анализатор опционных позиций.

Многие скажут  зачем надо создавать анализатор, которых существует уже большое количество. Я отвечу, среди бесплатных (я работал в option предоставляемый биржей и стандартный в КВИК), ни одна меня не устроила. В них нет возможности сравнивать стратегии между собой и нет возможности менять условия, такие как количество дней, волатильность и курс доллара. Платные версии я даже не рассматриваю. Считаю, что можно создать свой бесплатный продукт не хуже навороченных платных, по крайней мере удовлетворяющие мои скромные потребности. 

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

Итак начнем с настройки подключения. Данные в анализатор подгружаются из КВИК через DDE. Создаем в КВИК  «доску опционов» и «позиции по клиентским счетам». В доску опционов добавляем те опционные серии которые вам интересны, например я добавил ноябрьские и декабрьские серии по РТС. Внешний вид таблиц такой:

Анализатор опционных позиций.

Порядок следования и наименования столбцов, строго как указано на картинке.
Настройки вывода через DDE сервер для «доски опйционов» следующие:

Анализатор опционных позиций.

Настройки вывода через DDE сервер для «позиции по клиентским счетам» следующие:

Анализатор опционных позиций.

Рекомендую, перед экспортом данных во вкладке «Данные» очистить данные в экселе, скрин ниже:

Анализатор опционных позиций.

Это необходимо если в предыдущий раз подгружено было больше строк, чем есть в текущий раз в КВИК, то эти предыдущие строки которые больше так и останутся в текущей.

Как только данные подгрузились, переходим на вкладку «Портфель». Она состоит из двух зон, левая зона это текущий портфель, правая  – моделируемый. Нажимаем кнопку «Обновить портфель», ваши позиции появляются в таблице и расчитываются греки отдельных позиций и портфеля в целом — строка «Итого:».  Допустим мы хотим сравнить текущую позицию с немного измененной позицией, назовем её смоделированным портфелем.  Нажимаем кнопку «Скопировать портфель», ваши текушие позиции скопируются в моделируемый портфель. Стираем данные в появившейся строчке «Итоги:» и записываем туда новую позицию. Продадим опцион колл с более дальним страйком. Заполняем только те колонки которые выделены синим цветом.
Instrument – название инструмента которые добавляете, главное чтобы первые 2 буквы инструмента начинались с «RI», остальные символы неважны.
Q – коичество контрактов, + купили, — продали.
Type – тип контракта, только из 3 возможных, это CALL опцион колл, PUT опцион пут и FUT фьючерс.
Strike – страйк опциона, если это фьючерс пишем 0
Exp – дата экспирации опциона или фьючерса
Vola – волатильность опциона, смотрим во вкладке «Данные»
Нажимаем кнопку обновить, производится расчет греков отдельных позиций и портфеля в целом в моделируемом портфеле. Идем на вкладку «Диаграмма», выставляем галочки тоторые нас интересуют
«Текущий» — построит профиль текущего портфеля.
«Тек. эксп.» — построит профиль на экспирацию минус  1 день.
«Модель» — построит профиль моделируемого портфеля.
«Мод. эксп.» — построит профиль моделируемого портфеля на экспирацию минус  1 день.
«Рисовать в руб.» — если стоит галочка, то профиль позиций будет строится в рублях, если нет то в пунктах.
«Шаг сетки Y» — шаг отрисовки сетки по оси Y, в рублях или пунктах, в зависимости от предыдущего пункта. Если галочку убрать, то эксель сам будет сетку рисовать.
и нажимаем на кнопку «Построить». На диаграмме появится ваш профиль текщего портфеля и моделируемого.

Для того чтобы сравнить эти две позиции, необходимо прийти к каким то единым условиям, допустим это будет максимальный убыток. Подберем количество опционов в моделируемом портфеле такое, чтоб убыток моделируемого портфеля и текущего был одинаковым.  После этого делаем предположение, что цена пойдет в верх и за 7 дней хода волатильность уменьшится на 5 %. Вбиваем эти параметры в  «days» и «vola» моделируемого и текущего портфелей на вкладке «Портфель».
«days» — количество дне которых необходимо прибавить к текущей дате.
«vola» — на эту величину надо увеличить (знак +) или уменьшить (знак -) волатильность инстументов входящих в портфель.
«dollar» — на эту величину надо увеличить (знак +) или уменьшить (знак -) курс доллара указанного во вкладке  «Настройки» ячейка «Курс доллара».

Эти параметры относятся к тем портфелям где находятся, текущий или моделируемый портфель. Переходим на вкладку «Диаграмма», жмем кнопку «Построить» и сравниваем чего получилось. Рисунки чего получилось у меня ниже:

Анализатор опционных позиций.Анализатор опционных позиций.

Делаем какие то выводы, ну например такие. Профиль модели лучше выглядит вплоть до 109000. При дальнейшем увеличении прибыль получается менее чем у исходного портфеля. Но вероятность такого исхода мала.

Теперь посмотрим, а что произойдет с позицией, если цена упадет и за 7 дней волатильность выростет на 5. Устанавливаем значения «days» и «vola» в 7 и 5 соответственно, жмем кнопку «Построить». У меня получилось так:

Анализатор опционных позиций.

Всеравно получается, что моделируемый портфель немного выигрывает у текщего портфеля при падении.

В текущем портфеле можно вводить не только текущие ваши позиции, а вообще любой произвольный портфель и сравнивать его с моделируемым. Вводим в поля обозначенные синим цветом свои значения, правила введения такие же как и при введении в моделируемом портфеле. После того как произвели какие то изменения с портфелем или добавили позицию, необходимо нажать кнопку «Обновить расчеты» для текущего портфеля или «Обновить» для моделируемого портфеля, касаемо того где производили изменения. Еще дополнительное условие, чтобы в текщем портфеле и в моделируемом, после ваших позиций было как минимум 2 пустые строчки,  в ячейке «Instrument» строчка «Итого:» должна отсутствовать. Это необходимо для того  чтобы программа поняла, что это конец ваших позиций. Также можно например ввести одинаковую стратегию в текущий портфель и в моделируемый, но поставить разные условия. Например в текущем портфеле оставить нули, а в моделируемом изменить их, ну например поставить что курс доллара увеличится на 5. В этом случае на диаграмме мы сможем наглядно увидеть как влияют на нашу позицию внешние условия, такие как «days», «vola» и «dollar».

Вкладка «Настройки», в ней можно настраивать следующие параметры:
«Больше текущей цены» — эта настройка относится к графику, на сколько пунктов более текущей цены необходимо построить диаграмму.
«Менее текущей цены» — эта настройка относится к графику, на сколько пунктов менее текущей цены необходимо построить диаграмму.
«Шаг расчета графика» -с таким шагом расчитываются точки диаграммы. Можно его вообще не трогать, если уж совсем нитерпится, то вбивать значения 50, 100, 250 или 500. Это необходимо для корректного отображения сетки по оси X на диаграмме.
«Интересуемый инструмент» — пока вариантов нет оставить как есть «RI».
«Курс доллара» — текущий курс доллара.
«Шаг цены опциона» и «Шаг цены фьючерса» тут вроде все понятно.

Вкладка «Для расчетов», там ничего нитрогать.

Вот такое краткое описание, моего анализатора.

Могу сказать следующеи замечания по данному анализатору:
-Данный продукт не планируется делать как супер универсальный. Изначальная цель, это изучение характеристик опционных стратегий от внешних факторов таких как дни удержания, изменение волатильности и изменение курса доллара, а также сравнение стратегий между собой. А так как у нас на опционном рынке, можно сказать что существует только один ликвидный инструмент, это РТС, то и мой анализатор заточен пока только под него.
-Пока есть небольшой косяк, который я со временем устраню. В данной версии анализатора, по DLL серверу с КВИК необходимо подгружать опционные серии у которых одна дата экспирации у фьючерсного контракта. Например текущие серии опционов ноябрь и декабрь подойдут, а вот декабрь 2014 и март 2015 уже неподойдут. Тут пока мне не понятно какую текущую цену отображать на диаграмме, декабря или марта, подумаю и устраню в дальнейшем.
— Анализатор создавался в эксель 2007, соответственно как он будет работать в более ранних версиях мне неизвестно. В более поздних версиях экселя, думаю будет работать корректно.
— Так как анализатор писался на VBA и использовались элемены AxtiveX, соответственно вы должны разрешить работу для  данного содержимого в экселе.

В краткосрочной перспективе планы по развитию анализатора такие:
— Анализатор будет бесплатным и доступным всем.
— Будут устранятся появляющиеся косяки.
— Добавлю диаграммы греков.
— Насчет профиля на экспирацию я подумаю чего с ним сделать. По просьбе трудящихся сделаю обычный как во всех платформах, у меня в данный момент сделано «дата экспирации минус  1 день». Просто я не собираюсь держать позиции до экспирации и он мне нужен просто для того чтобы наглядно видеть куда будет стремиться профиль со временем.
— Подумаю насчет даты открытия позиции. В даной версии используется текущая дата. Тут надо подумать как лучше это организовать.
— Сделаю панельку облегчающую ввод позиции, наподобии как в КВИК. На данном этапе ввод производится обычным способом с клавиатуры или копированием.
-Возможно сделаю поддержку других инструментов.
— Выслушаю ваши предложения и понравившиеся мне и соответствующие идеологии развития данной программы в будующем будут внедрены.

В отдаленной перспективе развития планируется :
— Сделать трехмерные графики профилей опционных позиций.
— Вести учет позиций совершенных в прошлом.
— Ввести автоматизацию подачи заявок в КВИК  через API. Это и просто открытие позиции по волатильности, и дельта хеджеры, и арбитражеры.

Ну и напоследок хочется сказать, что я доволен проделанной работой, данный анализатор мне нравиться гораздо больше чем любые другие анализаторы, он мне кажется гораздо проще и понятнее. Конечноже это связано с тем, что его я создавал. Тут уместно вырожение —  «каждая лягушка хвалит свое болото». Я расчеты данного анализатора сравнивал с программой option от биржи, расчеты бьются копеечка в копеечку и это радует.

Я черезвычайно буду рад, если для когото из вас анализатор будет полезен. Будь то вы будете просто его использовать как есть, или вам интересны какието моменты программирования или расчет греков или еще чего.

Жду ваших предложений по усовершенствованию данной программы и конечно же обнаруженные косяки.

Скачать файл можно тут: файл

С уважением Фатеев Виктор!
81 Комментарий
  • Евгений
    09 ноября 2014, 12:06
    Зачем все это, если есть option.ru?
      • Евгений
        09 ноября 2014, 12:11
        FateevVV, посмотрите на optioner.org Там можно менять волу, БА и экспирацию.
          • Евгений
            09 ноября 2014, 12:25
            FateevVV, у вас уже заявка на комбайн. Смотрите тогда на OptionLab. Его некоторые брокера бесплатно раздают.
          • Fisherman
            09 ноября 2014, 13:13
            FateevVV, если бы вы сделали такую программу для западных рынков — даже в платной версии использовать ее нашлось бы немало желающих
            • Growex
              09 ноября 2014, 14:47
              AndreyT, а как же Hoadley?
        • Growex
          09 ноября 2014, 14:44
          Евгений, а не составить ли вам небольшой обзор таких сервисов?
        • XMAX
          09 ноября 2014, 16:34
          Евгений, optioner.org как и option.ru очень часто глючит или вообще отваливается, причем бывает на несколько дней
  • witwayer
    09 ноября 2014, 12:21
    Отлично! Спасибо! +++!
  • Алексей Ван <o-s-a.net>
    09 ноября 2014, 12:25
    Молодец. Делай свою прогу лучше всех. Стандартные штуки давно не работают на трейдера.
    Хоть ничего и не смыслю в опционах, но плюс лови. Судя по скринам, работа проделана сумасшедшая!
    Всё получится!
  • R14
    09 ноября 2014, 12:42
    хорошее решение! спасибо! плюсанул бы.
  • XXM
    09 ноября 2014, 13:05
    хорошее решение! спасибо! плюсанул!
    и в пост и в профиль!
    Заодно досталось и R14, что плюсанул.
  • max2005
    09 ноября 2014, 13:11
    Виктор, если добавите ещё расчет ГО, то будет замечательно.
  • Orbus
    09 ноября 2014, 13:13
    Как проба пера, весьма неплохо, но зачем создавать то что уже есть и во множестве вариантов? Если есть желание создать нужный продукт, то сделайте то, что слабо представлено. Например гораздо интереснее сравнивать позиции по грекам 2-го порядка, или разложите волу ртс на волы ммвб и си. Успехов!
      • Orbus
        09 ноября 2014, 13:38
        FateevVV, я про греки второго порядка: вомма, ванна, чарм и т.д. Про разложение волы: ртс это ммвб + доллар -> вола ртс это комбинация волы ммвб и волы доллара
          • AlexeyTikhonov
            09 ноября 2014, 14:10
            FateevVV, эти греки просто производные вторых и третьих порядков,
            аналитические формулы все есть, прикрутить их проблем не составляет, но это действительно, не первоочередная задача.
          • Mr. Bean
            09 ноября 2014, 15:14
            FateevVV, добавьте тег excel, pls
          • Urets
            09 ноября 2014, 20:11
            FateevVV, молодец! Спасибо!
        • AlexeyTikhonov
          09 ноября 2014, 14:17
          Orbus, смотря какая вола, если историческая, то еще можно по дисперсии портфеля вывести, но смысл, если опционная, то никакой суперпозиции там не будет, вернее отклонение какое-то будет, но торговать этот арбитраж у нас на этих инструментах сомнительное удовольствие.
          • Orbus
            09 ноября 2014, 16:17
            AlexeyT, почему сомнительное? фртс как ртс, си как доллар, фсбер как прокси ммвб и вперед )))
  • nazarwatch
    09 ноября 2014, 13:20
    молодца, не останавливайся!
  • спидараминепью
    09 ноября 2014, 13:27
    к сожалению в 2010 версии выдает «Для этой книги недоступны проект VBA, элементы управления ActiveX и остальные программные средства» даже при всех включенных элементах(
    • Sergii Onyshchenko
      09 ноября 2014, 14:35
      Osen, возможно нужно скачать что-то типа www.microsoft.com/en-us/download/details.aspx?id=5555
      • спидараминепью
        09 ноября 2014, 14:46
        Яковлевич (osa), это все есть поэтому и не понимаю почему
        • Sergii Onyshchenko
          09 ноября 2014, 15:11
          Osen, пробуйте на другой машине (винде)
      • спидараминепью
        09 ноября 2014, 21:56
        FateevVV, спасибо за помощь но не могу подключить надстройку вба пишет что идет ссылка на несуществующий файл или что он занят другой программой ATPVBAEN.xlam, хотя сам файл в бибилотеке присутствует т.е. нет надстройки вба пока не соображу что с этим делать
  • Zorkiy
    09 ноября 2014, 13:28
    ++++
  • AlexeyTikhonov
    09 ноября 2014, 14:08
    Отличная работа!!!
    Чуть позже посмотрю все подробнее, выскажу свои предложения.
    Так как есть большой опыт подобного (если не смотрели, посмотрите пост: smart-lab.ru/blog/175461.php)
  • v3Rtex
    09 ноября 2014, 14:32
    Отличная работа!

    > Ввести автоматизацию подачи заявок в КВИК через API. Это и просто открытие позиции по волатильности, и дельта хеджеры, и арбитражеры.

    Вот за это я готов даже платить
  • Mr. Bean
    09 ноября 2014, 14:46
    народ а есть у кого опыт построения своей базы тиковых данных, может кто рассказать?
    • v3Rtex
      09 ноября 2014, 14:58
      Mr. Bean, имеется ввиду непрерывное формирование БД экселем из поступающей информации?
      • Mr. Bean
        09 ноября 2014, 15:07
        v3Rtex, не, имеется ввиду что-то более серьёзное, SQL или даже noSQL может
    • sheffield
      09 ноября 2014, 15:05
      Mr. Bean, лучше всего использовать для тиков sqlite — это файловая база данных, которая поддерживает sql, те можно формировать запросы. Я делал на python + sqlite, те данные хранятся в файл, обработка и тестирование стратегий на python. Для личного использования более чем достаточно.
      • Mr. Bean
        09 ноября 2014, 15:09
        sheffield, ну да вот это и интересует. БД сами проектировали или брали что-то готовое, что-то читали?
        • sheffield
          09 ноября 2014, 16:22
          Mr. Bean, я завтра напишу пост на эту тему. С технической точки зрения бд очень простая — одна таблица, которая содержит тики со следующими полями:

          Ticks
          ---------------
          — timestamp
          — price
          — volume

          Еще у меня есть таблица для хранения баров:

          Bars
          ------------
          — timestamp
          — open
          — high
          — low
          — close
          — volume
          — delta
          — period

          Таким обрахом когда я загружаю тики, я еще вставляю записи с таблицы bars, для нужного мне периода — 1 и 5 мин. Это и есть вся структура базы, после чего скриптом я прохожу по всем барам или тикам один за одним и применяю алгоритм. Те получается такая схема:

          1. Сохранить тики в сырой форме
          2 посчитать агрегированную информацию (бары)
          3 пройти внешним скриптом по базе бар за баром или тик за тиком

          Если стратегия работает сразу с несколькими инструментами, то прежде всего нуэно выровнять по времени данные одного и другого инструмента, тк могут быть дырки. После выравнивания удобно идти бар за баром и тик за тиком по обоим инструментам. Я для себя сделал вывод, что hft торговля не перспективное ханятие — тк сожержит слишком много технических моментов, и соотвественно имеет много операционн рисков. Мне кажется стоит работать с барами от минуты, а сложный процент и реинвестирование сделают свое дело, при реинвестировании капитал реально по экспоненте растет.

          • Mr. Bean
            09 ноября 2014, 16:54
            sheffield, спасибо. ещё вопрос у вас всё на питоне реализовано или только работа с БД и почему именно питон? если пост напишите будет супер. ещё интересно как хранится история ордеров и прочей расчётной инфы.
  • Роман Давыдов
    09 ноября 2014, 16:32
    спасибо
  • Илья К
    09 ноября 2014, 16:54
    Какая опционная модель используется?
      • sozday
        09 ноября 2014, 18:09
        FateevVV, А эта примочка поддерживает другие инструменты..., например золото и евро??
          • Илья К
            09 ноября 2014, 18:25
            FateevVV, рекомендую биноминальную если есть интерес считать вегу более точно (с учетом улыбки).
              • XMAX
                10 ноября 2014, 12:44
                FateevVV, Почему то не строится диаграма, вылазиет ошибка www.floomby.ru/s2/deEdXd
                  • XMAX
                    10 ноября 2014, 20:23
                    FateevVV, www.floomby.ru/s2/KevY2Z вот скрин портфеля
    • Migarus
      10 ноября 2014, 04:44
      Читаю «какая коррупционная модель» ))) пожалуй я устал)
  • onlyforward
    09 ноября 2014, 18:14
    Большой труд, респект!
  • StockChart.ru
    10 ноября 2014, 01:12
    анализ опционов есть еще на ruticker.com
  • asane
    11 ноября 2014, 01:42
    :fateevVV

    Работает!
    после n минут легкого бубна ) удалось запустить.

    там много где вылетает из Range списков, массивов, чаще всего для этого нужно подать данные в неправильном виде, но можно просто:
    — поставить слагаемое даты модельного портфеля так чтоб вылетело за дату экспирации
    — поставить инструмент Si
    для того чтоб завести Si, пришлось заменить в позициях код бумаги на «название» иначе квик обрезал нули в тикере опциона
    -очень медленно считает при нажатии на кнопки, прям видно как цифирки в таблице рисуются по 5 в секунду примерно)

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

    Там пришлось избавиться от чек
    боксов и текстбоксов и добавить функцию Round )) и проверок дописать. Если нужно вам или кого-то еще, с Вашего позволения выложу эту версию.

    Вобщем респект! Реально работает уже сейчас удобнее option.ru, optionlab

    свой проект торговой среды пишу на Delphi/C++.
    сейчас реализую интерфейсы тс, скоро дойдет до запуска опционного модуля, позаимствовал часть математики греков, спасибо!
    • asane
      11 ноября 2014, 01:49
      и еще:

      если есть опционы на один б.а. с разным сроком экспирации, берется первая дата похоже.
  • mit.su
    11 ноября 2014, 11:47
    Запустилось, но при изменении портфеля на свой возникает ошибка при попытке построить график профиля.
    Напр. если в вашем файле меняю в портфеле (на странице «Данные»): RI100000BW4 1 17.11.2014 — график не хочет строиться, пишет ошибку «Run-time error '5': Invalid procedure call or argument»
      • mit.su
        11 ноября 2014, 18:46
        FateevVV, Спасибо,
        я так и делаю. С моим портфелем выгруженным из квика вылетела ошибка, поэтому попробовал просто поменять ваш портфель который уже в файле. Просто напротив RI100000BW4 вместо нуля ставлю 1 (вкладка Данные), на вкладке Портфель нажимаю Обновить портфель и Обновить расчёты, затем на вкладке Диаграмма нажимаю Построить и вылетает «Run-time error '5'". При этом если RI100000BW4 оставить 0, а менять кол-во RIZ4 или RI105000BL4 то всё ок и диаграмма строится.

        Попробуйте плз у себя воспроизвести.
        Может это у меня с екселем что-то не так..
  • asane
    11 ноября 2014, 22:12
    :FateevVV Ваш проект работает у меня с Si после мелких правок, результат близок или совпадает с др по.

  • asane
    11 ноября 2014, 22:29
    :FateevVV
    в этом проекте греки рассчитываются из биржевой волатильности и констант для опциона типа страйк, даты, тип опц.

    А Вы пробовали повторить рассчет биржевой волы?
  • Дмитрий Иванов
    18 февраля 2015, 06:53
    Обновите, пожалуйста файл для скачки — он удален.
    (OptionFVV_v1.xlsm
    Файл был удалён.
    Причина удаления: Файл был утерян вследствие программного сбоя. Сожалеем об этом. см. forum.my-files.ru/t491-topic)
  • Дмитрий Иванов
    18 февраля 2015, 13:20
    Спасибо, нашел седьмую, настроил с бубном (не пошла на office 2013, переустановил на 2010, оказалось дело не в этом вообще, а в передаваемых из quik данных), но калькулятор так и не удалось настроить — при нажатии никакие цифры не подставляются, как ни старался (есть ли ПОШАГОВОЕ руководство по настройке Вашего аналитика, желательно не привязанное к РИ — хочу попробовать на сбере или газе?)
  • dantes
    21 ноября 2017, 11:19
    FateevVV, если есть актуальная версия в эксель (не программа, у меня терминал SmartX от ITinvest)- буду признателен!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн