У вас не стоит Flash Player
Настройки
#80995 - Fri Jan 13 2017 06:15 PM Как интегрировать свою улыбку в ручную опц.панель?
salsed Offline
stranger

Registered: Thu Jan 30 2014
Записи: 8
Здравствуйте коллеги!

Подскажите пожалуйста как мне проще всего интегрировать свою улыбку волатильности (она у меня написана в R, там и все расчеты) в опционную панель ТСЛаб? Чтобы она отображалась наравне с остальными тремя улыбками.

Если через API подскажите пожалуйста на какие классы обратить внимание и как это отображать на графике?

Если через кубики подскажите пожалуйста какой кубик и ка в него интегрировать математику или там числовые значения какие-то?

Заранее спасибо.

Наверх
#81539 - Fri Mar 24 2017 06:29 PM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: salsed]
Option Wizard Offline
writer

Registered: Fri Apr 24 2015
Записи: 596
Давайте отвлечемся от проблемы "интегрировать С# и R".
Будем считать, Вы или умеете это делать или перенесете все расчеты в C#.

Далее нужно будет хорошо покодировать на C# (воспользоваться ТСЛаб АПИ).

Вам нужно реализовать кубик, который на выходе возвращает объект класса InteractiveSeries.
Для каждого страйка серии нужно сказать, "какая на этом страйке волатильность".

Волатильность в коде идет не в процентах, а "как есть".
Например, "волатильность фРТС 0.27".
ЭТО ВАЖНО.


Самый простой заголовок класса:
Code:
    /// <summary>
    /// \~english Flat smile as in Black-Scholes option model. Volatility is constant.
    /// \~russian Тривиальная улыбка по версии Блека-Шолза. Уровень волатильности постоянен и задаётся параметром SigmaPct.
    /// </summary>
    [HandlerCategory(HandlerCategories.OptionsTickByTick)]
    [HelperName("Black-Scholes Const", Language = Constants.En)]
    [HelperName("Константа по Блеку-Шолзу", Language = Constants.Ru)]
    [InputsCount(2)]
    [Input(0, TemplateTypes.DOUBLE, Name = Constants.FutPx)]
    [Input(1, TemplateTypes.DOUBLE, Name = Constants.Time)]
    [OutputType(TemplateTypes.INTERACTIVESPLINE)]
    [Description("Тривиальная улыбка по версии Блека-Шолза. Уровень волатильности постоянен и задаётся параметром 'Волатильность, %'.")]
    [HelperDescription("A flat smile as in the Black-Scholes option model. Volatility is a constant and is defined by the 'Sigma, %' parameter.", Constants.En)]
    public class BlackScholesConstSmile2 : BaseCanvasDrawing, IValuesHandlerWithNumber
    {

здесь ваша реализация

    }


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



Теперь метод Execute:
Code:
public InteractiveSeries Execute(double price, double time, int barNum)
        {
            int barsCount = ContextBarsCount;
            if (barNum < barsCount - 1)
                return new InteractiveSeries();

            double futPx = price;
            double dT = time;

            if (Double.IsNaN(dT) || (dT < Double.Epsilon) ||
                Double.IsNaN(futPx) || (futPx < Double.Epsilon))
                return new InteractiveSeries();

<дальнейшая реализация: нужно для каждого страйка придумать уровень волатильности>

        }


Здесь пара моментов важных:
1. В отличие от других блоков улыбка существует только для самого последнего (текущего!) бара.
Поэтому первым делом мы проверяем индекс и если он в ппрошлом -- завершаемся.

2. Обязательно делаем валидацию входных параметров.
Если на вход передана отрицательная цена или отрицательное время -- лучше сразу тихо завершиться, чем возвращать из блока какие-то несостоятельные фантазии.


Попробуйте сами заполнить InteractiveSeries хотя бы десятком точек -- и их уже можно будет увидеть на графике.
Если мы с Вами это сделаем, то можно будет с этой точки продолжить.
_________________________
Скидка на опционной криптобирже Deribit:
https://www.deribit.com/reg-2200.8947?q=home
Да пребудет с вами Вола!

Наверх
#84706 - Mon Mar 04 2019 01:21 AM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Option Wizard]
Maverick Offline
stranger

