Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
insat
59
insat  
Помогите немного изменить индикатор. Он измеряет длину линий построенных зигзагом. (прилагаю ниже). Но для измерений он использует параметры в процентах, а нужно в пунктах. Помогите, кто нибудь может изменить? mt4.
Файлы:
Vladimir Karputov
Модератор
58803
Vladimir Karputov  
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
7288
Alexey Kozitsyn  
barabashkakvn:

Вот:

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

Вот:

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

Vladimir Karputov
Модератор
58803
Vladimir Karputov  
insat:

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

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

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

 1

insat
59
insat  
barabashkakvn:

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

 

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

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

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

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

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

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

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

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