Скачать MetaTrader 5

Помогите немного изменить индикатор

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Проявляй активность в сообществе. Увеличивай ленту достижений!
insat
59
insat 2015.02.19 14:24 
Помогите немного изменить индикатор. Он измеряет длину линий построенных зигзагом. (прилагаю ниже). Но для измерений он использует параметры в процентах, а нужно в пунктах. Помогите, кто нибудь может изменить? mt4.
Файлы:
Vladimir Karputov
Модератор
45584
Vladimir Karputov 2015.02.20 08:46  
insat:
Помогите немного изменить индикатор. Он измеряет длину линий построенных зигзагом. (прилагаю ниже). Но для измерений он использует параметры в процентах, а нужно в пунктах. Помогите, кто нибудь может изменить? mt4.

Вот:

//+------------------------------------------------------------------+
//|                                                  zzleglength.mq4 |
//|                            Copyright © 2009, Stephen Ambatoding. |
//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property copyright "Copyright © 2009, Stephen Ambatoding."
#property link      "sangmane@forexfactory.com"

#property indicator_chart_window

extern int varExtDepth=12;
extern int varExtDeviation=5;
extern int varExtBackstep=3;
extern int History=1000;
extern color FontColor=Yellow;

double Pip;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5) Pip = 10*Point;
   else Pip = Point;
   IndicatorDigits(Digits+1);
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   string ObjName;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      ObjName=ObjectName(i);
      if(StringFind(ObjName,"ZZLabel",0)>=0)
         ObjectDelete(ObjName);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i,k,limit,counted_bars=IndicatorCounted();
   limit=MathMin(History,Bars-counted_bars-1);
   double zz;
   for(i=limit; i>=0; i--)
     {
      k=i;
      double d1=0,d2=0,d3=0;
      datetime t1=0,t2=0,t3=0;
      while(k<Bars-2)
        {
         zz=iCustom(NULL,0,"ZigZag",varExtDepth,varExtDeviation,varExtBackstep,0,k);
         if(zz!=0)
           {
            d1 = d2; d2 = d3; d3 = zz;
            t1 = t2; t2 = t3; t3 = Time[k];
           }
         if(d1>0) break;
         k++;
        }
      if(d1==0) continue;
      double LabelPos;
      int ib=iBarShift(NULL,0,t2);
      if(d2>d3)
         LabelPos=NormalizeDouble(High[ib]+0.2*iATR(NULL,0,10,ib),Digits);
      else
         LabelPos=NormalizeDouble(Low[ib]-0.2*iATR(NULL,0,10,ib),Digits);
      string ObjName="ZZLabel_"+TimeToString(t1);
      if(ObjectFind(ObjName)<0)
        {
         ObjectCreate(ObjName,OBJ_TEXT,0,t2,LabelPos);
         ObjectSetText(ObjName,DoubleToStr(MathAbs(d3-d2)/Pip,0),8,"Arial",FontColor);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Alexey Kozitsyn
6378
Alexey Kozitsyn 2015.02.20 09:53  
barabashkakvn:

Вот:

Повезло нам с модератором, в англоязычной части форума модераторы в джобу шлют сразу...)
insat
59
insat 2015.02.20 11:43  
barabashkakvn:

Вот:

только он также в процентах работает...

Vladimir Karputov
Модератор
45584
Vladimir Karputov 2015.02.20 12:33  
insat:

только он также в процентах работает...

Возьмите, пожалуйста калькулятор. На график прикрепите индикатор ZigZag(12,5,3) и проверьте разницу между ближайшими вершинами.
Maria Baburina
2512
Maria Baburina 2015.02.20 12:55  
Какие проценты, там же обыкновенные пункты пишет от дна к вершине. Может имеется ввиду что нужен четырехзнак..
Vladimir Karputov
Модератор
45584
Vladimir Karputov 2015.02.20 12:59  

Вот для сравнения на картинке видны значения индикатора ZigZag (в окне "Окно данных") и показания индикатора.

 1

insat
59
insat 2015.02.20 15:08  
barabashkakvn:

Вот для сравнения на картинке видны значения индикатора ZigZag (в окне "Окно данных") и показания индикатора.

 

спасибо огромное, что пытаетесь мне помочь, извините, я просто не точно выражаюсь.. 

Я имею ввиду, что мне нужно модернизировать этот индикатор, чтобы в настройках отображалось не (12.5.3.), а значение, с каким интервалом строить отрезки ( в пунктах ).

Например, в параметрах я устанавливаю минимальную длину волны 200 пунктов. Тренд движется вниз, условно прошел вниз 500 пунктов, индикатор понимает и рисует линию, как только тренд в противоположную сторону (наверх) пройдет минимум 200 пунктов. Как только тренд прошел в противоположную сторону минимум 200 пунктов, индикатор считает его полноценной волной и тренд может идти дальше вверх, пока опять же не пройдет в противоположную сторону минимум 200 пунктов.

insat
59
insat 2015.02.20 15:12  
У меня есть модифицированный индикатор зигзаг. Он строит линии по пунктам. Например, в параметрах я устанавливаю минимальную длину волны 200 пунктов. Тренд движется вниз, условно прошел вниз 500 пунктов, индикатор понимает и рисует линию, как только тренд в противоположную сторону (наверх) пройдет минимум 200 пунктов. Как только тренд прошел в противоположную сторону минимум 200 пунктов, индикатор считает его полноценной волной и тренд может идти дальше вверх, пока опять же не пройдет в противоположную сторону минимум 200 пунктов. И так до бесконечности... тренд вверх, пока в противоположную не пройдет 200 и т.д. Тут все хорошо, индикатор работает как нужно, меня все устраивает ( прилагаю его ниже ). НО! Вот в какой помощи я нуждаюсь, мой индикатор нарисовал мне огромное кол-во линий (волн), мне для моей стратегии приходиться их вручную, перекрестием измерять (кол-во пипсов). Было бы просто великолепно, если бы был какой то способ, чтобы это измерение происходило в автоматическом режиме и рядом с линией оставляло пометки с длиной (в пипсах, пунктах..). 
Файлы:
Vladimir Karputov
Модератор
45584
Vladimir Karputov 2015.02.20 15:42  
insat:

спасибо огромное, что пытаетесь мне помочь, извините, я просто не точно выражаюсь.. 

Я имею ввиду, что мне нужно модернизировать этот индикатор, чтобы в настройках отображалось не (12.5.3.), а значение, с каким интервалом строить отрезки ( в пунктах ).

Например, в параметрах я устанавливаю минимальную длину волны 200 пунктов. Тренд движется вниз, условно прошел вниз 500 пунктов, индикатор понимает и рисует линию, как только тренд в противоположную сторону (наверх) пройдет минимум 200 пунктов. Как только тренд прошел в противоположную сторону минимум 200 пунктов, индикатор считает его полноценной волной и тренд может идти дальше вверх, пока опять же не пройдет в противоположную сторону минимум 200 пунктов.

insat:
У меня есть модифицированный индикатор зигзаг. Он строит линии по пунктам. Например, в параметрах я устанавливаю минимальную длину волны 200 пунктов. Тренд движется вниз, условно прошел вниз 500 пунктов, индикатор понимает и рисует линию, как только тренд в противоположную сторону (наверх) пройдет минимум 200 пунктов. Как только тренд прошел в противоположную сторону минимум 200 пунктов, индикатор считает его полноценной волной и тренд может идти дальше вверх, пока опять же не пройдет в противоположную сторону минимум 200 пунктов. И так до бесконечности... тренд вверх, пока в противоположную не пройдет 200 и т.д. Тут все хорошо, индикатор работает как нужно, меня все устраивает ( прилагаю его ниже ). НО! Вот в какой помощи я нуждаюсь, мой индикатор нарисовал мне огромное кол-во линий (волн), мне для моей стратегии приходиться их вручную, перекрестием измерять (кол-во пипсов). Было бы просто великолепно, если бы был какой то способ, чтобы это измерение происходило в автоматическом режиме и рядом с линией оставляло пометки с длиной (в пипсах, пунктах..). 
Простите, ничего не понял. Я пас.
insat
59
insat 2015.02.20 16:00  
barabashkakvn:
Простите, ничего не понял. Я пас.
спасибо и на этом, что попытались помочь! Удачи Вам! 
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий