Активируйте JavaScript для полноценного использования elitetrader.ru Проверьте настройки браузера.
Баскет трейдинг или Как находить и торговать зависимости инструментов » Элитный трейдер
Элитный трейдер
Искать автора

Баскет трейдинг или Как находить и торговать зависимости инструментов

Открыть фаил
24 октября 2017 Trade Like A Pro
В продолжение темы арбитража, сегодня мы рассмотрим вариант портфельной торговли – “баскет трейдинг”. В отличие от парной торговли, баскет трейдинг предполагает торговлю целой корзиной взаимосвязанных инструментов. Главное преимущество данного метода — создание рыночно-нейтрального портфеля, который позволяет зарабатывать на любом состоянии рынка, независимо от его конкретного направления.

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

Идеальный портфель

Простейший способ построения портфеля – собрать группу недооцененных инструментов в расчете на их рост. Это могут быть акции, валютные пары, инвестиционные счета и, в целом, что угодно. Один из таких примеров – портфель Уоррена Баффета. В целом, к примерам можно отнести многие индексы, состав которых периодически меняется для поддержания роста кривой.

Баскет трейдинг или Как находить и торговать зависимости инструментов


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

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



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

Подобный график мы можем получить, отняв от цены инструмента его же скользящую среднюю. То есть цена инструмента + его средняя представляют собой идеальный рыночно-нейтральный портфель. Проблема в том, что мы не можем торговать по средней.

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

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

Комплекс Recycle

Комплекс индикаторов Recycle дальше всех продвинулся в решении задачи нахождения идеального портфеля активов. Программа получает на вход произвольное количество временных рядов (валютных пар, акций, индексов…) и дает на выходе готовый портфель с наименьшей дисперсией (самым узким графиком). Другими словами, регулируя долю каждого инструмента в портфеле, мы получаем самый плоский, из возможных, график. Зачем нам это нужно ?

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



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

Всего в комплект входит несколько подпрограмм:



Recycle2 – непосредственно индикатор, показывающий динамику движения синтетика и значения корреляционных коэффициентов (величин взаимосвязи) в портфеле;
RecycleShadow2 – дополнительный советник, позволяющий смотреть динамику синтетика на истории (запускать перед Recycle2);
RecycleHistory – скрипт для подкачки истории. Нужен для отображения прошлой истории по инструменту (можно запускать в любой момент);
RecycleProfit – отображает динамику спреда в деньгах. На этот график можно ориентироваться при расчете потенциальной прибыли. Также в этом окне показаны расчетные лоты для создания нейтральной позиции.

Подготовка к работе

Сперва скачайте и откройте прикрепленный к статье архив — там находятся файлы исходных кодов для трех программных комплексов. Нас же интересует папка «Recycle 2».



Дальше, нужно открыть каталог данных терминала. Делается это через Файл — Открыть каталог данных.



Теперь в открывшееся окно нужно перенести файлы из каталога «Recycle 2».



Для отображения графика синтетика на истории, первым нужно запустить EXP_RecycleShadow2. Без него рассчитываться будет только значение текущего бара.



После этого запускием сам Recycle.



Основные параметры индикатора Recycle:
SymbolStr – список инструментов (через запятую) для расчета синтетика. В качестве инструментов имеет смысл указывать только мажорные пары или любые инструменты, не имеющие жесткой математической зависимости. То есть для поиска зависимостей не имеет смысла указывать кроссы;
Depth – кол-во баров для расчета синтетика;
Method – способ построения синтетика. Метод под номером 4 считается самым оптимальным.



Например, запустив Recycle для инструментов EURUSD, GBPUSD и USDCHF вы получите подобную картину. Recycle сразу распределил весовые коэффициенты между инстурментами портфеля за обозначенный период (Depth), однако график динамики синтетика в прошлом все еще недоступен.



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



