Избранное трейдера Виктор Громов
Доклад «Оптимизация портфеля алгоритмических стратегий»
1. Введение
В чем состоит цель подобной оптимизации? Представим, что у нас есть набор алгоритмов, каждый из которых обладает некоторыми статистическими свойствами, из которых наиболее важными для нас являются доходность и максимальная величина просадки. В основе каждого из алгоритмов лежат разные стратегии, которые, тем не менее, могут быть коррелированы между собой в разной степени, торговля также может вестись на разных инструментах. В качестве примера приведу характеристики стратегий, которые были разработаны нашей командой и применяются в боевых торгах в настоящее время:
Так как свойства каждого из алгоритмов отличаются, возникает проблема: каким образом распределить между ними доступный капитал для того чтобы:
1. Максимизировать доход при заданном уровне риска ( то есть максимальной величине просадки)
2. Минимизировать риск при заданной доходности
Если дать, например равные доли капитала каждому алгоритму, то, очевидно, что такое распределение не будет оптимальным, так как мы не учитываем характеристики, присущие стратегиям. Не будет оптимальным и тот случай, когда мы, например, выделяем капитал пропорционально относительной доходности каждого алгоритма, здесь мы игнорируем значения волатильности, то есть риска, стратегий.
2. Модель Марковица
Задачу оптимизации попробуем решить, применив теорию оптимального портфеля, разработанную Марковицем, точнее некоторые последующие ее модификации. Обычно данная теория применяется для долгосрочного инвестиционного портфеля, состоящего из различных активов, например акций. Кратко суть теории.
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python.
Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между временными сериями (в данном случае возьмем в качестве сигнала взаимный фонд XLF из финансового сектора, сдвинутый по времени на 1 день назад), а нашей целью будет фьючерс S&P500 в форме CFD. Будем входить в длинную позицию по этой бумаге при нулевой вероятности приращения. Логически нулевая вероятность ни о чем не говорит, другими словами, будем покупать возврат к среднему.
1. Получение данных
Y = read_mongo(dbase, "S&P5001440") X = read_mongo(dbase, syms[s]).shift() #готовим набор данных res = pd.concat([X.CLOSE, Y.CLOSE], axis=1, join_axes=[X.index]).pct_change().dropna() res.columns = ['X', 'Y']
Начинаю разработку бесплатного майнера паттернов — второй версии. Пока собираюсь с мыслями и готовлю возможную архитектуру. К лету начну работы.
За последние пару лет его скачали больше 10 к. человек. Уважаемые пользователи, пишите, что бы Вы хотели ещё в нём увидеть. В пост, мне на почту, на домашний форум программы. Буду расширять список изменений.
Для всех остальных, небольшой обзор программы. С чего всё начиналось и что есть сегодня.
Stock Pattern Viewer — Уникальная программа для автоматического анализа котировок на предмет формализуемых паттернов и сбора статистики по ним. Data Mining с человеческим лицом.
Программа полезна в качестве станции поиска формаций для системного трейдинга.
Вчера на СмартЛабе был размещен пост Как построить корреляционную матрицу (для парной торговли) в Excel, собравший аж 150 "+".
Решил тоже попрактиковаться и написать под эту задачу код в R. Важным преимуществом R является наличие пакета rusquant, который позволяет автоматически получать котировки с Финам в любом таймфрейме (в т.ч. в тиках), что существенно экономит время по сравнению с ручной обработкой в Excel.
Код на R приведен ниже:
Результаты:
Рыночно нейтральный трейдинг - группа инвестиционных стратегий, доходность которых не зависит от общего направления движения рынков.
Специфика рыночно нейтральных стратегий в том что трейдер одновременно покупает один инструмент и продает другой инструмент. Нейтральность к рынку достигается именно тем что в портфеле одновременно у инвестора позиция по одному инструменту long а по второму short
На сегодняшний день мы можем выделить четыре основных типа рыночно-нейтральных стратегий
Арбитраж
Парный трейдинг
Баскет трейдинг
Торговля волатильностью