При желании можно тестировать любую стратегию. Дельта, Гамма-хеджирование, роллирование… и т.д.
avatar
Евгений (jk555)
скиньте ссылку на файлы, спасибо за статью
avatar
valera
www.fayloobmennik.net/2782953
www.fayloobmennik.net/2782957
не забудьте проверить антивирусом, я этим обменником файлов первый раз пользуюсь.
avatar
Евгений (jk555)
Здорово получилось!
Но есть небольшие вопросы по коду
1. почему для нормального распределения использовалась приблизительная функция, а не готовая функция excel
2. код не совсем оптимален (сложное ветвление в зависимости от кола-пута, можно обойтись флажком (-1), определение премии — аналогично, и еще есть моменты)
Это сознательно, целью не задавались — оптимизировать?
потому как исправив эти не оптимальности — скорость расчетов возрастет, да и лаконичнее код будет
avatar
AlexeyT
AlexeyT, код написал за «пару» часов… Какая тут оптимальность?
avatar
Евгений (jk555)
AlexeyT, я норм.расп. вставлял из другой проги. И по поводу кода сразу скажу, что я самоучка, первую программу писал в первом классе на бейсике, поэтому у профи программистов могут быть претензии. Я в приципе не против, если кто-то перепишет как «надо» и выложит здесь.
avatar
Евгений (jk555)
вот и все;), и не надо приблизительных аппроксимизирующих расчетов в код.
Да я тоже сам самоучка, и тоже начинал с бейсика, не в первом классе, постарше конечно, и т.к. я очень похожее с опционами в Excel-VBA делаю, поэтому вижу пути оптимизации;)
avatar
AlexeyT
AlexeyT, спасибо. я когда робота в экселе писал, то использовал Application.NormSDist, потом переписывал его на кюпайл, а потом на луа… ну короче скопировал, не оптимизировал, признаю!

