uralpro

Читают

User-icon
460

Записи

101

Стратегия с классификацией ордеров по времени жизни. Часть 1

bats

Неплохую идею для высокочастотного трейдинга подсказал Kipp Rogers в своем блоге. Идея несложная, но требующая подробного объяснения, поэтому попробую изложить ее в двух статьях.

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



( Читать дальше )

Модель скрытых состояний Маркова. Часть 4

hmmTrendFollow-OutOfSample-Corrected

Окончание цикла статей. Начало и другие алгоритмы биржевой торговли смотрите в моем блоге и на сайте.

В прошлой части мы продемонстрировали обучение модели Маркова на данных, полученных с помощью симуляции. В данной статье рассмотрим производительность модели на реальных данных. Будем тестировать трендследящую стратегию на индексе S&P500.

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

Мы хотим создать трендследящую стратегию, поэтому должны выбрать участки на выборке цен S&P500, которые соответствуют восходящему и нисходящему трендам ( также можно отметить участки, где тренды отсутствуют). Можно это сделать вручную, а можно применить программу, которая автоматически расставит метки в соответствии с вашими определениями тренда.



( Читать дальше )

Модель скрытых состояний Маркова. Часть 3

hmmStateProbabilities

В этой части рассмотрим обучение модели скрытых состояний Маркова на языке 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 (каждое приращение будем считать дневным):



( Читать дальше )

Модель скрытых состояний Маркова. Часть 2

hmm-training-outline-1024x889

В предыдущей статье мы говорили об эффективных алгоритмах, необходимых для вычисления вероятностей и стат. распределений модели Маркова, которыми являются форвардный алгоритм и алгоритм Витерби. Форвардный алгоритм вычисляет вероятность соответствия данных наблюдения полученным моделью всем возможным последовательностям состояний. Алгоритм Витерби вычисляет вероятность соответствия данных полученной моделью одной, наиболее вероятной, последовательности.

В этом посте будет много формул, но без этого не обойтись, чтобы создать хорошую стратегию, надо разбираться в математической модели, лежащей в ее основе. Следующие части будут более приближенными к практике.

Форвардный алгоритм.

Форвардный алгоритм позволяет эффективно рассчитать функцию вероятности p(O|λ). Форвардной переменной называется вероятность генерации моделью наблюдений до времени t, и состояние j в момент времени t определяется как:



( Читать дальше )

Модель скрытых состояний Маркова. Часть 1

hidden-markov-model-1024x412

В данном цикле статей начинаем рассматривать модель Маркова, которая находит применение в задачах классификации состояния рынка и используется во многих биржевых роботах. Статьи основаны на постах, опубликованных в блоге Gekko Quant. Также будет рассмотрены практические алгоритмы на финансовых рынках. Код в цикле приведен на языке R. Вначале будет много теории, ее надо хотя бы попробовать понять, затем разберем практические примеры.

Рабочая среда распознавания основных паттернов.

Рассмотрим набор признаков O, полученный из набора данных d и класс w, обозначающий наиболее подходящий класс для O:

\hat{w}=\arg\max_w P(w|O)



( Читать дальше )

Улыбка волатильности. Модель Бейтса

BatesFFT

Продолжение. Начало в моем блоге и на сайте.

В прошлой статье про модель Хестона мы отметили, что она обладет недостатком, который проявляется в неточности определения цен опционов на малых сроках экспирации. Здесь мы рассмотрим модель Бейтса, в которой этот недостаток устранен, и она является одной из лучших аппроксимаций, описывающих поведение цен опционов для разных страйков и периодов до экспирации.

Модель Бейтса относится к моделям стохастической волатильности и определятся следующими уравнениями:

\frac{dS_t}{dt}= r dt+\sqrt{V_t}dW_t^1+dZ_t



( Читать дальше )

Результаты роботорговли за апрель

grafrobot_16359_image001