Registered: Fri Jan 11 2019
Записи: 15
Здравствуйте, интересует реализация модели улыбки SABR или хотя бы Хестона или Бейтса. Возможно ли это ли это в виде кубика?

Наверх
#84710 - Mon Mar 04 2019 12:22 PM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Maverick]
Option Wizard Offline
writer

Registered: Fri Apr 24 2015
Записи: 596
Originally Posted By: Maverick
Здравствуйте, интересует реализация модели улыбки SABR или хотя бы Хестона или Бейтса. Возможно ли это ли это в виде кубика?


Если есть внятное описание модели, то возможно.
Желаете обсудить подробнее?
_________________________
Скидка на опционной криптобирже Deribit:
https://www.deribit.com/reg-2200.8947?q=home
Да пребудет с вами Вола!

Наверх
#84720 - Mon Mar 04 2019 05:39 PM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Option Wizard]
Maverick Offline
stranger

Registered: Fri Jan 11 2019
Записи: 15
Модели есть в открытом доступе на C#.
Хестона http://www.quantalgos.ru/?p=500
Бейтса http://www.quantalgos.ru/?p=544
SABR http://mikejuniperhill.blogspot.com/2016/10/alglib-sabr-calibration-in-c.html?m=1 с методом калибровки в рынок.

Наверх
#84721 - Mon Mar 04 2019 05:49 PM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Maverick]
Maverick Offline
stranger

Registered: Fri Jan 11 2019
Записи: 15
Ну и наверное лучшее описание sabr с кодом на на C# https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.axelvogt.de/axalom/SABR.pdf&ved=2ahUKEwjl3OTn3OjgAhXPR5oKHcvNBxoQFjAGegQIARAB&usg=AOvVaw16k8d4XE0CtFn7vshigc2A

Наверх
#84722 - Mon Mar 04 2019 06:27 PM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Maverick]
Option Wizard Offline
writer

Registered: Fri Apr 24 2015
Записи: 596
Originally Posted By: Maverick
Модели есть в открытом доступе на C#.


Хорошо.
Значит, Вы все знаете?
Самый простой путь, кмк, такой: пишете кубик,
который на вход принимает обычные рыночные переменные (время, цена БА, что еще может быть нужно)
и имеет параметры, которые собственно управляют формой улыбки.

На выходе этот кубик дает ЦЕНЫ опционов.
После этого стандартным кубиком мы можем превратить ЦЕНЫ опционов в их волатильность.

Пример кода с кубиком улыбки приведен чуть Выше в этой ветке.
Вам нужно только его модифицировать под формулы Хестона.


ПС Можем продолжить разговор в личку, если так будет удобней.
_________________________
Скидка на опционной криптобирже Deribit:
https://www.deribit.com/reg-2200.8947?q=home
Да пребудет с вами Вола!

Наверх
#84729 - Tue Mar 05 2019 11:32 AM Re: Как интегрировать свою улыбку в ручную опц.панель? [Re: Maverick]
Option Wizard Offline
writer

Registered: Fri Apr 24 2015
Записи: 596
Originally Posted By: Maverick
Модели есть в открытом доступе на C#.


Мы считаем, что в ТСЛаб реализована самая лучшая модель улыбки из известных.
Она вписывается более-менее приемлемо во все инструменты, которые мы смотрели.
От опционов на RI, Si, ED, SR, GZ, BR,
до опционов на ES, YM, акции американские, энергоносители,
и даже опционы на биткойн она тоже очень хорошо описывает.

Одно исключение мне известно -- опционы на VIX.
Но там, видимо, своя специфика, поскольку базовый процесс является скорее Орнштейн-Уленбеком,
чем вариацией на тему лог-нормального (логарифм от что-нибудь простое).

Поэтому если Вам очень нужны какие-то другие модели улыбок вариантов 2:
1. Сами пишете кубик, мы Вам помогаем с АПИ как можем.
2. Заказываете разработку кубика лично для себя.

=) В общем, по обоим вариантам обращайтесь.
Можете сразу в личку.
_________________________
Скидка на опционной криптобирже Deribit:
https://www.deribit.com/reg-2200.8947?q=home
Да пребудет с вами Вола!

Наверх


Moderator:  Option Wizard, ViL, sar