Стоит учитывать, что специфика алгоритма позволяет с легкостью находить прямые взаимосвязи инструментов – на скрине видно равное распределение капитала между EURUSD, GBPUSD и EURGBP. Из-за того, что между тремя инстурментами существует прямая взаимосвязь, то есть, курс любого из них можно легко вычислить из других двух (например: EURGBP = EURUSD / GBPUSD), капитал поровну распределился между парами треугольника, ничего не оставив остальным.



Именно поэтому в качестве инструментов нет смысла указывать кросс-курсы, так как те элементарно вычислить из мажорных пар. То есть портфель из двух мажоров и их кросса будет самым узким из возможных, но это уже тема классического арбитража, а не статистическая зависимость.

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



Другими словами, необходимо периодически пересчитывать доли инструментов в портфеле, снова приводя график синтетика к “канальному” виду. Разумеется, для этого нужно корректировать уже имеющуюся в рынке позицию. То есть, если доля инструмента уменьшилась с 0.5 до 0.1 лота, для приведения синтетика к балансу необходимо закрыть 0.4 лота текущей позиции.

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

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

Как торговать

Recycle. Чтобы повторить график полученного портфеля, достаточно открыть позиции указанного размера (в окне RecycleProfit) по всем инструментам. Эквити полученных позиций будет соответствовать графику нашего синтетического инструмента. Такая операция будет эквивалентна покупке инструмента. Для продажи синтетика позиции необходимо перевернуть.

Например, мы указали на вход 3 инструмента: EURUSD, GBPUSD и AUDUSD. По результатам расчета наименьшее влияние в портфеле имеет AUDUSD – на него приходится наименьшее количество капитала. Для покупки полученного синтетика нам нужно продать 0.34 лота по EURUSD, 0.18 лота по AUDUSD и купить 0.35 лота по GBPUSD. Здесь главное сохранять пропорции, фактически количество лотов может быть любым.



Так как мы изначально ставили задачу создать максимально флэтовый портфель, суть торговли крайне проста – покупаем дешево, продаем дорого. То есть стратегия, аналогичная торговле от границ канала. За границы канала можно брать размер стандартного отклонения (синие линии на графике Recycle) или Полосы Боллинджера.

Помимо Recycle, существуют и другие работы, решающие подобные задачи. Поэтому, далее кратко рассмотрим аналогичные проекты от других авторов.

PCA Synthetics. По сути, это попытка портирования индикатора Recycle для терминала MT5 под названием PCA Synthetics. Индикатор решает аналогичную задачу – создание нового синтетического инструмента на основе данных временных рядов с наименьшей общей дисперсией, то есть создание коинтегрированного портфеля.

В правом верхнем углу индикатора отсортированы инструменты по величине весовых коэффициентов. Для покупки синтетика покупаем валюту с положительным коэффициентом и продаем с отрицательным. Для продажи – наоборот.



Параметры индикатора:



InpVector – принимает значения от 0 до N-1 (N = количество символов). Чем больше значение, тем меньше дисперсия портфеля;
InpFrame – размер плавающего окна для расчета синтетика;
InpDepth – глубина истории для расчета;
InpForward – форвард период для проверки стабильности оптимизированных коэффициентов;
InpMaPeriod – период сглаживания;
InpTimePeriod – исходный таймфрейм;
InpSynthetics – отрисовка каждой пары отдельной линией;
InpPrices – способ нормализации значений;
InpSymbols – инструменты для коинтегрированного портфеля;
InpMagic – название индикатора для упрощения идентификации на графике.

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



Размер позиций для открытия отображается в верхнем левом углу окна индикатора.



Индикатор идет в паре с советником Portfolio Manager. Запустите советник и укажите желаемое название портфеля в графе Portfolio_Name. В правом верхнем углу индикатора появятся кнопки для торговли. Кнопки BUY и SELL одновременно открывают позиции нужного размера по всем инструментам, а CLOSE закрывает позицию портфеля. В этом случае, открытие портфельной позиции происходит в полуавтоматическом режиме.



Заключение

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

http://tradelikeapro.ru/ (C)
Не является индивидуальной инвестиционной рекомендацией | При копировании ссылка обязательна | Нашли ошибку - выделить и нажать Ctrl+Enter | Отправить жалобу