На графике выше результаты моей торговли роботами за апрель. Прибыль показана в процентах от начального капитала с начала торговли 10 марта 2015 года (апрель отделен красной линией). В прошлом посте были приведены основные характеристики рабочих алгоритмов.

Как видно на графике имела место значительная просадка 16 апреля, причем до этого три дня были хоть с небольшим, но минусом. Это вызывает уже вопросы о робастности применяемых алгоритмов, таких просадок я не наблюдал на используемых мной исторических данных, что может свидетельствовать о подгонке на бэктестировании. Хотя день 16.04 был очень интересным, ниже приведен график прибыли за день:

grafrobot_5705_image001



( Читать дальше )

Улыбка волатильности. Модель Хестона

heston_gr

Продолжаем рассматривать алгоритмы построения улыбки волатильности. В этой статье будем находить «справедливые» цены опционов при помощи модели Хестона, которая относится к так называемым моделям стохастической волатильности. Хестон предложил использовать в качестве модели базового актива систему следующих уравнений:

dS_t=r S_t dt+\sqrt{V_t}S_tdW_t^1



( Читать дальше )

Улыбка волатильности. Ad-hoc Блэк Шоулз

    • 29 апреля 2015, 10:29
    • |
    • uralpro
  • Еще

06eacc816672bc6021ef661b0ec0981a67773653

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

Цена опционов, как известно, вычисляется по формуле Блэка-Шоулза, однако из-за того, что некоторые допущения, относящиеся к модели цены базисного актива, не соответствуют реальному статистическому распределению, опционам разных страйков приходится присваивать различные значения так называемой подразумеваемой волатильности (IV), которая входит в уравнение Блэка-Шоулза как параметр. Возникает ситуация с двумя неизвестными — мы вычисляем IV  по текущей цене опциона, при этом не зная, насколько справедлива эта цена в настоящий момент, следовательно не можем определить, дешево стоит опцион сейчас или дорого. Если бы нам удалось определить истинную волатильность рынка, то рассчитав по ней цену и сравнив с текущей, можно было бы принимать решение о покупке или продаже опциона. Поэтому основная задача, которую нужно решить в стратегиях покупки/продажи волатильности — построение правильного графика подразумеваемой волатильности опционов, в зависимости от страйков, из-за его формы имеющим название улыбки волатильности, или поверхности волатильности, если речь идет о разных периодах до экспирации — см. график в заглавии.



( Читать дальше )

Результаты роботорговли за март

    • 28 апреля 2015, 10:23
    • |
    • uralpro
  • Еще

grafrobot_9825_image001

Не путать с работорговлей :). Как автор блога об алгоритмической торговле, считаю нужным выкладывать эквити моих роботов, которые запущены на бирже в настоящее время. В заглавии поста результаты за март, в процентах от капитала на начало месяца.  В боевых торгах алгоритмы принимают участие с 10 марта.

Немного расскажу об используемых роботах. Общая архитектура этих программ основана на структуре robot_uralpro, но значительно усовершенствована в плане гибкости, что позволяет добавлять любой новый алгоритм без перестройки основного скелета робота, вплоть до опционных стратегий. Новый робот торгует валютным фьючерсом Si, но применяются некоторые элементы старого алгоритма robot_uralpro. Всего реализовано 3 стратегии на данный момент, в торгах принимают участие пока только две, третья не набрала достаточного количества статистики, так как медленнее остальных, поэтому только тестируется. Сделана диверсификация по параметрам для каждого алгоритма на 10 разных наборов, следовательно, торгуют одновременно как бы 20 роботов. Стратегии основаны на наблюдениях, сделанных при тестировании математических моделей, никаких ценовых паттернов не используется. Роботы подключены к бирже через Plaza2, колокейшена нет, выбран обычный хостинг с минимальным пингом до плазовских IP. На данный момент он равен 3 мс. Средний раундтрип заявок составляет около 10 мс. Эквити за один день — 23.03.2015 — на графике ниже. Выбрал, конечно, один из лучших:)



( Читать дальше )

теги блога uralpro

....все тэги



UPDONW
Новый дизайн