мне важнее были итоговые цифры, вот еслиб их кто проверил…
avatar
Евгений (jk555)
очень интересная тема, спасибо.
вот пройдёт экспир, погоняю — отпишу впечатления.
avatar
Гусев Михаил(debtUM)
Гусев Михаил(debtUM), сравнить бы получаемые теоретические цены с реальными сделками…
avatar
Евгений (jk555)
спасибо, интересно, нужно разобраться!
avatar
ZooR
А кто-то делал что-то подобное уже?
avatar
Евгений (jk555)
если вставить в кнопку старт еще это:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
считает все за полсекунды
ну и в конце кода:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
avatar
Евгений (jk555)
www.fayloobmennik.net/2783236
оптимизировал как мог
avatar
Евгений (jk555)
jk555, нод32 заблокировал страницу, перезалейте на другой ресурс плиз
avatar
ZooR
ZooR, там реклама открывается в новом окне, наверно поэтому, можно и разрешить однократно, иначе там не качает. другой ресурс — какой?
avatar
Евгений (jk555)
jk555, скинте на мыло плиз
zoor2012@mail.ru avatar
ZooR
Спасибо, классная вещь! давно пытаюсь что-то подобное сделать в Екселе, но так как с программированием не очень дружу, получается туго. надеюсь с твоим решением будет все проще.
avatar
kamrad
kamrad, программирование в экселе проще простого, да и справочного материала и примеров и интернете навалом, куча готовых примеров, бери и переделывай под себя.
avatar
Евгений (jk555)
www.fayloobmennik.net/2783236 не скачивается
avatar
valera
valera, скачали 48 раз. и у меня скачивается. когда нажимаете скачать, открывается новое окно. после того как оно открылось (там реклама) переходите назад на окно где нажимали скачать, и жмете сохранить.
avatar
Евгений (jk555)
перезалил на свой Яндекс.Диск
Ссылка для скачивания
тестер yadi.sk/d/kD6BZdq041VUu
конвертор yadi.sk/d/nCoN64Th41VUe
avatar
Евгений (jk555)
качается норм, спасибо! будем разбираться
avatar
Сергей
Ну если уж делать так делать — необходимо втиснуть формулу расчёта ГО портфеля. Казалось бы прекрасная стратегия может дать дуба если в реале не хватило ГО.
avatar
Simix
Simix, формулу дадите для расчета или ссылку на нее
avatar
Евгений (jk555)
Я-то надеялся вы этот вопрос прорабатывали. Хотел на готовенькое. ))
Поделюсь чем знаю: когда я полез на РТС смотреть как они считают ГО, то на первый раз сломал мозг.
www.rts.ru/s846
Через некоторое время вернулся и ещё раз перечитал ибо без ГО никуда. Понял что есть клиентский модуль, но я не готов за него платить. И так раз 5 я перечитывал этот документ, пока не уловил главную идею: ГО это необходимая сумма, которая должна быть у клиента при максимальном движении БА за день. Эта цифра находится в таблицах РТС на сайте и составляет порядка макс_ход=9800 пт. За день есть 2 сессии, поэтому берётся 2*макс_ход. Естественно БА ходит и вверх и вниз. Так что у нас 2 сценария. Далее берём 3 сценария волатильности +15% -15% и 0. Теперь берём не менее 10 точек по профилю портфеля и делаем просчёт в этих точках в 2х3 сценариях (2 по БА и 3 по волатильности). находим точку наибольшего убытка и пол-дела сделано. Затем добавляем сумму премий по купленным опционам, добавляем константный риск на дальние проданные опционы и вот у нас подобие ГО. Не забывайте из пунктов перевести в рубли. Для оценки портфеля по крайней мере я это подобие успешно использую. Примечательно что такой подход методологически соответствует тому что делает РТС, но ключевым является риск проданных дальних опционов. От его учёта зависит точность совпадения вашего ГО с тем что насчитает биржа. Я себе этот риск увеличил, чтобы не получилось как в 2011г.
Единственно это всё у меня на С++, внутри моей проги и как отдельный модуль использовано быть не может.
На что я облизываюсь: это сайт option.ru. Они говорят что считают по алгоритмам очень близким к РТС, и это действительно так и выглядит — очень похожие значения выдаёт. Но попросить этот алгоритм я до сих пор стесняюсь. Может быть потому что пошлют… учить матчасть, а она уже мне поднадоела.
avatar
Simix
Simix, я читал этот документ :). Все что могу это посчитать лимиты от БГО и «ГО»… Как считать когда биржа границы раздвинула? На истории это тяжело моделировать. Упомянутый вами сайт считает ГО на текущиц момент. А может он посчитать ГО на любой день 2011 года?
avatar
Евгений (jk555)
Евгений (jk555), Да, если идёт увеличение ГО на праздники то это конечно фиг посчитаешь, а это сразу в полтора раза. Поэтому при тестинге в стратегию надо закладывать где-то двойное ГО. Иначе я не знаю как это обойти не разбирать же позу на праздники, а затем опять собирать :))
avatar
Simix
Simix, «макс_ход=9800 пт. За день есть 2 сессии, поэтому берётся 2*макс_ход. Естественно БА ходит и вверх и вниз. Так что у нас 2 сценария. Далее берём 3 сценария волатильности +15% -15% и 0. Теперь берём не менее 10 точек по профилю портфеля и делаем просчёт в этих точках в 2х3 сценариях (2 по БА и 3 по волатильности). находим точку наибольшего убытка и пол-дела сделано. Затем добавляем сумму премий по купленным опционам, добавляем константный риск на дальние проданные опционы и вот у нас подобие ГО. Не забывайте из пунктов перевести в рубли. „
Надо обдумать…
avatar
Евгений (jk555)
Хочу уточнить, но вы наверно правильно поняли — ГО — это максимальный убыток по позиции в диапазоне дневного хождения фьюча. Естественно есть позиции, у которых максимальная просадка не по краям, а в середине диапазона.
Естественно, если у нас есть все данные, график фьюча, улыбка, волатильности, то ГО мы можем посчитать на любой этот момент. Берём все компоненты из того момента времени и считаем.
— У меня уточнение по сигме, которую считает формула улыбки РТС. Вы это значение/100, я видел, прямо подставляете в Блэка Шоулза? Возьмите текущую доску опционов и попробуйте получить таким образом транслируемые теоретические цены. Вы удивитесь, но этого не получится. У меня не получилось, проверьте пожалуйста, могу ошибаться но вопрос принципиальный.
avatar
Simix
опс, извиняюсь, у меня формула для дней, а на РТС время — доли года. Всё нормально считается.
avatar
Simix