Александр Муравьев
Александр Муравьев личный блог
11 декабря 2015, 20:15

Тестер опционов

Друзья,
разрабатываем тестер для опционов (цели некоммерческие). Который на основе базового актива по формуле БШ расчитывает цены опционов.
Позволяет входить и выходит из позиции по заданным условиям.
Тестер опционов
Однако, в формуле есть неточность. В качестве волатильности берется VX базового актива, а не волатильность конкретного страйка опциона.
Вопрос 1, можно ли в тестах на покупку-продажу волатильности пользоваться волатильностью базового актива, либо нужно учитывать волатильности конкретного страйка
Вопрос 2, если нужно учитывать волатильность каждого страйка, то как вычислять периоды низкой и высокой волатильности (с волатильностью БА все просто — накладываем МА и считаем от нее отклонение, все достаточно стабильно, в в волатильности конкретного страйка заначения скачут очень сильно)
Вопрос 3, какие параметры входа и выхода в позицию закладывать в тестер.

Кто имеет в этом опыт и готов участвовать в разработке данного тестера, готовы включить в команду разработчиков и правообладателей данного тестера.
28 Комментариев
  • Евгений Черных
    11 декабря 2015, 20:48
    На дельфях? А с чем связан выбор такого раритета?
    • SECRET
      11 декабря 2015, 20:51
      kbrobot.ru, Все крутые алготрейдеры пишут исключительно на Delphi!
      • Евгений Черных
        11 декабря 2015, 20:53
        SECRET, 
      • nik
        11 декабря 2015, 20:56
        SECRET, на делфи пишут только лохи, нормального шустрого робота на нем не сделать.
        • SECRET
          11 декабря 2015, 21:02
          nik, а что по вашему значит шустрый робот? Каковы критерии?
          • nik
            11 декабря 2015, 21:04
            SECRET, время реакции на рыночное событие мение 1мс.

            • SECRET
              11 декабря 2015, 21:09
              nik, у моих роботов на Delphi меньше 50 микросекунд время реакции. Значит они шустрые ? 
              • nik
                11 декабря 2015, 21:11
                SECRET, нет, значит ты неправильно меряешь))
                • SECRET
                  11 декабря 2015, 21:13
                  nik, смелое заявление, особенно без знания моей методологии измерения. Ок, опустим ее. Как нужно мерить?
                  • nik
                    11 декабря 2015, 21:20
                    SECRET, заявление сто процентов верное в силу особенностей нашей мосбаржи(скорости сети и летенси её серверов).
                    мерить нужно раздницу между биржевым таймстемпом ордера, приведшего к генерации твоего ордера, и биржевым таймстемпом твоего ордера.
                    • Absourd
                      11 декабря 2015, 21:30
                      nik, По вашей логике, написание программы на других языках ускорит как-то задержки со стороны биржи. Глупо? Глупо.
                    • SECRET
                      11 декабря 2015, 21:37
                      nik, задержка принятия решения, которая зависит от пользовательского софта на 1-2 порядка меньше чем ту которую вы тут описали по крайней мере на Спектре.
                      • nik
                        11 декабря 2015, 21:48
                        SECRET, да, но померять её крайне сложно(для этого придется снифить трафик, выискивать и идентифицировать соответствующие пакеты и смотреть время их получения/отправки). Я сильно сомневаюсь, что ты эти 50мкс померял правильно(выискивая нужные пакеты в дампе).
                        В то время как полный тик ту трейд на основе биржевого тайстемпа посчитать весьма просто.
                        При правельном написании на Си в условиях нашей мосбаржи он у меня не превышает миллисекунды(у 99.99% ордеров таймстемп либо совпадает с таймстемпом котировки, либо отличается на 1мс). Сильно сомневаюсь, что ты сможешь на делфе получить такой же результат.


                        • SECRET
                          11 декабря 2015, 22:19
                          nik, на каком рынке совпадает или отличается на 1мс?
                          • nik
                            11 декабря 2015, 22:25
                            SECRET, и на фортсе, и на споте.
                    • nik
                      13 декабря 2015, 13:10
                      Alex, Это где он доказал скорость? 0_0 Сразу видно дилетанта, не разбирающегося в HFT ))) По данным ЛЧИ судить о скорости вообще не возможно, ибо там публикуются сильно загрубленые данные о сделках.
                      Это не говоря о том, что ЛЧИ вообще развод для лохов и его данные ниочем не говорят.
      • Евгений
        11 декабря 2015, 20:57
        SECRET, все крутые опционщики пишут и пишут, пишут и пишут… А Секреты пока они пишут последние деньги выносят с биржи.
  • nik
    11 декабря 2015, 20:58
    счас тебе прям так и попалили  все свои граали)) плавильно расчетать цены опционов это целая наука. и те кто разработывает наиболее близкие к реальности модели, гребут на этом хорошие деньги ;)
  • imperativ
    11 декабря 2015, 21:17
    Насколько я понял в своей формуле вы используете историческую волатильность, что неверно. Для вычисления теоритических цен опционов нужно использовать подразумеваемую волатильность(iv). Естественно вычислять волатильность надо для каждого страйка по формуле улыбки волатильности.
  • imperativ
    11 декабря 2015, 21:29
    вот реализация на С++расчета IV для каждого страйка опциона.

    void Option::CalculateIV(const Volatility& volatility) {
    double a = volatility.a;
    double b = volatility.b;
    double c = volatility.c;
    double d = volatility.d;
    double e = volatility.e;
    double s = volatility.s;

    double base_price = m_base_price.GetPrice();
    double x = log(m_strike / base_price) / sqrt(m_time_to_expiration);

    double y = x — s;

    m_iv = a + b * (1 — exp(-c * y * y)) + (d * atan(e * y)) / e;
    m_iv = m_iv / 100.0;
    }

    Коэффициенты волатильности брал здесь: http://ftp.moex.com/pub/FORTS/volat_coeff/

  • Любопытный Пай
    11 декабря 2015, 22:19
    Странно это. Пишут тестер поционов, а такие вопросы задают…
  • Дмитрий Новиков
    11 декабря 2015, 23:49
    Хорошая инициатива. Можно брать исторические данные по IV. Расчитывать теоретическую улыбку по формуле биржи. Реально тестировать на дневках. Погрешность процентов 5-10. Как включить в тестер такой параметр как плавающее ГО? Тестеры которые я знаю. Option vue7. Но там исторические данные за каждые пол часа, которые качаются с сервака. Думаю, если бы было решение проще, Австралийские коллеги это бы сделали. 
    Какя необходимость или польза? Затрудняюсь ответить. В опционах есть куча мест где еще не посчитано. Програм для создания позиции две на всю рашку. ПО нет нормального. Каждый для себя делает. Сделайте погу типа option-lab для квика. 
  • Дмитрий Новиков
    12 декабря 2015, 14:02
    IV по активам наименьшего страйка http://www.option.ru/analysis/option#export например здесь или на биржевом сайте поискать. От нее строится парабола «улыбка волатильности» есть формула на бирже. Но она не совсем точная, вернее не всегда отражает действительность. Поэтому каждый Маркет мейкер пытается построить свою к которой должен рынок стремится. Соответственно на улыбке определяются цены опционов соседних страйков. И если вы видите, что можно купить ниже вышей улыбки, то моментально покупаете. 
    RTSVX вола только на РИ. На отдельные активы надо считать свою историческую волатильность. Это не МА это типа АТR. Есть много методик. Далее оценивается на сколько IV выше или ниже и принимается торговое решение. 
    Так как вы занимались арбитражом, вам легко будет разобраться с опционами. Это аналогично. То есть между всеми опционами есть железобетонная связь и она выражена через формулу. Но надо немного почитать. Например Мак Миллона «об опционах». Посмотрите мой блог, я там ссылки делал и описывал некоторые принципы.

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

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