Начало » MetaTrader, MQL » Выход люстры для Metatrader 4

Согласно стратегии «Выхода Люстры» стоп размещается на расстоянии нескольких ATR (средних истинных диапазонов) от самой высокой точки рынка или от самого высокого закрытия бара, которые были зафиксированы с момента открытия позиции. Ввиду того, что максимумы перемещаются только вверх, то и наш стоп либо перемещается вслед за ценой либо остается на месте.

Предлагаю вашему вниманию индикатор, который прямо на графике рисует уровни для установки трейлинг-стопов. Вот код индикатора на MQL для Metatrader 4.


//+------------------------------------------------------------------+
//| ChandelierExit.mq4 |
//| MQLService |
//| scripts@mqlservice.com |
//+------------------------------------------------------------------+
//mod2008fxtsd
#property copyright "MQLService"
#property link "scripts@mqlservice.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Orange
#property indicator_color2 Magenta
//#property indicator_color3 Blue
//#property indicator_color4 Red

//---- input parameters
extern int Range=7;
extern int Shift=0;
extern int ATRPeriod=9;
extern double ATRMultipl=2.5;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double direction[];
double ATRvalue;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators

IndicatorBuffers(5);

SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);

SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);

SetIndexBuffer(2,ExtMapBuffer1);
SetIndexBuffer(3,ExtMapBuffer2);
SetIndexBuffer(4,direction);

//SetIndexStyle(2,DRAW_LINE);
//SetIndexStyle(3,DRAW_LINE);
//SetIndexEmptyValue(2,0.0);
//SetIndexEmptyValue(3,0.0);

string shortnme;
shortnme = "("+Range+",ATR("+ATRPeriod+","+DoubleToStr(ATRMultipl,2)+") ";

IndicatorShortName("Chandelier "+shortnme);
SetIndexLabel(0, "Chandlr "+shortnme);
SetIndexLabel(1, "Chandlr "+shortnme);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+

int start()
{
int limit, counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)
{
ExtMapBuffer1[i]= EMPTY_VALUE; ExtMapBuffer2[i]= EMPTY_VALUE;

ATRvalue=iATR(NULL,0,ATRPeriod,i+Shift)*ATRMultipl;
ExtMapBuffer1[i]=High[Highest(NULL,0,MODE_HIGH,Range,i+Shift)] -ATRvalue;
ExtMapBuffer2[i]=Low[Lowest(NULL,0,MODE_LOW,Range,i+Shift)] +ATRvalue;
ExtMapBuffer3[i]= EMPTY_VALUE; ExtMapBuffer4[i]= EMPTY_VALUE;
direction[i] =direction[i+1];

if(Close[i]>ExtMapBuffer2[i+1]) direction[i] = 1;
if(Close[i]

if(direction[i]>0)
{
if (ExtMapBuffer1[i]< ExtMapBuffer1[i+1])
ExtMapBuffer1[i]=ExtMapBuffer1[i+1];
ExtMapBuffer3[i]=ExtMapBuffer1[i];
ExtMapBuffer4[i]=EMPTY_VALUE;
}

if (direction[i]<0)
{
if (ExtMapBuffer2[i]>ExtMapBuffer2[i+1])
ExtMapBuffer2[i]=ExtMapBuffer2[i+1];
ExtMapBuffer4[i]=ExtMapBuffer2[i];
ExtMapBuffer3[i]=EMPTY_VALUE;
}
}
return(0);
}
//+------------------------------------------------------------------+

Вот такой индикатор  для Форекс мы получаем в результате:

Выход люстры для Metatrader

Уровни для стопов отображаются прямо на графике - это удобно и наглядно.

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

Скачать индикатор «Выход люстры» для Metatrader.

Метки: ,

6 коммент. to “Выход люстры для Metatrader 4”

  1. Valentin 17.06.2010

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

    Ответить
    • Пожалуйста. Я тоже использую этот выход для торговли на дневках, это один из моих самых любимых трейлинг-стопов. Также хочу порекомендовать вам посмотреть выход по CCI, можно до того, как CCI достигнет 100 использовать выход люстры, а затем переходить к более агрессивной методике стопов, думаю, такая тактика лучше будет работать для краткосрочной торговли, например, на часовках.

      Ответить
  2. Raz-Dva 01.08.2010

    Вроде как есть ошибки в коде. строка 97: if(Close[i]0)
    тут наверное >0 ?
    индикатор не отображается вообще=(

    Ответить
  3. Raz-Dva 01.08.2010

    при !=0 что то есть, но как то косячно. не могли бы сам файл скинуть?

    Ответить
  4. Raz-Dva, спасибо, что нашел ошибку. При подсветке кода исходный код выводится с ошибкой, попытался исправить, но пока не получилось.
    Закачал код индикатора в архиве, ссылка в конце статьи.

    Ответить
  5. Cartman 03.12.2010

    спасибо за хороший индикатор. А что означают в настройках параметры индикатора сдвиг и диапазон?

    Ответить

Написать комментарий