d9e5a92d

Борский Л. - Квазиарбитраж в МТ4

Леонид Борский - Стаж работы на рынке Forex с января 2006 года. В сферу его интересов также входят фьючерсные инструменты товарных и фондовых рынков.

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

ИНДИКАТОР для НЕСТАНДАРТНОЙ ТОРГОВЛИ

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

Мы, конечно, иногда можем поймать момент и повторить подобную операцию в MT4, например, открыть хедж (BUY 6А + SELL AUD/USD), но для нас такое будет возможно и целесообразно, скорее всего, только при сбоях котировочного аппарата сервера. Кроме того, значительный внутренний спред анализируемых инструментов не даст нам получить по сумме этих позиций итоговую приемлемую прибыль.
Однако у нас есть возможность торговать по методике Pairs trading, отслеживая схождение-расхождение цен разных, но однородных инструментов для выбора наилучшей точки входа. Возможности тут, по нашему мнению, достаточно большие. Эта тема мало обсуждалась на торговых форумах, и пока такая торговля является несколько экзотической.

Между тем, небольшие риски при правильной практической реализации вопроса делают данную методику достаточно привлекательной.
Pairs trading - торговля искусственного синтетического продукта, которая состоит из одновременной покупки одного и продажи другого инструментов. Корреляция между двумя этими инструментами не обязательна, но предполагается наличие коинтеграции.
Что такое коинтеграция?
Коинтеграция обозначает стационарную комбинацию нестационарных экономических переменных. В отличие от нестационарного временного ряда, стационарный ряд характеризуется тенденцией возвращаться к своему стационарному значению.
(monetarism.ru)
Бывает, что торговлю Pairs trading называют статистическим арбитражем, но, по мнению большинства специалистов, это не совсем правильно. Статистический арбитраж - это одновременно покупка всех (ну или почти всех) возможных недооцененных и продажа всех переоцененных инструментов. При статистическом арбитраже корреляция и даже коинтеграция между конкретными инструментами не очень важны.

Важна общая итоговая статистика. Нас же, при торговле по методике Pairs trading интересует, прежде всего, именно коинтеграция анализируемых инструментов.
Не пугайтесь! Ничего особо сложного здесь нет. Для начала предлагаем вашему вниманию пример реальной он-лайновой торговли в последние часы 2009 года.

Обратите внимание на окно индикатора с цветными линиями. Зеленая линия индикатора - линия цены пары GBP/JPY, синяя линия индикатора - линия цены пары GBP/CHF.

Входы в рынок (sell фунт/йена + buy фунт/франк) показаны стрелками.



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

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

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

Здесь возможны варианты. На приведенном выше графике видно, что при реализации описанных сделок через час-другой после входа, мы получили в итоге, что мизерный убыток сделки SELL GBP/JPY перекрылся значительной прибылью сделки BUY GBP/CHF.
Понятно, что для удобства такой торговли нужен индикатор, отображающий в одном окне линии движения цен двух или нескольких анализируемых инструментов. Предлагаем такой индикатор вашему вниманию. Вот его код:


//+------------------------------------------------------------------+
//| #KvaziArbitrage# | //| Copyright 2010, Leonid553 | //+------------------------------------------------------------------+
#property copyright Copyright 2010, Leonid553
#property link
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime //задаем цвет 1-го инструмента
#property indicator_color2 DodgerBlue //задаем цвет 2-го инструмента
extern
string
Symbol 1 =
‘FDAXH0
extern
string
Symbol 2 =
‘FTSEH0
extern
int
N1 = 10; extern
int
N2 = 10; extern
int
MA per =
21;
extern
int
MA fast =
13;
extern
int
ma method
= 2;
extern
int
Price = 6; //первый инструмент //второй инструмент
// Параметры МА
double Symbol1[]; double Symbol2[]; //---- buffers
//------------------------------------------------
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Symbol1);
SetIndexLabel(0,Symbol_1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Symbol2);
SetIndexLabel(1,Symbol_2);
return(0);
}
//---------------------------
int start()
{
l-R
int counted_bars = IndicatorCounted(); if(counted_bars0) return(-l); if(counted_bars0) counted_bars -= 10; int per1,per2; per1 = MA_per; per2 = MA_fast;
//------------------------------------------------------------
int limit=Bars - IndicatorCounted(); int k;
for(k = 0; k limit; k++)
{
Symbol1[k] = //задаем отрисовку линии первого инструмента (
iMA(Symbol_1,Period(),per2,0,ma_method,Price,
iBarShift(Symbol_1,0,Time[k],false))-iMA(Symbol_1,Period(),
per1,0,ma_method,Price,iBarShift(Symbol_1,0,Time[k],false)))*N1;
Symbol2[k] = //задаем отрисовку линии второго инструмента (
iMA(Symbol_2,Period(),per2,0,ma_method,Price,
iBarShift(Symbol_2,0,Time[k],false))-iMA(Symbol_2,Period(),
per1,0,ma_method,Price,iBarShift(Symbol_2,0,Time[k],false)))*N2;
}
//---------------задаем комментарий в окне индикатора----------------
string Delta = DoubleToStr(Symbol1[0]-Symbol2[0],2);
string info = Symbol_1+=+зел.линия+ +Symbol_2+=+син.линия+
Delta=+Delta+ ;
IndicatorShortName(info);
return(0);
} Из приведенного кода видно, что в одном окне индикатора отрисовываются линии движения цены инструментов, причем, каждая линия представляет собой разность двух значений индикатора Moving Avarage, а периоды MA мы задаем в окне СВОЙСТВА нашего индикатора. Это сделано для того, чтобы свести отображение линий анализируемых инструментов к общему знаменателю относительно нулевого уровня шкалы.

