Discusión sobre el artículo "20 señales de trading en MQL5" - página 4

 

¡Gracias al autor por el artículo!

No hagas lo que aconseja 1CMaster, es una tontería.

Haz otra cosa, pon una línea vertical en el gráfico, moviendo que indicadores muestran el estado de este momento (donde está la línea vertical), y no el actual?

 

El código puede ser de buen valor, pero algunos de los indicadores son redundantes:

Canal BB y Desviación Estándar - lo mismo;

Precio , Donchian y Gallagher Canales - la misma cosa;

De todos modos, gracias por el artículo...

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Properties - Documentation on MQL5
 

Error de formación de la señal Alligator

.....
      if(CopyBuffer(h_al,0,0,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,0,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,0,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- comprueba la condición y establece el valor para sig
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- devuelve la señal de operación
   return(sig);
  }


La copia de estos búferes es necesaria teniendo en cuenta el desplazamiento de las líneas del indicador, pero aquí no lo es.

En segundo lugar, por qué copiar dos valores de indicadores si sólo se compara una barra, es decir, basta con un valor para cada búfer (línea).

Señal de AO: también se copian muchos datos (no participan en el análisis).

     if(CopyBuffer(h_ao,1,0,20,ao_buffer)<20)
         return(0);
      if(!ArraySetAsSeries(ao_buffer,true))
         return(0); 

Y al principio del artículo se decía que para quitar el traqueteo analizaremos no la barra cero sino la primera de la historia, ¿para qué copiar la barra cero?

No ahorramos recursos ....

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
olyakish:

Error de formación de la señal Alligator


La copia de estos búferes es necesaria teniendo en cuenta el desplazamiento de las líneas del indicador, pero aquí no lo es.

En segundo lugar, por qué copiar dos valores de indicadores si sólo se compara una barra, es decir, basta con un valor para cada búfer (línea).

Señal de AO: también se copian muchos datos (no participan en el análisis).

Y al principio del artículo se decía que para quitar el traqueteo analizaremos no la barra cero sino la primera de la historia, ¿para qué copiar la barra cero?

No ahorramos recursos ....



En primer lugar, está claramente escrito en la ayuda.

Необходимо помнить, что смещение линии является чисто визуальным для отображения и значения в индикаторном буфере хранятся без смещения. 
При получении значений буфера функцией CopyBuffer() значение смещения никакого эффекта иметь не будет.

En segundo lugar, puede que haya cometido algunos errores con la copia de datos, pero no afecta al punto principal de la tarea. El propósito del artículo es mostrar cómo abordar correctamente los indicadores y los datos.

 

Por cierto, yo personalmente uso una construcción de este tipo, en este caso los datos de la función se puede pasar directamente a la consulta de comercio.

ENUM_ORDER_TYPE ind_01()
  {
   ENUM_ORDER_TYPE sig=WRONG_VALUE;

   if(IND01_handle==INVALID_HANDLE || IND01_handle==0)
     {
      IND01_handle=iAC(_Symbol,TF_01);
      return(WRONG_VALUE);
     }
   else
     {
      if(CopyBuffer(IND01_handle,1,0,AC_shift+3,IND01_buffer1)<AC_shift+3) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer1,true)) return(WRONG_VALUE);

      if(CopyBuffer(IND01_handle,0,0,AC_shift+1,IND01_buffer2)<AC_shift+1) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer2,true)) return(WRONG_VALUE);
     }

   if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0 && IND01_buffer1[AC_shift+2]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1)sig=ORDER_TYPE_SELL;
   else if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1 && IND01_buffer1[AC_shift+2]==1)sig=ORDER_TYPE_SELL;
   else sig=WRONG_VALUE;

   return(sig);
  }
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
sergey1294:

En primer lugar, está claramente escrito en la ayuda.

En segundo lugar, puede que haya cometido algunos errores con la copia de datos, pero no afecta al punto principal de la tarea. El propósito del artículo es mostrar cómo abordar correctamente los indicadores y los datos.

Sí, es cierto visual, pero estamos orientados en el valor visual al entrar en un acuerdo y no en la forma en que se encuentran en la memoria de la terminal, por lo que debemos tener esto en cuenta.

La forma correcta para alligator es 13 por 8, 8 por 5, 5 por 3 (valores estándar).

int TradeSignal_17()
  {
   int sig=0;

   if(h_al==INVALID_HANDLE)
     {
      h_al=iAlligator(Symbol(),Period(),13,0,8,0,5,0,MODE_SMMA,PRICE_MEDIAN);
      return(0);
     }
   else
     {
      if(CopyBuffer(h_al,0,8,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,5,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,3,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- comprueba la condición y establece el valor para sig
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- devuelve la señal de operación
   return(sig);
  }
 
olyakish:

Sí, es cierto visual, pero estamos orientados en el valor visual al entrar en un acuerdo y no en la forma en que están en la memoria del terminal, por lo que tenemos que tener esto en cuenta.

La forma correcta para alligator es 13 sobre 8, 8 sobre 5, 5 sobre 3 (valores estándar).

No voy a decir, pero no creo que todo el mundo utiliza el caimán con un desplazamiento. Así que no hay error en este caso. Necesitabas un offset lo añadiste, y así pueden hacerlo los de acero que lo necesiten. Voy a repetir una vez más, el propósito del artículo es mostrar cómo abordar adecuadamente los indicadores y sus datos, y cuánto y en qué cantidad para conseguirlos es una cuestión de cada individuo.
 
sergey1294:
No voy a afirmarlo, pero no creo que todo el mundo utilice un aligator offset. Así que no hay error en este caso. Necesitabas un offset, lo has añadido, y lo mismo pueden hacer los de acero que lo necesiten. Voy a repetir una vez más, el propósito del artículo es mostrar cómo abordar adecuadamente los indicadores y sus datos, y cuánto y en qué cantidad para conseguirlos es una cuestión de cada individuo.

Referencia...

El Indicador Técnico Alligator es una combinación de Líneas de Balance (Medias Móviles) utilizando geometría fractal y dinámica no lineal.

  • La línea azul (Mandíbula de Alligator) es la Línea de Balance para el periodo de tiempo utilizado para construir el gráfico (media móvil suavizada de 13 periodos, desplazada 8 barras hacia el futuro);
  • La línea roja (Dientes de cocodrilo) es la línea de equilibrio para un periodo de tiempo significativo un orden de magnitud inferior (media móvil suavizada de 8 periodos, desplazada 5 barras hacia el futuro);
  • La línea verde (Labios de cocodrilo) es la línea de equilibrio para un periodo de tiempo significativo que es otro orden de magnitud inferior (media móvil suavizada de 5 periodos desplazada 3 barras hacia el futuro).


Las palabras clave están en negrita.

El resultado de su código es el análisis de medias

El resultado de mi código propuesto es el análisis de líneas de caimán.

 
Son realmente útiles para aprender, gracias.
 
Bueno para principiantes como yo, muy útil. gracias.