Избранное трейдера Сергеев Петр
Прошлая часть — см. в моем блоге.
В этой части разберем технику улучшения производительности стратегии, использующую множество моделей.
Одним из наиболее мощных методов улучшения прибыльности вашей модели является объединение нескольких алгоритмов в так называемое «множество». Теория состоит в том, что комбинируя разные модели и их предсказания, мы получаем более робастные результаты. Тесты показывают, что даже объединение простых моделей может быть производительнее более сложной, но единственной стратегии.
Существует три основных техники объединения:
Смешивание:
Смешивание основано на создании моделей, прогоняемых на немного различных тренировочных наборах и усреднения их результатов для получения одного предсказания. Тренировочный набор переделывается путем повторения или удаления вхождений данных, в результате чего получается несколько разных наборов. Этот процесс работает хорошо для нестабильных алгоритмов (например, деревья решений) или, если присутствует определенная степень случайности в процессе создания моделей ( как, например, начальные веса в нейронных сетях). Получив усредненное предсказание для коллекции моделей с высоким значением подгонки, мы можем уменьшить результирующую подгонку без увеличения недооценки, что приведет к лучшим результатам.
Первая часть лежит тут… smart-lab.ru/blog/155810.php… думал частично переписать, но решил просто добавить...
1 Основа торговли
Трейдинг — это прогнозирование будущих цен и торговля этого прогноза с целью извлечения прибыли.
Прогнозирование будущих цен можно делать на основе различных методов и способов, например: фундаментального анализа, новостей, цены, объемов, элиотов и прочих методов или их сочетания. В любом случае выделяется параметр наблюдения или ряд параметров на основании которых принимается решение об исходе прогноза.
В конечном итоге, исходы прогноза всего 2 — тренд и контртренд. В случае тренда мы делаем вывод что параметр наблюдения достаточно изменился, чтоб движение продолжилось, а для контртенда на основаниии такого же изменения параметра мы сделаем вывод что движение прекратится и сменится на противоположное.
В этой части рассмотрим обучение модели скрытых состояний Маркова на языке R. В прошлых статьях мы изучили математическую основу модели, которая воплощена в библиотеке RHmm. Есть два способа распознавания режимов с помощью модели Маркова, первый — использование одной модели, каждое состояние которой отражает режим, в каком находится рынок. Второй способ подразумевает построение нескольких моделей, каждая из которых создана для одного режима, задача состоит в том, чтобы выбрать ту модель, которая генерирует данные, наиболее соответствующие текущему состоянию рынка. Рассмотрим оба эти способа.
Метод первый — одна модель с несколькими состояниями.
Для обучения модели будем использовать исходные данные, полученные симуляцией из нормального статистического распределения N(mu,sigma), где mu — медиана, sigma — среднеквадратичное отклонение. Распознавание будем производить для двух режимов — бычьего (bull) рынка, на котором наблюдается восходящий тренд и медвежьего (bear) рынка, на котором тренд нисходящий. Соответственно, сгенерируем приращение значений из двух нормальных распределений - N (mu.Bull,sigma.Bull) и N(mu.Bear,sigma.Bear). На рисунке показан результат такой генерации на 300 наблюдений, 100 первых из которых получены из бычьего распределения, 100 вторых — из медвежьего и 100 последних — из бычьего с другими параметрами mu и sigma (каждое приращение будем считать дневным):
Так уж сложилось, что из всех видов торговли в трейдинге меня привлекает торговля по потоку ордеров.
Этой теме я посвятил довольно много времени и глубоко её исследовал. Писал свой терминал, собирал сырые данные, анализировал их, исследовал API различных датафидов и терминалов: Rithmic, CQG, Nanex, NYSE API's, NinjaTrader API, Sierrachart API, Takion API и др.
Но помимо сбора данных остро стоит проблема их корректной визуализации. Так вот с этим моментом все обстоит очень плохо. Когда человек говорит «Я читаю ленту» в голове представляется картина с сумасшедшим потоком бегущих цифр перед глазами, успеть рассмотреть и уж тем более как-то проанализировать которые практически невозможно. Большая часть из этого потока просто пролетает мимо. Безусловно с опытом наблюдения что-то начинает получаться, но это в лучшем случае 20-30% обработанной информации из всего потока. А если мы говорим о наблюдении за книгой ордеров (стакан, DOM, Depth of market), то здесь все еще хуже. Большая часть информации при наблюдении за стаканом просто не видна, т.к. частота его обновления в ядре биржи может достигать тысяч событий в секунду, а частота обновления стакана на экране вашего монитора в лучшем случае составит 1 раз в 50 миллисекунд (или 20 раз в секунду). Соответственно между двумя изменениями цифр в стакане на мониторе, могут произойти десятки изменений в реальности.
Since the middle of last year, our engineers have been trying to find ways to unbundle the data in the new protocol while still maintaining accuracy and reliability. Unfortunately we haven't found a good way to accomplish this with the data provided by the protocol. We continue to look at our data processing options in cooperation with the CME Exchange. In the mean time, we are happy to be able to continue providing our customers the accurate tick data they have come to expect.
В данном цикле статей начинаем рассматривать модель Маркова, которая находит применение в задачах классификации состояния рынка и используется во многих биржевых роботах. Статьи основаны на постах, опубликованных в блоге Gekko Quant. Также будет рассмотрены практические алгоритмы на финансовых рынках. Код в цикле приведен на языке R. Вначале будет много теории, ее надо хотя бы попробовать понять, затем разберем практические примеры.
Рабочая среда распознавания основных паттернов.
Рассмотрим набор признаков O, полученный из набора данных d и класс w, обозначающий наиболее подходящий класс для O:
Продолжение. Начало в моем блоге и на сайте.
В прошлой статье про модель Хестона мы отметили, что она обладет недостатком, который проявляется в неточности определения цен опционов на малых сроках экспирации. Здесь мы рассмотрим модель Бейтса, в которой этот недостаток устранен, и она является одной из лучших аппроксимаций, описывающих поведение цен опционов для разных страйков и периодов до экспирации.
Модель Бейтса относится к моделям стохастической волатильности и определятся следующими уравнениями:
В ряду алгоритмов, используемых в опционной торговле, значительное место занимают стратегии покупки/продажи волатильности. Смысл таких стратегий в покупке опциона, когда волатильность рынка мала, и соответственно, продаже, когда волатильность высока, при постоянном хэджировании базисным активом ( дельта позиции равна нулю).
Цена опционов, как известно, вычисляется по формуле Блэка-Шоулза, однако из-за того, что некоторые допущения, относящиеся к модели цены базисного актива, не соответствуют реальному статистическому распределению, опционам разных страйков приходится присваивать различные значения так называемой подразумеваемой волатильности (IV), которая входит в уравнение Блэка-Шоулза как параметр. Возникает ситуация с двумя неизвестными — мы вычисляем IV по текущей цене опциона, при этом не зная, насколько справедлива эта цена в настоящий момент, следовательно не можем определить, дешево стоит опцион сейчас или дорого. Если бы нам удалось определить истинную волатильность рынка, то рассчитав по ней цену и сравнив с текущей, можно было бы принимать решение о покупке или продаже опциона. Поэтому основная задача, которую нужно решить в стратегиях покупки/продажи волатильности — построение правильного графика подразумеваемой волатильности опционов, в зависимости от страйков, из-за его формы имеющим название улыбки волатильности, или поверхности волатильности, если речь идет о разных периодах до экспирации — см. график в заглавии.