Бектестим направленную торговлю опционами и сравниваем (результаты) с торговлей фьючерсом (RI)

Все мы знаем, на уровне здравого смысла, что опционы это круто. Особенно бинарные.
По заявлениям сектантов, познавший их внутреннюю нелинейную сущность уже никогда не станет прежним не вернется торговать линейными инструментами. Впрочем, по их словам, опционы — это добро и свет не только для избранных — любой дремучий аксакал торгующий по тренду уже сейчас может воспользоваться их благодатью.
Убедитесь сами — берем месячный RI OTM Call со страйком на расстоянии 10000 от текущей цены стоимостью ~500. Если фьюч делает +2500, опцион стоит уже ~1000 (профит +500). Если фьюч делает -2500, опцион стоит 250 (убыток -250). Можно и продолжить! В пределе, что бы цена ни вытворяла, наш убыток ограничен 500-ми, а профит вообще неограничен!.. правда опцион теряет в стоимости приметно 25 пунктов в день, но подобная фигня ведь никого не остановит, нэ?

Пытаемся придерживать раскатившуюся губу и думаем — как лучше воспользоваться этой благодатью в наших корыстных целях...
Самое простое(имхо) — взять замшелого трендового робота и заменить в нем покупку фьюча на покупку ОТМ опциона.
Теперь нужно прикинуть, какой страйк лучше покупать… ATM медленнее распадается, но обладает меньшим эффектом усиления плеча… дальние OTM наоборот — плечо усиливают хорошо, но распадаются быстрее.

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

Однако, жажда наживы неостановимо движет нас вперед, поэтому делаем следующие допущения:
-нам нет нужны возиться с конкретными опционными сериями. Каждый раз открывая позицию будем считать что покупаем абстрактный OTM опцион со страйком +-10к(например) от текущей цены за 5 недель до его экспирации. 
-Закрывая позицию, рассчитываем как изменилась цена нашего опциона. Изменение цены фьюча РТС и время нахождениня в позиции берем из бектеста вышеупомянутого замшелого робота.
-Считаем что время течет(тэта капает) непрерывно, днем и ночью, в будни и выходные(нет желания влезать в опционную теорию относительности)...
-пренебрегаем влиянием изменения волатильности на цены опционов (считаем ее постоянной во времени).
-покупаем и продаем всё по теорцене(пренебрегаем всякими комиссиями и возможностью реально купить продать в нужный момент).

Таким образом, если робот купил фьюч по 82к и через день закрыл по 83к, то мы прикидываем, за сколько мы можем купить абстрактный 92к кол при цене фьюча 82к и за сколько мы сможем его продать через день при цене фьюча в 83к.
Пробегаем подобным образом по всем сделкам из бектеста робота и сравниваем полученные кривые эквити. Чтобы легче было сравнивать — считаем что покупаем не один опцион вместо одного фьюча, а примерно эквивалентное количество по дельте.

Теперь нужно научиться рассчитывать изменение цены опционов.
Лезем в OptionLab и выписываем оттуда текущие (17 марта, ~5 недель до экспирации) цены апрельских колов. затем сдвигаем таймер на неделю и получаем цены на те же опционы через неделю при условии что фьюч на месте и волатильность та же.

Теперь на основе данных составленной таблицы можно интерполировать как будет изменяться цена на опцион в диапазоне ~15к пипсов в течение недели. 
Для оценки временного распада используем линейную интерполяцию(ибо он на рассматриваемом промежутке почти линеен, а на ночную нелинейность мы пока положили).
Изменение цены опциона по расстоянию от текущей цене фьюча интерполируем функцией гаусса (пробовал кусочно-интервально параболой и сплайнами, но, на удивление, гаусом вышло проще и точнее).

в итоге получилась функция EstOpt54 оценки опциона по удаленности от текущей цены и прошедшего с начала нашей 5-й до экспирации недели (в которой мы покупаем опцион) времени.

'интерполяция цен для 5-недельных опционов
Function EstOptPrice(p As Double) As Double
k0 = 9350.427
k1 = -13760.133
k2 = 187977432.736
EstOptPrice = k0 * Exp(-(p — k1) * (p — k1) / k2)
End Function

'интерполяция распада цены за неделю для 5-недельных опционов
Function EstOptWeekDecay(p As Double) As Double
k0 = 0.885
k1 = -738.48
k2 = 423562072.559
EstOptWeekDecay = k0 * Exp(-(p — k1) * (p — k1) / k2)
End Function

'оценка опционов при переходе с 5 на 4-ю неделю, время в днях
Function EstOpt54(p As Double, t As Double) As Double
EstOpt54 = EstOptPrice(p) — EstOptPrice(p) * ((1 — EstOptWeekDecay(p)) * (t / 7))
End Function

Бектестим направленную торговлю опционами и сравниваем (результаты) с торговлей фьючерсом (RI)
у исходного робота — средняя сделка — 88 пунктов, среднее время сделки — 0,36 дня
Результаты теста можно видеть на картинке.

Как видим — результат внезапно немножко неожидан.
Лучше всех, как оказалось, работает таки фьюч.
Почти так же как фьюч позволяют заработать дальние OTM опционы. Однако у них эффект плеча похоже полностью нивелируется временными распадом...
Опционы OTM поближе ведут себя значительно хуже — видать плечо у них не такое хорошее, а временной распад превалирует.
Внезапно неплохо показал себя опцион ATM, однако… однако возможно тут сказывается краевой эффект… а может и нет — хрен его знает.

Тем не менее вывод печальный — даже в теории для данного конкретного случая(который по идее весьма благоприятен для опционов, ибо присутствуют большие профитные сделки) опционы преимуществ не дают. А учитывая большой спред(относительно фьюча) и относительно большой минимально возможный спред на дальних OTM в частности… ну, в общем кто хотел, тот понял.

UPDATE: Забыл упомянуть несколько вещей:
1. Бектест с которым я работал, захватывает июль-август (~2 месяца) 2015-го года. С одной стороны это не очень хорошо, потому что далеко и цены на опционы тогда могли(из-за волатильности) качественно отличаться от момента теперешнего. А с другой стороны, в цена RIU5 в тот период стабильно держалась в диапазоне 85к-95к(то есть нет такого что мы сначала оценили опционы при текущей цены 90 а потом используем те же оценки при цене 60 или 120).  В общем я считаю всё нормально.

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

3. Как правильно заметил crazyFakir, текст несколько сумбурен, но что делать — он представляет собой описание проведенной экспериментальной работы по горячим следам. и не претендует на пулицеровскую премию).

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

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 2

Filename: main/v_footer.php

Line Number: 25

Backtrace:

File: /home/infoption.ru/www/infoption.ru/application/views/main/v_footer.php
Line: 25
Function: _error_handler

File: /home/infoption.ru/www/infoption.ru/application/controllers/Base.php
Line: 38
Function: view

File: /home/infoption.ru/www/infoption.ru/application/controllers/Blog.php
Line: 229
Function: render_single

File: /home/infoption.ru/www/infoption.ru/index.php
Line: 300
Function: require_once