А для более корректного отображения линий инструментов с разной размерностью относительно друг друга в СВОЙСТВАХ индикатора предусмотрены коэффициенты N1 и N2.
Например, для описанного выше примера (SELL GBP/JPY + BUY GBP/CHF) следует задать N1 = 10; N2 = 1000. Т.е. этими коэффициентами мы как бы искусственно уравниваем их размерность.

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

Без такой синхронизации работа индикатора была бы не очень корректной.
В СВОЙСТВАХ индикатора предусмотрено изменение задаваемых линий МА параметрами:
ma method
Метод усреднения
Значение
Описание
MODE_SMA
0
Простое скользящее среднее
MODE EMA
1
Экспоненциальное скользящее среднее
MODE SMMA
2
Сглаженное скользящее среднее
MODE_LWMA
3
Сглаженное скользящее среднее
MA Price
Используемая цена
Значение
Описание
PRICE_CLOSE
0
Цена закрытия
PRICE_OPEN
1
Цена открытия
PRICE_HIGH
2
Максимальная цена
PRICE_LOW
3
Минимальная цена
PRICE_MEDIAN
4
Средняя цена, (high+low)/2
PRICE_TYPICAL
5
Типичная цена, (high+low+close)/3
PRICE_WEIGHTED
6
Взвешенная цена закрытия, (high+low+close+close)/4
На следующем графике приведен пример анализа движения линий индексов YM (мини ДОУ - зелёная) и МО_(Насдак - синяя). На тайм-фрейме H1 мы видим, по меньшей мере, две очевидные возможности хороших входов тандема (YM + NQ). Входы показаны красными стрелками.

Хорошо видно, что первый вход - это (SELL YM + BUY NQ). Второй вход (справа), наоборот - (BUY Ym + SELL NQ).

Коэффициенты в СВОЙСТВАХ индикатора для этого тандема выставлены следующие: N1=10, N2=50.
В обоих случаях, после входа прибыль одного инструмента растет быстрее, чем убыток другого. Нам, по сути, все равно, в какую сторону пойдет цена, лишь бы продолжалось начавшееся схождение линий.



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

Например, для тандема FDAX(Дакс) + FTSE(Футси) опытным путем было определено отношение размеров лотов 1.2:3 соответственно.
Для описываемой методики торговли Pairs trading очень важно правильно учесть соотношение размеров открываемых позиций. Если для тандема сырьевых фьючесов CL+BRN размеры можно взять одинаковые, то для инструментов с разной размерностью необходим скрупулезный расчет величины лотов (контрактов).
) + SI (серебро).
(золото
Следующий пример - движение ценовых линий на фьючерсной паре GC
Самые интересные ситуации для анализа приходятся на участки максимального расхождения линий фьючерсов и точки пересечения этих линий. Причем, если входы могут быть реализованы при максимальном расхождении линий, то закрытие позиций - в точках пересечения этих линий.

Эти точки показаны стрелками.


В заключение, приведем пример графика зерновых фьючерсов. Здесь, на графике H1, очень наглядно наблюдаются неплохие входы sell ZW + buy ZS (показаны красными стрелками) и последующее закрытие позиций в точке схождения (пересечения) линий.

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



Содержание раздела