Для изменения размера нажмите или перетащите
Котирование по волатильности

Для котирования опционов реализована специальная стратегия VolatilityQuotingStrategy, которая предусматривает котирование объема по заданным границам волатильности.

Котирование по волатильности

  1. В дистрибутиве S# идет пример SampleOptionQuoting, который котирует выбранный страйк по заданной границе волатильности.

  2. Создание подключения к SmartCOM и запуск экспорта:

    C#
    // создаем шлюз
    _trader = new SmartTrader(this.Path.Text);
    
    this.Portfolio.Trader = _trader;
    
    // добавляем в выпадающий список только опционы
    _trader.NewSecurities += securities =>
        this.GuiAsync(() => _options.AddRange(securities.Where(s => s.Type == SecurityTypes.Option)));
    
    // подписываемся на событие новых сделок чтобы обновить текущую цену фьючерса
    _trader.NewTrades += trades => this.GuiAsync(() =>
    {
        var option = this.SelectedOption;
        if (option != null)
        {
            var future = option.GetUnderlyingAsset();
            if (future.LastTrade != null)
                this.BaseActivePrice.Text = future.LastTrade.Price.ToString();
        }
    });
    
    _trader.Connected += () => _trader.StartExport();
    
    _trader.Connect();
  3. Настройка стратегии VolatilityQuotingStrategy (заполнение границ волатильности, а также создание заявки, через которую указываются требуемый объем и направление котирования):

    // создаем котирование на покупку 20-ти контрактов
    var quoting = new VolatilityQuotingStrategy(
            new Range<decimal>(this.VolatilityMin.Text.To<decimal>(), this.VolatilityMax.Text.To<decimal>()),
            OrderDirections.Buy, 20)
    {
        // указываем, что котирование работает с объемом в 1 контракт
        Volume = 1,
        Security = option,
        Portfolio = this.Portfolio.SelectedPortfolio,
        Trader = _trader,
    };
  4. Запуск котирования:

    C#
    quoting.Start();
  5. Для визуального представления волатильности пример показывает, как можно перевести стандартный стакан с котировками в стакан волатильности за счет использования метода DerivativesHelperImpliedVolatility(MarketDepth, ISecurityProvider, IMarketDataProvider, DateTimeOffset, Decimal, Decimal):

    C#
    var ivDepth = _depth.ImpliedVolatility();
    
    this.GuiAsync(() =>
    {
        this.Quotes.Clear();
        this.Quotes.AddRange(ivDepth.Select(q => new IVQuote(q)));
    });
    Стакан волатильности.
  6. Окончание котирования и остановка стратегии:

    quoting.Stop();