icustom ZigZag - страница 4

 

Привет всем,

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

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

Чтобы получить другие значения, нужно добавить этот код в советник.

Обратите внимание, что цикл начинается с i=2, 10000 - это количество максимумов или минимумов, которое вам нужно, 10.000 - это просто пример.

Значения будут сохранены в массиве temp, в котором

Позиция 0 сохраняет последний максимум или минимум, построенный на графике, позиция 1 сохраняет предыдущий максимум или минимум и так далее...

for(int i=2;i<10000;i++)

{

zo=iCustom(Symbol(),PERIOD_M15, "ZigZag",0,i);

if(zo!=0) // пока ZigZag не достиг более высокого максимума, или пока не выполнены условия deapth, deviation, etc, индикатор ZigZag равен нулю, поэтому нам нужно отфильтровать эти пустые значения.

{

temp[k]=zo; // максимумы и минимумы сохраняются в массиве temp[]

k++;

}

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

if (Ask>temp[0]) означает, что последнее значение было низким, поэтому для получения расстояния нужно просто сделать last_wave=Ask-temp[0]

иначе означает, что последнее значение было высоким, чтобы получить расстояние, сделайте last_wave= temp[0]-Ask

если вам не нужно знать, было ли это низкое или высокое значение, и вам просто нужно расстояние, то вы просто делаете last_wave= MathAbs(Ask-temp[0]) (расстояние всегда положительно, не так ли? ;) )

вот и все, надеюсь, помогло.

удачи в программировании!

 
Sigur:

Привет всем,

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

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

Чтобы получить другие значения, нужно добавить этот код в советник.

Обратите внимание, что цикл начинается с i=2, 10000 - это количество максимумов или минимумов, которое вам нужно, 10.000 - это просто пример.

Значения будут сохранены в массиве temp, в котором

Позиция 0 сохраняет последний максимум или минимум, построенный на графике, позиция 1 сохраняет предыдущий максимум или минимум и так далее...

<КОД УДАЛЕН>

Пожалуйста, прочитайте другие сообщения, прежде чем писать. ... .

Пожалуйста, отредактируйте ваше сообщение ... пожалуйста, используйте кнопкуSRC для размещения кода:Как использовать кнопку SRC.

 
RaptorUK:

Пожалуйста, прочитайте другие сообщения, прежде чем писать... .

Пожалуйста, отредактируйте свое сообщение ... пожалуйста, используйте кнопкуSRC для размещения кода:Как использовать кнопку SRC.



Уважаемый Raptor,

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

Но если вы не считаете мое сообщение полезным, вы всегда можете удалить его, вы же модератор, верно? ;)

 
Sigur:


Уважаемый Raptor,

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

Итак, вы прочитали другие сообщения, но все равно опубликовали код в виде обычного текста, почему? Вы перешли по ссылке, которую я опубликовал?Как использовать кнопку SRC. Вы понимаете, почему я попросил вас отредактировать ваше сообщение?
 
Sigur:


Уважаемый Raptor,

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

Но если вы не считаете мой пост полезным, вы всегда можете удалить его, вы же модератор, верно? ;)


Смотрите https://www.mql5.com/en/code/10920

то же самое, что и ZigZag

первый буфер обычный ZigZag

с последними двумя буферами у вас есть максимумы и минимумы.

 
Спасибо Raptor, действительно пропустил этот пост, это даже облегчает задачу!
 
Sigur:
Спасибо Raptor, действительно пропустил этот пост, это даже облегчает задачу!
И все же вы до сих пор не отредактировали свое сообщение...
 
Hallo, я пытаюсь использовать индикатор zig zag, как это сделали вы. Должен ли я как-то определить этот индикатор, прежде чем использовать его? Он уже есть в mql4, как rsi и многое другое?
 
qjol:

Здравствуйте, gjol,


подскажите пожалуйста, как получить стохастическое значение из зигзагообразной цены p0,p1,p2,p3,p4,p5?


int n, i, 
   double p0, p1, p2, p3, p4, p5;
   i=0;
      while(n<5)
      {
      if(p0>0) {p5=p4; p4=p3; p3=p2; p2=p1; p1=p0; }
      p0=iCustom(Symbol(),0,"zigzag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(p0>0) {n+=1; }
      i++;
      }
 
Abdelrahman Abdelgaied Mahmoud:

а если я хочу узнать три последних значения?

Тогда читайте дальше, чтобы узнать следующие два значения.

Причина обращения: