Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Биржа Дерибит не транслирует теоретические цены опционов (и теоретическую волатильность), Из-за особенностей ценообразования бесполезна встроенная Доска Опционов в программу и стандартные примеры скриптов для торговли опционами. (Real trading, Sim trading, Static Analysis) Для этой конкретной биржи нужны специальные скрипты.
Поскольку торги идут 24 часа 7 дней в неделю, для этой биржи нужно использовать модель времени "Равномерное календарное". Поэтому, скрипт для расчета исторической волатильности содержит другие коэффициенты для вычислений, отличные от других бирж.
Торговые скрипты также представлены в двух видах: если Вы хотите видеть профиль позиции в биткойнах и если Вы хотите видеть профиль позиции в долларах.
На бирже Deribit очень "легкие" фьючерсы со стоимостью 10$ и с шагом 1 лот. И очень "тяжелые" опционы., с шагом 0.1
95 - HV Deribit (RW) - Сбор исторической волатильности
99 - HVIV Deribit - Просмотр исторической волатильности за длинный промежуток времени
99 - Static Analysis Deribit - Скрипт для моделирования позиций с полным контролем за всеми параметрами синтетического "рынка"
105 - Simm Deribit BTC - Торговля в режиме симуляции (без выведения сделок на Биржу). Результат представлен в биткойнах.
105 - Simm Deribit USD - Торговля в режиме симуляции (без выведения сделок на Биржу). Результат представлен в долларах.
1) Запустите 2 агента на база скрипта HV Deribit (RW). Один на индексе BTC/USD, второй на текущем фьючерсе (на момент написания статьи это BTC-28Jun19) Если у Вас накоплено достаточно данных, в этих агентах Вы увидите историческую волатильность по этим инструментам. 2) Далее запускаете агенты на базе остальных скриптов, которые Вам нужны. Допустим, Simm trading BTC -- достаточно близкая аналогия к Доске Опционов.
Посмотрите пример работы со скриптом Simm Deribit BTC
Quote settings
Эти скрипты - просто примеры. TSLab позволяет создавать профессиональные алгоритмы котирования всего рынка. Мы не продаем скрипты. Мы не создаем скрипты на заказ.
Выбираем серию. Смотрим как выглядит улыбка. Это биды и аски опционов выбранной серии. Масштаб доступен кнопками. Или CTRL + левая кнопка мышки, для выделения участка.
Your browser does not support the HTML5 video element
Включите, для возможности моделирования улыбок.
Модель имеет три параметра Наклон Схождение Волатильность
Если хотим взять 10 опционов, в каком-то страйке, то выбираем страйк и тип опциона и задаем количество. Если 10, то хотим купить, треугольник наверх. -10, хотим продать, треугольник вниз.
Your browser does not support the HTML5 video element
Необходимо задать уровень волатильности, по какому хотим купить или продать. Например, хотим купить по уровню 5% ниже улыбки или продать по уровню 30% выше улыбки. Вспомогательный маркер сдвигается в соответствии с заданной величиной.
Таким образом, в реальной торговле можно набирать позиции, выставив заявки заблаговременно. Торговля так же доступна и из самой улыбки мышкой, используя треугольники вспомогательного маркера. В окне Pos Profil можно увидеть свою позицию
Видео пример набора позиции и включение хеджера. Your browser does not support the HTML5 video element
В примере набирается позиция: Покупка кол и покупка пут на текущем страйке Продажа пут слева и продажа кол справа. В конце видео включается хеджирование.
Красная улыбка - называем Рыночной Белая - модельная улыбка по которой выполняется дельтахеджирование, если оно требуется. Для этой позиции не нужно было включать Дельта хеджирование. Включение было для демонстрации работы.
Снимите флаг блокировки торговли
Your browser does not support the HTML5 video element При нажатии на Старт, будет выставлена заявка котирования. В симуляции она будет исполнена сразу. В жизни, будет выставлена лимитная заявка, которая выставится в очередь заявок по этому опциону и будет стоять, пока не исполнится. Или пока не будет нажата кнопка отмены заявок. Drop long или drop short
Данный пример Агента легко переделать в боевой, достоточно открыть в агенте параметры и вручную снять флаг Виртуализации позиций.
Очевидный минус решения Collect IV (RW) в том, что под каждый базовый актив (БА) необходимо запускать отдельный агент.
В дополнение к этому у разных БА может быть различное количество опционных серий.
В итоге мы предлагаем для повседневной работы улучшенную версию.
Этот скрипт может обслуживать сразу 4 БА и все без исключения их опционы одновременно.
Мы предлагаем ставить либо 4 разных инструмента (например,RIU6, SiU6, GZU6, SRU6), либо включать в анализ очень далекие опционы (например, RIU6, RIZ6, SiU6, SiZ6).
В последнем случае Вы получите в своё распоряжение очень длинные серии с историей IV ATM.
Вы можете увеличить количество обрабатываемых данных, если производительность Вашей машины это позволяет. Для этого достаточно в Редакторе скопировать группу блоков, обслуживающих один БА.
Это один из самых простых скриптов, который позволяет начать освоение опционных блоков в составе TSLab.
Блок вытаскивает из опционного источника отдельные опционные серии и для каждой из них вычисляет волатильность-на-деньгах (в дальнейшем часто будет обозначаться как IV ATM).
Полученные значения записываются в глобальный кеш для использования в других блоках. Для целей визуального контроля полученные значения отображаются на графике в виде индикаторов.
Скрипт Collect IV (RW)
Специализированный скрипт Collect IV (RW) в режиме агента может быть назначен на различные опционные источники.
При этом будет выполняться сбор волатильности на деньгах в трех сериях опционов для данного Базового Актива (БА).
Индикатор сохраняет свои значения в глобальном кеше и впоследствии эти данные могут использованы независимо. В том числе в скриптах, которые не имеют опционного источника.
Для реализации алгоритма использованы блоки:
Опционный источник. Предоставляет доступ к БА и всем его опционам. При работе с ним через API на вход вашего блока будет подан интерфейс IOption. В нём содержится вся информация с котировками, позициями, волатильностью и т. п.
Базовый актив (OptionBase). Блок из категории Options. Извлекает из опционного источника БА и позволяет далее работать с ним обычным способом как с обычным блоком Source (Instrument). В данном скрипте блок используется для отображения баров БА на обычном линейном графике «цена-время» (панель Main).
Панель рисования обычных графиков ChartPane. Сюда выводятся значения волатильности от индикаторов IV_ATM в виде линейного графика. Линии имеют тип «Line without zeroes» («Линия без нулей») чтобы пропущенные точки не искажали визуальное восприятие информации.
Блок выбора серии OptionSeriesByNumber. Извлекает из опционного источника целиком серию (опционы с одинаковой датой истечения). При работе с ним через API на вход вашего блока будет подан интерфейс IOptionSeries. В нём содержится вся информация с котировками, позициями, волатильностью и т. п. Но все опционы имеют одинаковое время жизни. Настраиваемые параметры: - ExpirationMode – выбор различных алгоритмов отбора серии. - В скрипте стоит режим ExpiryByNumber. При этом блок возвращает серию в соответствии с её порядковым номером (нумерация с 1). В данном режиме для этого используется второй настраиваемый параметр Number. - Также возможны режимы First Expiry (ближайшая ещё живая серия), Last Expiry (последняя ещё живая серия), Fixed Expiry (жестко задана дата экспирации с помощью строкового параметра Expiry == Экспирация).
Блок получения величины «Волатильность на деньгах» (IV ATM). На вход подаётся опционная серия. Алгоритм работы: ФОРТС транслирует свою теоретическую улыбку. Блок строит по ней интерполирующий сплайн и вычисляет значение волатильности при текущей цене БА. Эта величина и считается значением данного индикатора.
Параметры настройки блока (снабжены описанием, которое становится видно в нижней части панели после клика на закладку Detailed).
Rescale time – заменить модель времени.
Estimation algo – алгоритм расчета времени.
Expiry time – точное время суток когда истекает опционная серия.
Repeat last IV – если на последнем баре вычислить волатильность не удалось, можно использовать предыдущее известное значение.
Use Global Cache – использовать ли глобальный кеш или достаточно локального (вычисленные значения будут доступны только внутри его собственного агента).
Allow global write – разрешает индикатору писать свои значения в глобальный кеш для сохранения между сессиями и повторного использования другими агентами. Для одной серии должен быть только один блок с возможностью записи.
Global Save Period – частота записи в кеш.
MinStrike/MaxStrike – диапазон рабочих страйков. Если на краях улыбка становится неадекватной, есть возможность вырезать её середину отдельно (необходимо предоставить хотя бы 5-7 страйков ).
Strike Step – шаг страйков. Не используется.
ShowNodes – показывать маркеры узлов на улыбке. Не используется.
Очевидный минус агента HV (RW) в том, что под каждый базовый актив (БА) необходимо запускать отдельный агент. Для повседневной работы мы предлагаем улучшенную версию.
Этот скрипт может обслуживать сразу 4 БА. Разумно, чтобы эти БА соответствовали источникам для скрипта Collect IV (ALL).
При разработке структуры блоков были подготовлены скрипты для отладки различных аспектов их взаимодействия. Эти скрипты предлагаются вниманию участников тестирования в качестве готового примера работы с опционами и исходного материала для внесения своих изменений. Основная идея состоит в том, что пользователь может разрабатывать какие-то свои блоки или как-то модифицировать параметры предложенных блоков в соответствии со своим взглядом на опционную проблематику.
Например, очень много разногласий вызывают вопросы вычисления времени до экспирации, исторической волатильности и построения улыбки. Не претендуя на истину в последней инстанции (хотя и опираясь на опыт Алексея Каленковича), мы предлагаем референсные реализации блоков для расчета этих величин. В последующем, каждый желающий может использовать или наш готовый алгоритм, или реализовать своё видение. При этом ему будет достаточно заменить в сложном разветвленном скрипте один блок на свой алгоритм расчета – и сразу получить реализацию своей идеи с достаточно богатыми средствами визуализации и управления.
В данном документе будет приведен перечень скриптов в разбивке на логические группы в порядке убывания их важности для повседневной работы.
Важно: все эти скрипты разработаны для запуска в режиме агента. В принципе, они могут как-то функционировать в Редакторе Скриптов, но только в качестве какого-то тестового запуска для проверки формальной правильности собранной блок-схемы.
Историческая волатильность требует для расчета больших объёмов данных, которые оказываются совершенно излишними в торговле. Чтобы разрешить это противоречие реализован механизм повторного использования данных одного индикатора в других скриптах через механизм глобального кеша.
В TSLab реализованы кеши двух уровней. Локальный кеш – набор данных, доступных только внутри агента и сохраняемый между пересчетами скрипта. При перезапуске агента локальные кеши сбрасываются. Глобальный кеш – набор данных, доступный всем агентам одновременно и сохраняемый на жестком диске в папке %APPDATA%\..\Local\TSLab\TSLab 2.0\$Global$Objects$
Эти данные сохраняются в том числе между перезапусками приложения. В итоге возникает возможность выполнять сложный ресурсоёмкий расчет один раз и затем использовать его результаты в неограниченном количестве агентов.
Это один из самых простых скриптов, который позволяет начать освоение опционных блоков в составе ТСЛаб . Блок вытаскивает из опционного источника отдельные опционные серии и для каждой из них вычисляет волатильность-на-деньгах (в дальнейшем часто будет обозначаться как IV ATM ). Полученные значения записываются в глобальный кеш для использования в других блоках. Для целей визуального контроля полученные значения отображаются на графике в виде индикаторов.
Очевидный минус предыдущего решения в том, что под каждый базовый актив (БА) необходимо запускать отдельный агент. В дополнение к этому у разных БА может быть различное количество опционных серий. В итоге мы предлагаем для повседневной работы улучшенную версию. Этот скрипт может обслуживать сразу 4 БА и все без исключения их опционы одновременно. Мы предлагаем ставить либо 4 разных инструмента (например, RIU6, SiU6, GZU6, SRU6), либо включать в анализ очень далекие опционы (например, RIU6, RIZ6, SiU6, SiZ6). В последнем случае Вы получите в своё распоряжение очень длинные серии с историей IV ATM.
Вы можете увеличить количество обрабатываемых данных, если производительность Вашей машины это позволяет. Для этого достаточно в Редакторе скопировать группу блоков, обслуживающих один БА.
Это один из самых простых алгоритмов, который позволяет начать освоение опционных блоков в составе ТСЛаб . Скрипт предназначен для расчета исторической волатильности с сохранением вычисленных значений в глобальный кеш. Расчет идет по классической формуле расчета исторической волатильности (как дисперсии логарифмов) на минутном таймфрейме (М1). Скрипт опирается на серию только БА. Вычисленная историческая волатильность отображается на отдельном графике в качестве индикатора.
Это один из самых простых алгоритмов, который позволяет начать освоение опционных блоков в составе ТСЛаб . Скрипт использует историческую волатильность из глобального кеша. Для этого используется блок Global HV .
Дополнительно демонстрируется использование блока Global IV ATM . Данный блок извлекает значения подразумеваемой волатильности из глобального кеша и выводит их на график в виде индикатора. То есть демонстрируется техника повторного использования результатов вычислений. С практической точки зрения это даёт возможность анализировать (хотя бы визуально) взаимную динамику исторической и подразумеваемой волатильностей на продолжительных интервалах времени. В данный момент имеется ограничение: в скрипт необходимо самому вписывать даты экспирации опционных серий. Делается это изменением параметров блоков IVATM* .
Дополнительно демонстрируется использование блока Global IV ATM . Данный блок извлекает значения подразумеваемой волатильности из глобального кеша и выводит их на график в виде индикатора. То есть демонстрируется техника повторного использования результатов вычислений. С практической точки зрения это даёт возможность анализировать (хотя бы визуально) взаимную динамику исторической и подразумеваемой волатильностей на продолжительных интервалах времени. В данный момент имеется ограничение: в скрипт необходимо самому вписывать даты экспирации опционных серий. Делается это изменением параметров блоков IVATM* .
Например, 14 июля 2016 года за 4 торговых дня до экспирации июльской серии мы видим, что IV ATM июля меньше IV ATM сентября на 2% волатильности и обе эти волатильности меньше текущей HV ( исторической волатильности ) фьючерса SRU6 на 5% и 2% соответственно . То есть как минимум следует отказаться от продажи волатильности в июльской и сентябрьской серии или даже попробовать аккуратно покупать июль в расчете заработать на дельте.
Очевидный минус агента HV (RW) в том, что под каждый базовый актив (БА) необходимо запускать отдельный агент. Для повседневной работы мы предлагаем улучшенную версию. Этот скрипт может обслуживать сразу 4 БА. Разумно, чтобы эти БА соответствовали источникам для скрипта Collect IV (ALL) .
В качестве примера торгового робота предлагаются скрипты для покупки и продажи волатильности. В общих чертах алгоритм торговли выглядит следующим образом: скрипт определяет текущий центральный страйк, вытаскивает из глобального кеша историческую и подразумеваемую волатильность. В параметрах скрипта задаётся минимальное пороговое расхождение HV и IV (например, 5%). Если подразумеваемая волатильность превышает историческую, скрипт начинает продавать опционы на центральном страйке. Если историческая превышает IV, то осуществляется покупка опционов в центральном страйке.
Параметры котирования опционов задаются в интерфейсе агента. Это в частности: максимальный объём позиции, квант котирования, сдвиг цены относительно улыбки вверх/вниз (в шагах цены инструмента).
Агент выполняет автоматический дельта-хедж в соответствии с выбранными параметрами (используется авторский алгоритм вычисления дельты от Алексея Каленковича). Параметры хеджера задаются в настройках в интерфейсе агента.
В случае, если принимается решение о сокращении позиции, агент начнет котирование в набранных страйках и в итоге может сократить позицию вплоть до 0.
Важно: обязательным условием работы этих агентов является предварительный запуск агентов Collect IV (ALL), HV (ALL).
Для управления агентом необходимо вызвать его интерфейс. При этом станет доступен набор закладок для управления агентом и контроля его состояния.
В главном окне есть график БА, индикаторы волатильностей, величина набранного риска и дельта позиции. В разделе Control Desk находится управлением парамерами котирования и отображением первичной контрольной информации. В разделе Position показывается состав набранной позиции в разбивке по страйкам (фьючерс обозначается строчкой с нулевым страйком).
Вкладка Trades ( трейды) показывает фактические сделки
Log – служебная и отладочная информация для контроля правильности работы агента
Smile – управление параметрами автохеджера и улыбки. В частности, можно отвязать улыбку от рынка и зафиксировать её параметры по своему усмотрению.
Position – графическое представление профиля позиции
Настройки Entry Shift , Exit Shift (задаются в единицах «шаг цены») позволяют управлять степенью агрессивности Ваших действий. Добиваться более выгодной цены, если есть возможность ждать, или агрессивно наступать на рынок, если есть желание поскорее совершить сделку и набрать объём.
Скрипт покупает опционы в центральном страйке, если историческая волатильность превышает подразумеваемую на заметную величину. Если Вы хотите закрыть позицию, поставьте параметр Max Risk = 0 . Агент начнет котирование с целью закрыть все имеющиеся объёмы.
Скрипт продаёт опционы в центральном страйке, если подразумеваем ая волатильность превышает историческ ую на заметную величину. Если Вы хотите закрыть позицию, поставьте параметр Max Risk = 0 . Агент начнет котирование с целью закрыть все имеющиеся объёмы
Для построения своей улыбки используются уникальные авторские алгоритмы Алексея Каленковича . Это даёт возможность обнаруживать «неадекватные» котировки. Чтобы забрать их, сформировать сложную позицию, перестраивать её структуру и следить за результатом работы предлагаются скрипты для ручной торговли. На график выводятся улыбки и рыночные опционные котировки. Перспективные страйки, в которых идентифицировано сильное отклонение от «справедливой» оценки, подсвечиваются. Трейдер имеет возможность забирать такие котировки, совершая сделки прямо на чарте с помощью мыши. При этом будет сформирована команда на покупку или продажу опциона в указанном страйке. В фоновом режиме осуществляется автоматическое выравнивание дельты суммарной позиции.
Данные скрипты полезны профессиональным трейдерам, которые могут осознанно сформировать сложные позиции и управлять ими. Трейдерам с меньшим уровнем подготовки предлагается полностью идентичное рабочее место с тем ограничением, что все сделки являются виртуальными, то есть не выводятся на рынок. Это позволяет формировать позиции любой сложности и объёма и на практике проверять тонкости их поведения без риска для счета. При этом динамика эквити будет достаточно близко соответствовать тому, что происходило бы в реальности.
Основным рабочим полем этих инструментов, является поле с улыбками на фоне которых разложены рыночные котировки. Идентифицировав отклонение котировок, трейдер совершает сделку с помощь мыши. На соответствующих вкладках показывается также профиль позиции, профиль дельты и гаммы.
Скрипт для реальной торговли. Сделки выводятся в рынок. При реальной торговле возможно выставление котировок в терминах волатильности. Например, « купить страйк 14 000 по волатильности 30% ». При этом будет создана Задача Котирования (отображается на графике улыбки горизонтальной черточкой в указанном страйке). После этого в рынке появится лимитная заявка по цене, соответствующей волатильности 30%. По мере движения цены БА лимитная котировка будет переставляться (в терминах абсолютной цены) с тем, чтобы соответствовать своему уровню волатильности. В каждом страйке может существовать только одна Задача Котирования одного направления. Это даёт возможность одновременно покупать и продавать несколько страйков или даже сразу всю опционную серию.
При перезапуске ТСЛаб все задачи котирования автоматически снимаются. Но они могут переноситься через вечерний клиринг и через ночь. Отмена лимитной заявки через Ваш торговый терминал, через таблицу «Свои заявки» или через «Менеджер котировок» не приводит к отмене Задачи Котирования.
Управление Задачами осуществляется с помощью панели «Quote settings». Знак параметра Qty определяет тип операции «КУПИТЬ» или «ПРОДАТЬ». Будьте внимательны.
Полностью идентичный скрипт для виртуальной торговли. Позволяет освоить интерфейс и получить представление об основных приёмах, применяемых в настоящее время при разработке опционных агентов.
Этот скрипт во многом воспроизводит возможности других алгоритмов из этой группы. Но имеет очень серьёзное отличие: «рынок» для него является полностью контроллируемым объектом. Время до экспирации, параметры, улыбки, цена базового актива и т. п. Являются полностью настраиваемыми параметрами. Это позволяет делать сценарное тестирование поведения позиции в различных ситуациях. Можно даже делать дельта хедж по мере движения рынка или доливать в позицию подорожавшие страйки. Естественно, все позиции только виртуальные .
Подразумеваемая волатильность не найдена в глобальном кеше для серии При запуске агента Collect IV (ALL) выдаётся следующая ошибка (4 раза для разных источников):
09.12.2019 13:08:41 100 Агент 'IV': [GlobalIvOnF.PrepareData] Подразумеваемая волатильность не найдена в глобальном кеше для серии '2020-09-17'. Нужно запустить агент 'Collect IV (RW)' или 'Collect IV (ALL)' на инструменте 'SiU0:FUT'.
На источниках поставлены опционы соответствующих серий (от Si-12.19 до Si-9.20), поставщик Финам. При этом те же опционные серии выбраны и на скрипте HV (ALL), и там агент запускается без ошибок. Что сделано не так? ===
Если вызвать интерфейс агента Collect IV (ALL), графики волатильностей показываются нормально?
Их должно быть 4 штуки по одному на каждый "фьючерс" и при появлении каждого нового минутного бара должна появляться новая точка на этих графиках.
Однократный вывод данного сообщения -- нормально.
Система просто сообщает Вам, что до этого момента никто не занимался сбором подразумеваемой волатильности в данной серии опционов.
Рекомендуется предварительно изучить работу агентов в режиме виртуальных сделок и/или на игровых контурах.
• Поклонникам ручной торговли для этого будет полезен скрипт Simm Trading – все сделки в обязательном порядке исполняются в режиме эмуляции. То есть заявки на рынок не выводятся.
• Поскольку скрипты предполагают длительное ведение позиций, автоматическое выполнение хеджирования и т. д., то нормальным режимом работы для них является режим агента.
• Настоятельно рекомендуется давать агентам осмысленные названия.
Например, автор обычно называет агенты для сбора подразумеваемой волатильности «iv», «iv_RI» или «iv_RI_Si». Соответственно, за исторической волатильностью следят «hv», «hv_RI» или «hv_RI_Si».
Торговые скрипты для покупки волатильности обычно называются «bv_RIM5_Jun» (такое название сразу раскрывает вид операции – Buy Volatility, базовый актив – RIM5, опционную серию – июнь).
В противном случае при большом числе торгуемых базовых активов и торгуемых серий Пользователь может столкнуться с проблемой того, что будет трудно ориентироваться в большом количестве агентов.
• Игровой контур, как правило, предоставляется брокерами всем своим реальным клиентам бесплатно. Обладатели подключения по протоколу Плаза- 2 получают дополнительный логин-пароль для своего роутера и могут легко подключиться к знакомой инфраструктуре. В игровом контуре достаточно прилично представлена главная серия опционов на индекс РТС.
• После запуска приложения с опционными агентами или после перезапуска агента рекомендуется проверить правильность всех настроек и адекватность его состояния. Лучше всего это сделать через интерфейс агента. В частности, должны присутствовать график Базового Актива (БА), на вкладке Smile должна быть отображена адекватная улыбка. Если агент уже набрал позицию – её профиль должен быть показан на вкладке Position.
• Для работы опционных агентов у вас ВСЕГДА(!) должны быть предварительно запущены агенты для сбора подразумеваемой и исторической волатильности в тех инструментах, с которыми Вы собираетесь работать. Проще всего использовать для этого скрипты «HV (ALL)» и «Collect IV (ALL)».
• При торговле опционами мы рекомендуем сразу увеличить параметр программы «Файл» → «Настройки программы» → «Оптимизация скриптов» → «Кеш для скриптов» до 1000 МБ или, если Вам позволяет оперативная память, до 2000 МБ. У себя при торговле через Транзак мы используем размер кеша 2048 Мбайт.
ВАЖНОЕ ОБЪЯВЛЕНИЕ ДЛЯ ОПЦИОНЩИКОВ
• Во время реальной торговли при использовании котировщика опционов (выставление задач котирования относительно рыночной улыбки) настоятельно рекомендуем фиксировать уровень волатильности на- деньгах и наклон улыбки. Биржевая улыбка временами становится неадекватной, а самостоятельно менять эти параметры вслед за изменением рыночных заявок не слишком обременительно (примерно раз в неделю на спокойном рынке).
• Если Вы не можете (или не хотите) следить за этими параметрами в течение дня обязательно замораживайте эти параметры хотя бы на время вечернего клиринга и на ночь.
Предусмотрительно даже вообще отменять все задачи котирования на эти периоды. Потому что на быстром рынке после открытия торгов трудно ожидать исполнения по хорошим ценам.
• Если полностью положиться на биржевую улыбку и во время котирования послушно ходить вслед за ней, это может привести к исполнению по ОЧЕНЬ неадекватным ценам. Особенно утром на открытии торгов и после вечернего клиринга.
• Если на бирже происходит какой-то сбой, остановка торгов, рассинхронизация времени или ещё какие-то чудеса, имеет смысл прервать котирование и подождать нормализации обстановки.
При старте приложения в целом или даже агентов по отдельности несколько пересчетов опционным агентам может не хватать данных. Это выражается в сообщениях об ошибках в Главном Логе приложения. После перехода агентов в нормальный режим эти сообщения об ошибках должны исчезнуть.
Иногда при старте приложения опционный агент может не увидеть свою позицию. В такой ситуации он неправильно считает свой текущий риск нулевым и выставляет заявку на донабор позиции. Если эта заявка исполнится, может быть куплен(продан) лишний опцион (сверх ограничения MaxRisk). Мы рекомендуем перед перезапуском приложения или агента выставлять агенту настройку Block Trading, которая защитит Вас от этой неприятности.
Иногда при котировании опционов (с помощью задач котирования относительно улыбки) наблюдается эффект самопроизвольного снятия этих задач. Выражается это в том, что с графика улыбки пропадают отметки задач котирования, а все выставленные ранее лимитники отменяются. В этом случае необходимо увеличить размер настройки «Кеш для скриптов» как было описано выше. Если при 2000 МБ поведение не нормализуется, то нужно увеличивать этот параметр дальше. Известен случай, когда при торговле через Плазу и котировании нескольких Досок Опционов Пользователю пришлось увеличить этот параметр до 4000 МБ.
Последние изменения: В скриптах Simm trading и Real trading накопились определенные изменения и улучшения, поэтому настало время выложить новую версию номер 95. ВАЖНО: Данный скрипт создан и сохранен в TSLab v2.0.32. Совместимость с предыдущими версиями не проверялась. Инструменты - Проверить наличие обновлений. Основные изменения в скрипте:
Добавлена возможность переключать серию опционов "на лету".
Добавлена возможность принудительно указать тип опциона, который будет использован для создания позиций.
В окне с настройками улыбки в левом верхнем углу появилась группа контролов для переключения рабочей серии опционов. ВАЖНО: позиции в разных сериях сейчас полностью независимы, поэтому торговать календарные комбинации КАТЕГОРИЧЕСКИ НЕЛЬЗЯ. В противном случае Вы получите скачок дельты и неправильную работу хеджера. ==
Для построения своей улыбки используются уникальные авторские алгоритмы Алексея Каленковича. Это даёт возможность обнаруживать «неадекватные» котировки. Чтобы забрать их, сформировать сложную позицию, перестраивать её структуру и следить за результатом работы предлагаются скрипты для ручной торговли. На график выводятся улыбки и рыночные опционные котировки. Перспективные страйки, в которых идентифицировано сильное отклонение от «справедливой» оценки, подсвечиваются. Трейдер имеет возможность забирать такие котировки, совершая сделки прямо на чарте с помощью мыши. При этом будет сформирована команда на покупку или продажу опциона в указанном страйке. В фоновом режиме осуществляется автоматическое выравнивание дельты суммарной позиции.
Данные скрипты полезны профессиональным трейдерам, которые могут осознанно сформировать сложные позиции и управлять ими. Трейдерам с меньшим уровнем подготовки предлагается полностью идентичное рабочее место с тем ограничением, что все сделки являются виртуальными, то есть не выводятся на рынок. Это позволяет формировать позиции любой сложности и объёма и на практике проверять тонкости их поведения без риска для счета. При этом динамика эквити будет достаточно близко соответствовать тому, что происходило бы в реальности.
Основным рабочим полем этих инструментов, является поле с улыбками на фоне которых разложены рыночные котировки. Идентифицировав отклонение котировок, трейдер совершает сделку с помощь мыши. На соответствующих вкладках показывается также профиль позиции, профиль дельты и гаммы.
Скрипт для реальной торговли. Сделки выводятся в рынок. При реальной торговле возможно выставление котировок в терминах волатильности. Например, «купить страйк 14 000 по волатильности 30%». При этом будет создана Задача Котирования (отображается на графике улыбки горизонтальной черточкой в указанном страйке). После этого в рынке появится лимитная заявка по цене, соответствующей волатильности 30%.
По мере движения цены БА лимитная котировка будет переставляться (в терминах абсолютной цены) с тем, чтобы соответствовать своему уровню волатильности.
В каждом страйке может существовать только одна Задача Котирования одного направления.
Это даёт возможность одновременно покупать и продавать несколько страйков или даже сразу всю опционную серию.
При перезапуске ТСЛаб все задачи котирования автоматически снимаются. Но они могут переноситься через вечерний клиринг и через ночь. Отмена лимитной заявки через Ваш торговый терминал, через таблицу «Свои заявки» или через «Менеджер котировок» не приводит к отмене Задачи Котирования.
Управление Задачами осуществляется с помощью панели «Quote settings». Знак параметра Qty определяет тип операции «КУПИТЬ» или «ПРОДАТЬ». Будьте внимательны.
Полностью идентичный скрипт для виртуальной торговли. Позволяет освоить интерфейс и получить представление об основных приёмах, применяемых в настоящее время при разработке опционных агентов.
"Рыночная улыбка" (в наших скриптах она обозначается жирной красной линией с желтыми точками). Эта гладкая функция строится по специальным правилам и полностью заменяет собой все остальные улыбки.
Для настройки и подгонки под котировки маркет мейкеров(ММ) используется всего 3 параметра. Как Вы провели эту линию -- та цена и считается "справедливой". (Здесь по смыслу больше подходит термин "опорная цена" или "ориентировочная") Мы ни в коем случае не претендуем на то, что это какая-то истина в последней инстанции. Но многолетняя практика торговли однозначно указывает на то, что работать по такой улыбке проще, удобней и прибыльней, чем опираться на "теоретическую цену" биржи или соглашаться с ценами Маркет Мейкеров.
Синяя улыбка -- это "замороженная" улыбка (улыбка первоначального положения). С ней ничего не надо делать и по ней не надо делать дельта хедж. Ее предназначение в том, чтобы Пользователь (мы с Вами) наглядно видели как изменилась улыбка после наших манипуляций и как изменился профиль позиции.
Если Вы хотите выровнять дельту по синей улыбке -- верните ВСЕ параметры рыночной улыбки в стартовые значения -- и сделайте хедж.
После начала торгов, опционная доска не видит все позиции по опционам. Либо видит не полную позицию.
В данный момент, программе нужно с помощью Риск-менеджера запретить торговлю в первые пересчеты. Т.е. поставить ограничение торговли по времени TSLab Опционы. Для чайников - риск-менеджер запретить торговать до 10:01 (для moex) как минимум, (то есть первые 6 пересчетов Доски в стандартном таймфрейме 10с).
ВАЖНО: Данный скрипт использует улучшения, которые доступны в релизе TSLab v2.0.28 и выше Инструменты - Проверить наличие обновлений. Основные изменения в скрипте:
Добавлена возможность переключать серию опционов "на лету".
Добавлена возможность принудительно указать тип опциона, который будет использован для создания виртуальных позиций.
Добавлена возможность изменить модель времени. Это нужно, если Вы хотите добиться максимально близкого соответствия цен в Доске Опционов синтетическим ценам в скрипте Static Analysis.
Внешний вид окна улыбки:
В левом верхнем углу показана группа контролов для переключения рабочей серии опционов. ВАЖНО: позиции в разных сериях сейчас полностью независимы, поэтому моделировать календарные комбинации нельзя. В правом верхнем углу показана группа контролов для принудительного указания типа опционов в новой виртуальной позиции. Замена модели времени в скрипте:
Доска Опционов по умолчанию функционирует в модели времени "Время ФОРТС", а скрипт Static Analysis -- в модели "Календарное время". Поэтому 20 торговых дней в Доске Опционов не соответствуют 20 торговым дням этого скрипта. Если возникает необходимость добиться более точного совпадения цен реальных и цен в скрипте Static Analysis, нужно выход кубика TimeToExpiry домножить на поправочный коэффициент. На выходе TimeToExpiry время указывается в долях года. Поправочный множитель для пересчета из плоского времени в модель ФОРТС равен 4.55829690. Его нужно указать в скрипте параметром кубика ChangeTimeModel. Пример:
30 дней в календарном времени дают долю года ~ 0.0821918
30 торговых дней в режиме ФОРТС дают долю года ~ 0.3743981
==
Этот скрипт во многом воспроизводит возможности других алгоритмов из этой группы. Но имеет очень серьёзное отличие: «рынок» для него является полностью контроллируемым объектом. Время до экспирации, параметры, улыбки, цена базового актива и т. п. Являются полностью настраиваемыми параметрами. Это позволяет делать сценарное тестирование поведения позиции в различных ситуациях. Можно даже делать дельта хедж по мере движения рынка или доливать в позицию подорожавшие страйки. Естественно, все позиции только виртуальные.
Скачать Презентация к видео
В качестве примера торгового робота предлагаются скрипты для покупки и продажи волатильности. В общих чертах алгоритм торговли выглядит следующим образом: скрипт определяет текущий центральный страйк, вытаскивает из глобального кеша историческую и подразумеваемую волатильность. В параметрах скрипта задаётся минимальное пороговое расхождение HV и IV (например, 5%).
Если подразумеваемая волатильность превышает историческую, скрипт начинает продавать опционы на центральном страйке. Если историческая превышает IV, то осуществляется покупка опционов в центральном страйке.
Параметры котирования опционов задаются в интерфейсе агента. Это в частности: максимальный объём позиции, квант котирования, сдвиг цены относительно улыбки вверх/вниз (в шагах цены инструмента).
Агент выполняет автоматический дельта-хедж в соответствии с выбранными параметрами (используется авторский алгоритм вычисления дельты от Алексея Каленковича). Параметры хеджера задаются в настройках в интерфейсе агента.
В случае, если принимается решение о сокращении позиции, агент начнет котирование в набранных страйках и в итоге может сократить позицию вплоть до 0.
Важно: обязательным условием работы этих агентов является предварительный запуск агентов Collect IV (ALL), HV (ALL).
Для управления агентом необходимо вызвать его интерфейс. При этом станет доступен набор закладок для управления агентом и контроля его состояния.
В главном окне есть график БА, индикаторы волатильностей, величина набранного риска и дельта позиции. В разделе Control Desk находится управлением парамерами котирования и отображением первичной контрольной информации. В разделе Position показывается состав набранной позиции в разбивке по страйкам (фьючерс обозначается строчкой с нулевым страйком).
Вкладка Trades (трейды) показывает фактические сделки
Log – служебная и отладочная информация для контроля правильности работы агента
Smile – управление параметрами автохеджера и улыбки. В частности, можно отвязать улыбку от рынка и зафиксировать её параметры по своему усмотрению.
Position – графическое представление профиля позиции
Настройки Entry Shift, Exit Shift (задаются в единицах «шаг цены») позволяют управлять степенью агрессивности Ваших действий. Добиваться более выгодной цены, если есть возможность ждать, или агрессивно наступать на рынок, если есть желание поскорее совершить сделку и набрать объём.
Скрипт покупает опционы в центральном страйке, если историческая волатильность превышает подразумеваемую на заметную величину. Если Вы хотите закрыть позицию, поставьте параметр Max Risk = 0. Агент начнет котирование с целью закрыть все имеющиеся объёмы.
Скрипт продаёт опционы в центральном страйке, если подразумеваемая волатильность превышает историческую на заметную величину. Если Вы хотите закрыть позицию, поставьте параметр Max Risk = 0. Агент начнет котирование с целью закрыть все имеющиеся объёмы.
Изменение параметра IV ATM имеет нелинейное воздействие на всю улыбку.
Это поведение воспроизводит те свойства, которые демонстрирует реальная рыночная улыбка.
В частности, снижение волатильности на центре на 5% волатильности вовсе необязательно приводит к снижению краёв на 5%.
Края вообще могут остаться на месте при каких-то условиях.
Формирование улыбки происходит в естественных координатах по оси Х
По-этому при изменении IV ATM улыбка не только проседает, но ещё и сжимается.
Это один из самых простых алгоритмов, который позволяет начать освоение опционных блоков в составе TSLab. Скрипт использует историческую волатильность из глобального кеша. Для этого используется блок Global HV.
Дополнительно демонстрируется использование блока Global IV ATM. Данный блок извлекает значения подразумеваемой волатильности из глобального кеша и выводит их на график в виде индикатора. То есть демонстрируется техника повторного использования результатов вычислений. С практической точки зрения это даёт возможность анализировать (хотя бы визуально) взаимную динамику исторической и подразумеваемой волатильностей на продолжительных интервалах времени.
В данный момент имеется ограничение: в скрипт необходимо самому вписывать даты экспирации опционных серий. Делается это изменением параметров блоков IV_ATM_*.
Например, 14 июля 2016 года за 4 торговых дня до экспирации июльской серии мы видим, что IV ATM июля меньше IV ATM сентября на 2% волатильности и обе эти волатильности меньше текущей HV (исторической волатильности) фьючерса SRU6 на 5% и 2% соответственно.
То есть как минимум следует отказаться от продажи волатильности в июльской и сентябрьской серии или даже попробовать аккуратно покупать июль в расчете заработать на дельте.
Это один из самых простых алгоритмов, который позволяет начать освоение опционных блоков в составе TSLab. Скрипт предназначен для расчета исторической волатильности с сохранением вычисленных значений в глобальный кеш. Расчет идет по классической формуле расчета исторической волатильности (как дисперсии логарифмов) на минутном таймфрейме (М1). Скрипт опирается на серию только БА. Вычисленная историческая волатильность отображается на отдельном графике в качестве индикатора.