icustom ZigZag - página 4

 

Hola a todos,

He estado buscando una respuesta también de cómo obtener esos valores altos y bajos del indicador ZigZag. Como no he dado con la solución, lo he programado yo mismo, y lo comparto para que otras personas que encuentren el mismo problema tengan ya una solución.

El primer problema es que el indicador ZigZag se redibuja, por lo que, obtener el último máximo o mínimo, necesita un pequeño truco.

Para obtener otros valores debemos añadir este código a tu EA.

Tenga en cuenta que el ciclo comienza con i=2, 10000 es el número de máximos o mínimos que necesita, 10.000 es sólo un ejemplo.

Los valores se guardarán en el Array temp en el que

La posición 0 guarda el último máximo o mínimo dibujado en el gráfico, la posición 1 guarda el máximo o mínimo anterior y así sucesivamente...

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

{

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

if(zo!=0) // mientras el Zigzag no consiga un máximo mayor, o no se cumplan las condiciones de profundidad, desviación, etc., el indicador ZigZag es igual a cero, por lo que hay que filtrar estos valores vacíos.

{

temp[k]=zo; // los máximos y mínimos se guardan en el array temp[]

k++;

}

Ahora, para obtener el valor de la última onda, sólo tienes que usar el precio actual, comparándolo con el valor guardado en la posición 0,

si (Ask>temp[0]) significa que el último valor fue bajo, así que para obtener la distancia sólo necesitas hacer last_wave=Ask-temp[0]

si no, significa que el último valor fue un alto, para obtener la distancia haz last_wave= temp[0]-Ask

si no necesitas saber si es un mínimo o un máximo, y sólo quieres la distancia, entonces sólo tienes que hacer last_wave= MathAbs(Ask-temp[0]) (la distancia siempre es positiva, ¿verdad? ;) )

y eso es todo, espero que te haya ayudado.

¡buena suerte en tu programación!

 
Sigur:

Hola a todos,

He estado buscando una respuesta también de cómo obtener esos valores altos y bajos del indicador ZigZag. Como no he dado con la solución, lo he programado yo mismo, y lo comparto para que otras personas que encuentren el mismo problema tengan ya una solución.

El primer problema es que el indicador ZigZag se redibuja, por lo que, obtener el último máximo o mínimo, necesita un pequeño truco.

Para obtener otros valores debemos añadir este código a tu EA.

Tenga en cuenta que el ciclo comienza con i=2, 10000 es el número de máximos o mínimos que necesita, 10.000 es sólo un ejemplo.

Los valores se guardarán en el Array temp en el que

La posición 0 guarda el último máximo o mínimo dibujado en el gráfico, la posición 1 guarda el máximo o mínimo anterior y así sucesivamente...

<CÓDIGO SUPRIMIDO>

Por favor, lee otros posts antes de publicar. . .

Por favor, edita tu post... por favor, utiliza el botónSRC para publicar el código:Cómo utilizar el botón SRC.

 
RaptorUK:

Por favor, lee otros post antes de publicar. . .

Por favor, edite su post ... por favor, utilice el botónSRC para publicar el código:Cómo utilizar el botón SRC.



Estimado Raptor,

Sí que he leído los otros post, aunque aportaba una solución, para mí era la mejor ya que estamos creando objetos y borrándolos donde en mi opinión y tiene el código compartido muestra, no hay necesidad.

Pero si no te parece útil mi post, siempre puedes borrarlo, eres moderador ¿no? ;)

 
Sigur:


Estimado Raptor,

Leí los otros posts, aunque me proporcionaron una solución, sólo fue la mejor para mí ya que estamos creando objetos y borrándolos donde en mi opinión y tiene el código compartido muestra, no hay necesidad.

Así que leíste otros posts y aún así publicaste el código en texto plano, ¿por qué? seguiste el enlace que publiqué?cómo usar el botón SRC. ¿entiendes por qué te pedí que editaras tu post?
 
Sigur:


Estimado Raptor,

Sí que he leído los otros post, aunque aportaba una solución, para mí era la mejor ya que estamos creando objetos y borrándolos donde en mi opinión y tiene el código compartido muestra, no hay necesidad.

Pero si no te parece útil mi post, siempre puedes borrarlo, eres moderador ¿no? ;)


Ver https://www.mql5.com/en/code/10920

lo mismo que ZigZag

primer buffer ZigZag normal

con los dos últimos buffers tienes los altos y bajos

 
¡Gracias Raptor, echaba de menos ese post, incluso lo hace más fácil!
 
Sigur:
Gracias Raptor, echaba de menos ese post, ¡hasta lo hace más fácil!
Y todavía no has editado tu post.......
 
Hola, estoy tratando de utilizar el indicador zig zag como lo hiciste. ¿Tengo que definir este indicador de alguna manera antes de usarlo? Ya está en mql4 como rsi y más?
 
qjol:

Hola gjol,


por favor, aconséjame cómo obtener el valor estocástico del precio en zigzag 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:

¿Y si quiero saber los tres últimos valores?

Entonces sigue leyendo para conocer los dos siguientes valores.