Option Workshop, версия 18.2.1657


Всем привет.

Долгожданное обновление Option Workshop. Хотели сделать ещё в декабре, но очень много времени заняло обновление сертификата, которым подписывается инсталлятор и все исполняемые файлы. Формально можно было релизить без него, но уж больно страшно в Windows 10 выглядит уведомление, которое показывает операционка пользователю при попытке запустить неподписанный инсталлятор.

Пока не поспеваем с обновлением документации, поэтому кратко набросаем описание новых функций в этой статье.

Telegram-бот

Сначала мы хотели сделать собственное приложение для трансляции на него информации об инструментах и стратегиях. И даже начали делать. Но потом пришли к выводу, что для той функциональности, которую мы хотим сделать, нам за глаза хватит возможностей Telegram-ботов.

Что хотелось получить:

  1. Возможность получать на телефон котировки инструментов из настраиваемого списка;
  2. Возможность получать на телефон параметры стратегий из настраиваемого списка;
  3. Возможность получать уведомление на телефон при выходе того или иного параметра из диапазона.

Далее, что мы для этого сделали.

Связывание Option Workshop с Telegram-аккаунтом

Прежде всего, нужно установить связь между запущенным на вашем компьютере Option Workshop и вашим аккаунтом в Телеграме. Для этого вам нужно открыть форму управления ботом, нажав кнопку в левой панели кнопок. В открвшейся форме нажмите кнопку Connect To Telegram:

Кнопка Connect to Telegram

В открывшейся форме нажмите кнопку Add bot to your Telegram. Откроется браузер со страницей добавления нашего бота в телеграм.

После того, как вы добавите бота в контакты, нажмите кнопку Request access code. Программа на той же форме покажет Access code:

Access code для связки Option Workshop и Telegram

В Telegram, на телефоне или на компьютере, нужно открыть чат с ботом и нажать кнопку Start. Бот попросит ввести Access code. После ввода кода бот будет подключен и сможет принимать данные из Option Workshop.

Добавление инструментов и стратегий

Далее вы можете добавлять в список для трансляции боту любые инструменты и стратегии.

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

Настройка трансляции параметров фьючерса в Telegram-бот

Аналогично для стратегии:

Настройка трансляции параметров стратегии в Telegram-бот

А вот так это выглядит в Telegram-е:

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

В этой части сделаны две доработки:

  1. Добавили полиномиальную модель волатильности, которая аппроксимирует текущие котировки;
  2. Сделали возможность сдвигать кривую вслед за движением цены базового актива.

Полиномиальная модель волатильности работает так:

  1. Пользователь выбирает количество страйков, которые будут являться базисом модели. Это количество всегда нечётное. В базис включается страйк на деньгах и равное чётное количество страйков справа и слева от денег;
  2. Пользователь может указать сдвиг базиса относительно страйка на деньгах, то есть сделать так, чтобы центром базиса был не ATM страйк, а какой-то другой;
  3. Справа от денег в качестве элементов базиса берутся колы, слева – путы;
  4. Пользователь может единоразово аппроксимировать полином на выбранном базисе или указать программе делать аппроксимацию каждый раз, когда меняется базис (меняется состав базиса или меняются котировки элемента базиса);
  5. Пользователь может указать программе для аппроксимации краёв кривой использовать не тот же полином, которым описывается центр, а функцию корня. Это позволяет иметь не степенной характер роста края, а сходящийся к некоторой асимптоте.

Настройка полиномиальной модели

Эргономика маркет-мейкера

В маркет-мейкере улучшили эргономику. Теперь можно применить параметр сразу ко всем строкам. Например, если вы вводите значение спреда, то для того, чтобы применить это значение ко всем строкам, перед нажатием Enter зажмите Ctrl. Это работает практически для всех колонок.

Также теперь нажатие сочетания Alt+Enter эквикалентно нажатию кнопки Apply changes.

Исправление ошибок

Попутно решили много проблем.

Маркет-мейкер в некоторых ситуациях мог выставлять заявки таким образом, что их исполнение приводило к выходу позиции за лимиты, заданные пользователем. Эта проблема могла произойти при работе с любым подключением. Исправили.

Таблица позиций была чрезмерно завязана на внутренние объекты, в результате чего потребляла слишком много осбытий, которые заставляли её обновляться. При небольшом количестве позиций это не ощущалось, но пользователи с большим количеством позиций (несколько десятков) очень страдали. Программа тормозила, особенно когда на рынке начиналось сильное движение с большим количеством сделок. Исправили.

Адаптер к CQG Continuum при разрыве соединения и его дальнейшем восстановлении мог прислать сообщение о позиции, которой в действительности нет на торговом счёте. Это было связано с тем, что CQG при для каждого подключения создаёт уникальный набор идентификаторов инструментов. То есть идентификаторы меняются при переподключении. А мы их кэшировали. Исправили.

Исправили некоторые неточности работы дельта-хеджера в режимах дискретный по времени и дискретный по цене базового актива.

Исправили несколько мест, в которых медленно, но утекала память.

В адаптере CGate неправильно транслировались дневные лимиты изменения цен фьючерсов. Это влияло на работу FOS. Исправили.

При загрузке кривой волатильности из csv-файла, иногда программа не могла его прочитать, когда файл был одновременно открыт в Excel. Исправили.

При изменении заявки (modify) иногда могло подставляться неправильное количество контрактов в новую заявку. Исправили.

Интерфейс программы мог зависнуть при частом нажатии на кнопку Set price. Исправили.

Попытались исправить, но не уверены, что получилось до конца и для всех случаев:

  • Падение программы при изменении разрешения экрана. Например, при заходе на удалённый рабочий стол с разных устройств (компьютер, ноутбук, телефон);
  • Дублирование стратегий при перезапуске программы.

Постоянная ссылка