язык R


Эксперименты на языке R

Сделал квази-онлайн вывод цен в скрит на языке R, без использования dll.  R позволяет проводить разнообразный анализ ценовых рядов, проверять доходность стратегий, строить необходимые графики. На 1мин графике фьючерса на Сбербанк, первые 30 значений.  Кроме цены клоз на картинке показаны линии 5-ти кластеров, параллельных оси времени и коричневая линия тренда и наклонными линиями канала, отстоящими на 1 и 2 стандартных отклонения. Ширина этих каналов изменяется с учетом волатильности. Наклонными синими линиями,  отмечен канал 0,5 SD без учета волы.


Боковое движение
Начало трендового движения



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

Паритет опционов Put и Call, моделируем на языке R

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

Зачем нам язык R?


А зачем нам вообще нужен язык R? Строго говоря, он нам не нужен. Но если его освоить, он становится просто еще одним удобным инструментом, как калькулятор или Excel. В прошлой статье были комментарии о том, что лучше использовать C# или Python. Да, я совершенно согласен, именно их и нужно использовать для программирования законченной и оттестированной модели. Но для разработки модели, для экспериментов и для обучения, R подходит как нельзя лучше. Когда строят самолеты, сначала делают деревянный макет, вот для таких макетов и будем использовать R, чтобы убедиться, что взлетит и не тратить силы зря на то, что летать не будет.



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

Подбрасываем монетку с помощью языка R

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


На СЛ я часто замечаю, как умные и опытные люди моделируют или вычисляют всё в экселе. Это тоже отличный инструмент, но я думаю им стоит обратить внимание на язык R и попробовать, ничего сложного, как оказалось, там нет. Конечно какие-то базовые навыки программирования всё же потребуются.


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

Настройка среды для запуска R

Сразу хочу сказать, что ничего сложного в настройке нет. Нужно скачать пару файлов и последовательно их установить. Никаких особых настроек и сложных выборов, качаем и ставим, всё заработает.



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

Расчет бета-коэффициентов на R двумя способами

Посчитал беты акций своего инвест. портфеля двумя способами — с помощью пакета PortfolioAnalytics и через линейную регрессию с индексом ММВБ. Результаты расчетов совпали. 

Затем я составил таблицы для бет, взяв две истории — с 2012 года по настоящее время и с 2015.

Таблицы

Расчет бета-коэффициентов на R двумя способами
С 2012 г.

Расчет бета-коэффициентов на R двумя способами
C 2015 г.

Видно, что Роснефть и Норникель бегают за рынком. ФосАгро, Акрон и банк Открытие не зависят от рыночных настроений.

Код на R:



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

Оптимизация портфеля на R

На 25% счета я стараюсь максимизировать доходность за счет активной торговли, а на 75% — минимизировать риск. И делаю ребалансировку между ними. Во вторую часть входит портфель акций, облигации и валюта.

Так получилось, что мой портфель акций сейчас состоит из следующих эмитентов:

(«BANE», «ALRS», «TGKA», «GMKN», «RUALR», «PHOR», «AKRN», «ROSN», «OFCB»)

Причин этому несколько — требование высокой ликвидности, хорошего роста за последние годы, маленькое среднеквадратичное отклонение доходностей. Есть также диверсификация по секторам: нефть, алмазы, электрогенерация, металлы, удобрения, банк.

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

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

Машинное обучение для улучшения вашей стратегии

ml-strategy-techniques-1

Предлагаю перевод интересной статьи с сайта www.inovancetech.com о нетрадиционном применение техник машинного обучения: Machine Learning Techniques to Improve Your Strategy.

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

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

Как улучшить управление позицией

Управление позицией — это очень важный аспект трейдинга, которому часто не уделяется должное внимание. Многие трейдеры смотрят на управление позиции с точки зрения уменьшения риска убытков, но не инструмента увеличения прибыльности стратегии. Конечно важно избегать большого риска, используя небольшую часть торгового счета ( не более 2%) в каждой сделке, но лучший способ — это применение фиксированного лота или фиксированного процента от вашей максимальной позиции для каждого трейда.



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

Корреляция и структура корреляции

correlation_structure1_1

Интересные соображения по поводу вычисления правильной корреляции изложил в своем блоге Eran Raviv. По моему мнению данный подход можно попробовать использовать в статистическом арбитраже и парном трейдинге. Ниже даю полный перевод статьи с кодом на языке R.

В случае постоянной скорости, время и расстояние полностью коррелированы. Дайте мне одну переменную, я дам вам другую. Когда две переменные не имеют ничего общего между собой, мы говорим, что они не коррелированы.

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



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

Введение в машинное обучение. Часть 2

blogML2Main

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

Что представляет собой наивный байесовский классификатор (НБК)?

НБК старается найти вероятность события А при условии, что событие В уже произошло, обзначаемую как Р(А|B) (вероятность А при условии В).

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



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

Введение в машинное обучение. Часть 1

goog1m

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

В этой серии статей мы рассмотрим построение и тестирование простой стратегии машинного обучения. В первой части отметим основные принципы машинного обучения и их применение к финансовым рынкам.

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

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

  • Регрессия: используется для предсказания направления и амплитуды исследуемой величины. Например, цена акций Гугл возрастет на 7 долларов на следующий день.
  • Классификация: используется для предсказания категории, например, направления движения цены акций Гугл на следующий день.


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

....все тэги
UPDONW