English Русский Deutsch 日本語
preview
Características del Wizard MQL5 que debe conocer (Parte 48): Bill Williams Alligator

Características del Wizard MQL5 que debe conocer (Parte 48): Bill Williams Alligator

MetaTrader 5Sistemas comerciales |
64 2
Stephen Njuki
Stephen Njuki

Introducción

El indicador Alligator, desarrollado por Bill Williams con la premisa de que los mercados tienden a seguir una tendencia fuerte en una dirección determinada solo entre el 15% y el 30% del tiempo. Es inherentemente una herramienta de seguimiento de tendencias que ayuda a los operadores a identificar la dirección del mercado y posibles fractales o puntos de inflexión. Esto se logra mediante un conjunto de tres promedios móviles suavizados (Smoothed Moving Averages, SMA) que no solo se establecen en diferentes períodos de promedio, sino que también se desplazan hacia adelante en cantidades variables.

Estas tres SMA se denominan a menudo «mandíbulas» (Jaws), «dientes» (Teeth) y «labios» (Lips), en referencia a la boca de un caimán. Estos tres buffers de promedio ayudan a los traders a visualizar las fases del mercado, que normalmente incluyen fases de tendencia, fases de consolidación y fases de transición. Cuando los 3 promedios están en un rango estrecho, a menudo se dice que el caimán está tomando una siesta, lo que se alinearía con la fase sin dirección de Bill Williams, que estimó que ocupa entre el 85 y el 70 % del tiempo en la mayoría de los mercados. La otra porción (15 – 30%) está marcada por la divergencia de estos tres buffers, una divergencia que siempre está indicada por una dirección particular, ya sea alcista o bajista. Esta fase a menudo se denomina "el despertar del caimán", y se supone que es cuando la mayoría de los traders deberían buscar ganar dinero.

Éstas son las fórmulas de las 3 SMA. Primero tenemos las mandíbulas:

Donde:

  • SMA 13 (Cierre) Media móvil suavizada de 13 períodos del precio de cierre.
  • Desplazamiento: La línea de la mandíbula se desplaza hacia adelante 8 períodos para suavizar la tendencia y permitir anticipar la dirección del mercado.

Luego los dientes:

Donde:

  • SMA 8 (cierre): media móvil suavizada de 8 períodos del precio de cierre.
  • Desplazamiento: La línea de los dientes se desplaza hacia delante 5 períodos.

Y, por último, los labios:

Donde:

  • SMA 5 (cierre): media móvil suavizada de 5 períodos del precio de cierre.
  • Desplazamiento: La línea de los labios se desplaza hacia delante 3 períodos.

Las características que presenta Alligator también pueden compararse con un ciclo alimenticio. Si partimos de la parte en la que los tres buffers se mezclan o están demasiado juntos, en esta fase, también conocida como fase de reposo, se dice que los mercados se están consolidando o oscilando. Williams comparó esto con un caimán (Alligator) dormido, y como se insinúa en la introducción, esta fase del ciclo es predominante y ocupa la mayor parte del tiempo para la mayoría de los valores. Lo que seguiría a esto, entonces, sería el "despertar".

En esta etapa del ciclo, las tres medias móviles simples (SMA) comienzan a divergir o separarse, normalmente en una dirección indicativa. Esto significa que todos ellos comienzan a tender hacia una dirección específica a medida que empiezan a separarse, sin embargo, su orden, que al ascender debería ser labios-dientes-mandíbulas y al descender al revés, puede que aún no se respete necesariamente. Después de despertarse, lo siguiente es la «alimentación».

Durante esta fase del ciclo, las líneas comienzan a divergir más claramente y su orden de labios-dientes-mandíbulas en una tendencia alcista o mandíbulas-dientes-labios en una caída bajista (ordenando desde arriba) comienza a afianzarse. Los operadores suelen considerar que este es un buen momento para seguir la dirección de la tendencia, ya que es cuando se obtienen la mayoría de las ganancias. Es la tercera etapa del ciclo, pero no es la última, ya que le sigue la etapa de «satisfacción».

En esta etapa final, denominada «etapa de satisfacción», las tres SMA comienzan a converger. Esta conversión puede indicar que la tendencia está llegando a su fin o entrando en una fase de corrección, por lo que, en cualquier caso, podría ser una buena idea que algunos operadores recogieran beneficios cuando se produzca esta señal. Esta conversión puede indicar que la tendencia está llegando a su fin o entrando en una fase de corrección, por lo que, en cualquier caso, podría ser una buena idea que algunos operadores recogieran beneficios cuando se produzca esta señal. Por lo tanto, resulta muy útil para ayudar a los operadores a sincronizar mejor sus entradas y salidas.

En este contexto, analizamos este indicador patrón por patrón, tal y como hemos hecho en otros artículos alternativos de esta serie, en los que hemos tratado un indicador técnico común específico cada vez. Hemos analizado el Ichimoku por última vez en este artículo, para los lectores que sean nuevos, donde revisamos 11 patrones, y para este artículo tenemos ocho preparados. Una revisión de los indicadores patrón por patrón tiene el potencial de revelar ciertos aspectos de indicadores muy comunes que podrían haber pasado desapercibidos para algunos operadores y que, sin embargo, merecerían la pena añadir a su arsenal.

Pero quizás más que eso, ponen de relieve el peso relativo y la importancia de todos los patrones clave que ofrece un indicador determinado, al perfeccionar las habilidades de los operadores sobre en qué centrarse y qué ignorar. Solemos concluir estos artículos optimizando los pesos relativos de cada uno y, aunque es posible aplicar estos resultados en un entorno de implementación en vivo, prefiero que los operadores establezcan manualmente la ponderación de cada patrón basándose en su propia experiencia, aunque los resultados optimizados de las pruebas puedan ser validados de forma cruzada.

El código adjunto está pensado para utilizarse con el asistente MQL5 con el fin de crear un asesor experto. Hay guías aquí y aquí para los nuevos lectores sobre cómo hacerlo. Este Asesor Experto ensamblado solo se puede utilizar con un patrón a la vez, tal y como se mencionó en los artículos introductorios anteriores sobre estos indicadores. Dado que cada patrón se indexa desde cero hasta el número total de patrones menos uno, que en nuestro caso es siete, podemos controlar qué patrones se utilizan mediante un parámetro de entrada denominado m_patterns_usage, que se hereda de la clase padre a nuestra clase de señal personalizada.

Para utilizar solo uno de los patrones disponibles, el índice establecido para este parámetro de entrada sería dos elevado a la potencia del índice del patrón. Por lo tanto, para utilizar solo el patrón 0, a esta entrada se le asignaría 2^0, que es 1, mientras que para el patrón 5 se le asignaría 2^5, que es 32, y así sucesivamente. Este mismo parámetro de entrada permite la selección y el uso múltiple de patrones, tal y como se ha mencionado anteriormente, y esto es lo que abordamos en la parte final de este artículo. Dado que existen muchas combinaciones posibles incluso con un número reducido de patrones, 8 en nuestro caso, los lectores pueden comprender que cuando se utiliza cualquier número entero que no esté en la serie 2^0, 2^1,… 2^n y es menor que el límite del valor máximo del parámetro de entrada m_patterns_usage, entonces ese valor implica que se está utilizando más de un patrón. El límite para m_patterns_usage en nuestro caso, dado que solo estamos utilizando 8 patrones, es 255. Entremos en los patrones.


Despertar del caimán (señal cruzada)

Este es quizás el patrón principal del indicador Alligator y, como cabría esperar, se refiere a la fase más interesante de los ciclos del Alligator, el comienzo de la fase de festín, que aquí se denomina «el despertar». Su señal se basa en los labios, los dientes y las mandíbulas cuando se cruzan entre sí, lo que indica un posible cambio de tendencia o dirección.

El cruce alcista se produce cuando la línea verde de los labios cruza por encima de las líneas roja de los dientes y azul de las mandíbulas; esto suele indicar el inicio de una tendencia alcista. Por el contrario, el cruce bajista se produce cuando la línea verde de los labios cruza por debajo de los dientes rojos y las líneas azules de las mandíbulas, lo que indica el comienzo de una tendencia a la baja. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_0(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Lips(X() + 1) < Jaws(X() + 1) && Lips(X()) > Jaws(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Lips(X() + 1) > Jaws(X() + 1) && Lips(X()) < Jaws(X()))
   {  return(true);
   }
   return(false);
}

Esto marca nuestro patrón 0, y para realizar pruebas solo con este patrón, nuestro parámetro de entrada m_patterns_usage debe establecerse en 1. Si hacemos esto e intentamos optimizar algunos de los otros asesores expertos con el fin de demostrar el potencial comercial de este patrón, obtenemos el siguiente informe con algunos de los resultados favorables:

r0

Nuestra configuración de prueba para esto es USDCHF en el marco temporal horario para el año 2023. Estos resultados se deben principalmente a la optimización del peso umbral del patrón, así como de los umbrales de las condiciones de apertura y cierre. Operamos con órdenes pendientes, tenemos un nivel de take profit pero no de stop loss. Ciertamente, estas no son las condiciones ideales, pero sirven para demostrar el funcionamiento de patern-0.


Caimán comiendo (seguimiento de tendencias)

Nuestro segundo patrón, el patrón 1, se centra en los elementos fundamentales de la señal Alligator, con las líneas de los labios, los dientes y las mandíbulas alineadas y separándose en una dirección determinada hacia una tendencia concreta. Esta es la fase de alimentación de los ciclos Alligator, en la que la alimentación alcista se define cuando los labios verdes están por encima de los dientes rojos, que a su vez están por encima de las mandíbulas azules. Estas líneas, aunque todas apuntan hacia arriba, también divergirían debido no solo a sus diferentes períodos de promedio, sino también a sus diferentes desplazamientos. Cuando todas estas características se cumplen, indicaría una tendencia alcista muy fuerte.

Por otro lado, se registra una tendencia bajista si los labios verdes están por debajo de los dientes rojos, que a su vez estarían por debajo de las mandíbulas azules, de nuevo con las tres medias móviles simples (SMA) descendiendo en un patrón divergente (no paralelo). La observación de todas estas características, al igual que en el caso del alcista, indicaría una fuerte señal bajista. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_1(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Lips(X()) > Teeth(X()) && Teeth(X()) > Jaws(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Lips(X()) < Teeth(X()) && Teeth(X()) < Jaws(X()))
   {  return(true);
   }
   return(false);
}

Los resultados de una prueba de optimización en configuraciones similares al patrón 0 del par de divisas USDCHF, marco de tiempo de 1 hora, año 2023, nos brindan los siguientes resultados:

r1


Señales del oscilador Gator

Además del indicador Alligator, Bill Williams también es responsable del oscilador Gator, que es una proyección en forma de histograma de las diferencias entre los tres buffers SMA del indicador Alligator. El indicador integrado en MQL5 para el oscilador Gator es un poco defectuoso porque el oscilador Gator es intrínsecamente poco ortodoxo. Sus salidas son cuádruples, dos valores dobles y dos valores de color. Dado que las definiciones de las fórmulas que hay detrás de ellas son bien conocidas, realizamos nuestra propia implementación personalizada de esto dentro de nuestra clase de señal personalizada de la siguiente manera:

   //
   double            Upper(int ind)
   {                 return(fabs(Jaws(ind) - Teeth(ind)));
   }
   color             UpperColor(int ind)
   {                 return(Upper(ind) >= Upper(ind + 1) ? clrGreen : clrRed);
   }
   double            Lower(int ind)
   {                 m_gator.Refresh(-1);
      return(-fabs(Teeth(ind) - Lips(ind)));
   }
   color             LowerColor(int ind)
   {                 m_gator.Refresh(-1);
      return(fabs(Lower(ind)) >= fabs(Lower(ind + 1)) ? clrRed : clrGreen);
   }
   //

Este patrón, el patrón 2, es nuestro tercer patrón y combina señales del oscilador Gator, que leeremos desde nuestras funciones personalizadas derivadas del indicador Alligator. Dicho esto, la expansión alcista del oscilador Gator se produce cuando las barras verdes del oscilador Gator se expanden al alza, lo que indica una tendencia al alza. Por el contrario, la expansión bajista del caimán se produce cuando las barras rojas se expanden a la baja, lo que sugiere un fortalecimiento de la tendencia bajista. Como corolario, las barras mixtas rojas y verdes suelen indicar una consolidación del mercado o un debilitamiento de la tendencia. Implementamos el patrón 2 en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_2(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && UpperColor(X()) == clrGreen  && LowerColor(X()) != clrRed)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL  && LowerColor(X()) == clrRed  && UpperColor(X()) != clrGreen)
   {  return(true);
   }
   return(false);
}

Las pruebas realizadas a partir de los resultados favorables de una optimización nos proporcionan el siguiente informe:

r2

Esto es con una configuración de prueba similar a la anterior del símbolo USDCHF, marco temporal de 1 hora, año 2023. Estos resultados no están validados de forma cruzada y solo demuestran el potencial comercial del patrón 2. Probamos el Asesor Experto solo con el patrón 2 asignando al parámetro de entrada m_patterns_usage el valor entero 4, tal y como se explica anteriormente en la introducción.


Divergencia entre mandíbula y labios y entre dientes y labios

Este patrón es el cuarto y está indexado como patrón-3. Se trata de la diferencia en la dirección o el tamaño de la separación entre la mandíbula y los labios o entre los dientes y los labios. La divergencia alcista se produce cuando los labios (línea verde) comienzan a alejarse de los dientes (línea roja) y la mandíbula (línea azul) tras un periodo de oscilaciones bruscas. Esto sirve esencialmente como un indicador temprano de una posible tendencia alcista. Por el contrario, la divergencia bajista se produce cuando los labios comienzan a alejarse de la mandíbula y los dientes en dirección descendente, lo que suele presagiar una crisis en el mercado. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_3(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Lips(X()) - fmax(Teeth(X()), Jaws(X())) > Lips(X() + 1) - fmax(Teeth(X() + 1), Jaws(X() + 1)))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && fmin(Teeth(X()), Jaws(X())) - Lips(X()) > fmin(Teeth(X() + 1), Jaws(X() + 1)) - Lips(X() + 1))
   {  return(true);
   }
   return(false);
}

La prueba con configuraciones idénticas a las utilizadas en todos los patrones mencionados anteriormente nos da los siguientes resultados de algunas de las configuraciones favorables obtenidas a partir de un breve período de optimización:

r3


El caimán se despierta después de dormir

El patrón 4, nuestro quinto patrón, está destinado a desarrollarse tras un periodo considerable de consolidación o mientras el cocodrilo duerme. Esto se caracteriza por el hecho de que los labios, los dientes y las mandíbulas comienzan a desenredarse. Por lo tanto, para la estrategia de trading, la señal alcista se produce tras un largo periodo de inactividad del Alligator. Si los labios, los dientes y las mandíbulas comienzan a divergir al alza, esto podría ser una señal de una ruptura alcista. Por otro lado, la señal bajista se produce cuando las mismas tres líneas comienzan a divergir a la baja tras un prolongado periodo de convergencia, lo que podría indicar una ruptura bajista. Implementamos esto de la siguiente manera en MQL5:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_4(ENUM_POSITION_TYPE T)
{  if(Range(X() + 3) <= Spread(X() + 3) && Range(X() + 8) <= Spread(X() + 8))
   {  if(T == POSITION_TYPE_BUY && Lips(X()) > Lips(X() + 3) && Teeth(X()) > Teeth(X() + 3) && Jaws(X()) > Jaws(X() + 3))
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && Lips(X()) < Lips(X() + 3) && Teeth(X()) < Teeth(X() + 3) && Jaws(X()) < Jaws(X() + 3))
      {  return(true);
      }
   }
   return(false);
}

Cuando probamos solo este patrón con símbolos similares y ajustes de marco temporal como los anteriores con los otros patrones, habiendo asignado al parámetro m_patterns_usage el valor 16, obtenemos los siguientes resultados:

r4


Confirmación de ruptura

Nuestro patrón 5 desarrolla su señal a partir de movimientos de precios en la misma dirección que las líneas del Alligator, con una continuación que no presenta un retroceso fuerte. Para este patrón, una ruptura alcista se produce cuando el precio se encuentra por encima de las líneas del Alligator y las tres líneas tienen una pendiente ascendente, lo que sugiere la continuación de la posición compradora. No se caracteriza por ningún cambio significativo en el precio en sí mismo. Del mismo modo, una «ruptura» bajista se produce cuando el precio se encuentra por debajo de las líneas del Alligator y las tres líneas tienen una pendiente descendente, lo que indicaría que se debe seguir vendiendo. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Close(X()) > Lips(X()) && Lips(X()) > Lips(X() + 3) && Teeth(X()) > Teeth(X() + 3) && Jaws(X()) > Jaws(X() + 3))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Close(X()) < Lips(X())  && Lips(X()) < Lips(X() + 3) && Teeth(X()) < Teeth(X() + 3) && Jaws(X()) < Jaws(X() + 3))
   {  return(true);
   }
   return(false);
}

Para operar con el asesor experto creado por el asistente utilizando únicamente este patrón, tendríamos que asignar al parámetro de entrada m_patterns_usage el valor 32. A partir de las entradas, este parámetro, que se hereda de la clase padre de nuestra clase de señal personalizada, se denomina «Patrones utilizados en mapa de bits». Las pruebas realizadas con ajustes de entrada favorables a partir de una optimización rápida que utiliza ajustes similares a los patrones mencionados anteriormente nos proporcionan el siguiente informe:

r5


Señales de volatilidad

Este patrón adicional, aunque no está codificado ni probado formalmente como el resto, puede definirse si se combinan las tendencias predominantes de la acción del precio con los rangos del Alligator. La tesis principal detrás de esto es que el rango general de Alligator, que definimos en la siguiente función:

   double            Range(int ind)
   {                 return(fmax(fmax(Jaws(ind), Teeth(ind)), Lips(ind)) - fmin(fmin(Jaws(ind), Teeth(ind)), Lips(ind)));
   }

Es un indicador de la volatilidad. Por lo tanto, la alta volatilidad se da cuando las mandíbulas, los dientes y los labios están muy separados, lo que indicaría que la tendencia predominante es muy fuerte y justificada. Una comprobación de la tendencia predominante de los precios ayudaría a determinar si se debe inferir una señal alcista (subida de precios) o bajista (caída de precios). Por otro lado, una volatilidad baja no indicaría necesariamente ninguna señal; sin embargo, podría utilizarse para determinar cuándo salir de las posiciones abiertas. Sin embargo, esto se daría por sentado cuando los tres buffers SMA están muy juntos, lo que a menudo indica una actividad limitada y también se suele utilizar como precaución para esperar la entrada en los mercados. Sin embargo, para las posiciones abiertas, esto podría suponer una oportunidad para salir, y más aún si la tendencia del precio se mantiene intacta, con la caída y la volatilidad que se ha producido recientemente, lo que podría implicar la apertura de posiciones inversas. A tal fin, una tendencia alcista de los precios en condiciones de volatilidad decreciente o baja podría presagiar una señal bajista, del mismo modo que una tendencia bajista de los precios en condiciones similares podría indicar una señal alcista. Este patrón podría considerarse menos seguro que los demás, por lo que los lectores que deseen codificarlo e implementarlo tal vez deberían combinarlo con otras señales.


Señal de retroceso de labios de caimán

El patrón 6 es el séptimo y consiste en el retroceso de los labios hacia los dientes o las mandíbulas sin llegar a formar una cruz completa. Por lo tanto, la estrategia de trading con esto es que un retroceso alcista se produce cuando la línea de los labios se mueve hacia los dientes y las mandíbulas, pero luego rebota hacia arriba sin cruzarse, lo que indica una posible continuación de la tendencia alcista. Y, como era de esperar, un retroceso bajista se produciría si los labios se movieran hacia los dientes y las mandíbulas, rebotaran sin cruzarse y, por lo tanto, se estableciera una posible continuación de la tendencia bajista. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_6(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Lips(X()) > Lips(X()+1) && Lips(X()+1) < Lips(X()+2) && Lips(X()) > Teeth(X()) && Lips(X()+1) > Teeth(X()+1) && Teeth(X()) > Jaws(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Lips(X()) < Lips(X()+1) && Lips(X()+1) > Lips(X()+2) && Lips(X()) < Teeth(X()) && Lips(X()+1) < Teeth(X()+1) && Teeth(X()) < Jaws(X()))
   {  return(true);
   }
   return(false);
}

Para utilizar el Asesor Experto solo con el patrón 6, se asignaría al parámetro de entrada «Patterns-Used-Bitmap» el valor entero 64, que corresponde a 2 elevado a 6, el índice de nuestro patrón. Si optimizamos nuestro Experto utilizando únicamente este patrón, una de las configuraciones de entrada favorables que obtenemos nos presenta el siguiente informe:

r6

Como ya se ha mencionado, esto no está validado de forma cruzada, sino que solo se muestra aquí para demostrar el potencial/capacidad comercial del patrón 6.


Prevención de falsas alarmas

Nuestro patrón final, el patrón 7, se deriva de la observación de las mandíbulas, los dientes y los labios del cocodrilo para ver si permanecen alineados en medio de una ruptura del mercado. El objetivo aquí es prevenir los engaños. Por lo tanto, la estrategia de trading consiste en registrar una prevención de falsas señales alcistas si se produce una ruptura alcista, pero las líneas del Alligator no divergen significativamente, lo que podría sugerir una falsa señal, en el sentido de que el mercado podría revertirse y volver a caer. Por el contrario, se considera que existe una prevención de falsas señales bajistas cuando las líneas del Alligator permanecen muy juntas en una ruptura de precios reflejada a la baja, lo que normalmente significaría que los operadores deben abstenerse de entrar en una posición corta. Estas falsas señales implican, en cierto sentido, señales opuestas, y con este fin implementamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalAlligator::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(Range(X()) <= Spread(X()))
   {  if(T == POSITION_TYPE_BUY && Close(X()) < fmin(fmin(Jaws(X()), Teeth(X())), Lips(X())) && Close(X()+1) > fmin(fmin(Jaws(X()+1), Teeth(X()+1)), Lips(X()+1)))
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && Close(X()) > fmax(fmax(Jaws(X()), Teeth(X())), Lips(X())) && Close(X()+1) < fmax(fmax(Jaws(X()+1), Teeth(X()+1)), Lips(X()+1)))
      {  return(true);
      }
   }
   return(false);
}

El uso exclusivo de este patrón con nuestro Asesor Experto requiere que a los patrones utilizados se les asigne el número entero 128. Si lo hacemos y optimizamos con ajustes similares a los de los otros patrones anteriores del símbolo USDCHF, el marco temporal de 1 hora y el periodo de prueba 2023, obtenemos el siguiente informe al utilizar algunos de los ajustes de entrada recomendados:

r7

c7


Combinando todos los patrones

La combinación y el uso potencial de todos los patrones en el Asesor Experto plantea el debate sobre si esto es adecuado o si los operadores deberían ceñirse a un único patrón. He advertido contra el uso de ponderaciones optimizadas para diversos patrones en cuentas reales, ya que considero que lo mejor es que el operador establezca la ponderación como una constante basándose en su propia experiencia con el indicador correspondiente. Sin embargo, hay otros puntos que deben tenerse en cuenta en este discurso.

En primer lugar está el argumento de la conciencia contextual frente a la simplicidad. Si este indicador, el Alligator, es relativamente nuevo para usted, se podría argumentar que el seguimiento de múltiples patrones permite una comprensión más matizada del ciclo completo del mercado en lo que se refiere al Alligator; que en este caso es: consolidación, inicio de tendencia, continuación de tendencia y fin de tendencia. Esto podría proporcionar información sobre los cambios sutiles en las fases durante la transición, por no mencionar el probable perfil de riesgo-recompensa de cada fase.

La observación y recopilación de esta información probablemente sería ideal en un entorno comercial manual, que no es necesariamente lo que buscamos explotar con esta serie. Sin embargo, el argumento a favor de la simplicidad se basa en el hecho de que centrarse en un solo patrón, como la fase de «alimentación» o de tendencia, ayuda a simplificar la toma de decisiones. Y cuando se opera manualmente, esto puede ser un argumento crucial; sin embargo, dado que pretendemos utilizar un asesor experto, esto no supone un gran problema, especialmente si se tiene en cuenta que los recursos informáticos y de memoria que se necesitan para ello son mínimos.

En resumen, se podría afirmar que el enfoque multipatrón es adecuado para la exploración y el aprendizaje, y que la ruta enfocada es adecuada una vez que los operadores se familiarizan con lo que funciona, cómo y por qué. A pesar de estos argumentos y advertencias, optimizamos los distintos patrones para descubrir qué ponderación relativa funcionaría mejor cuando se combinan todos ellos. Al hacerlo, dado que queremos utilizar varios patrones, la entrada «Pattern's Used Bitmap» se optimiza en el rango de 0 a 255. Los resultados de algunos de los parámetros de entrada favorables de esta optimización nos proporcionan el siguiente informe:

r_all

c_all

Una vez más, estamos utilizando el marco temporal de 1 hora para el año 2023 en el símbolo USDCHF, tal y como hemos hecho con todos los patrones que hemos probado de forma individual anteriormente.



Conclusión

Hemos examinado otro indicador, el Alligator de Bill Williams, en una clase de señales personalizada, patrón por patrón, con el objetivo de hacernos una idea de la importancia relativa de cada patrón y también de formarnos una opinión sobre si el uso combinado de todos sus patrones es más fructífero que el uso individual de cada uno de ellos; el argumento de que «el todo es mayor que la suma de las partes». Si bien en este caso, nuestra serie de informes de pruebas indica que «menos es más», dado el resultado decepcionante que obtuvimos al combinar todos los patrones, es necesario realizar pruebas exhaustivas durante períodos más largos que abarquen más allá de nuestro horizonte de pruebas, el año 2023, antes de poder sacar conclusiones definitivas.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/16329

Archivos adjuntos |
SignalWZ_48.mqh (18.22 KB)
wz_48.mq5 (7.6 KB)
steady2017
steady2017 | 14 nov 2024 en 12:20

Hola de backtest se muestra en el artículo?

Cuando estoy ejecutando el EA, está operando sin parar haciendo 3943 operaciones al año y parece ignorar la señal por completo.

Estoy particularmente interesado en el patrón 2. Está claro que la máscara de bits para él será 4, pero ¿qué pasa con otros valores?

Stephen Njuki
Stephen Njuki | 19 nov 2024 en 14:13
steady2017 de backtest que se muestran en el artículo?

Cuando estoy ejecutando el EA, es el comercio sin parar haciendo 3943 operaciones por año y parecen ignorar la señal por completo.

Estoy particularmente interesado en el patrón 2. Está claro que la máscara de bits para él será 4, pero ¿qué pasa con otros valores?

Cada vez hay más gente que me pregunta por los valores de entrada, bueno la cosa es que nunca me los guardo. Lo que siempre intento compartir en el artículo es el nombre del par negociado, el marco temporal utilizado y el año de la prueba (normalmente hago la prueba en un solo año).

Los ajustes de entrada son siempre de un corto período de optimización, no son validados, y por lo tanto estrictamente hablando no vale la pena compartir.

El propósito de publicar los informes de las pruebas es simplemente demostrar la comerciabilidad y el uso de la señal, nada más. El trabajo de buscar configuraciones validadas de forma cruzada siempre se deja en manos del lector.

Del básico al intermedio: Estructuras (V) Del básico al intermedio: Estructuras (V)
En este artículo, veremos cómo se realiza la sobrecarga de un código estructural. Sé que esto es bastante difícil de entender al principio, sobre todo si es la primera vez que ves esto. Es muy importante que asimiles estos conceptos y entiendas muy bien lo que sucede aquí antes de intentar aventurarte en cosas más complicadas y elaboradas.
Del básico al intermedio: Estructuras (IV) Del básico al intermedio: Estructuras (IV)
En este artículo, veremos cómo producir el llamado código estructural, en el que se coloca todo el contexto y las formas de manipular variables e información dentro de una estructura, con el fin de generar un contexto adecuado para la implementación de cualquier código. Veremos la necesidad de utilizar la cláusula private para separar lo que es público de lo que no, espetando así la regla de encapsulamiento y manteniendo el contexto para el que se creó una estructura de datos.
Implementación de Breakeven en MQL5 (Parte 2): Breakeven basado en ATR y RRR Implementación de Breakeven en MQL5 (Parte 2): Breakeven basado en ATR y RRR
En este artículo se finaliza la implementación del breakeven por atr y rr en MQL5, junto con el desarrollo desde cero de una clase que permite cambiar fácilmente el tipo de breakeven sin necesidad de reingresar los parámetros. Se realizan múltiples backtests para evaluar el rendimiento de cada tipo, analizando sus ventajas y desventajas en el contexto del trading algorítmico.
Computación cuántica y trading: Una nueva mirada a las previsiones de precios Computación cuántica y trading: Una nueva mirada a las previsiones de precios
En el artículo analizaremos un enfoque innovador para predecir los movimientos de precios en los mercados financieros utilizando la computación cuántica. La atención se centrará en la aplicación del algoritmo Quantum Phase Estimation (QPE) para encontrar precursores de patrones de precios, lo que permitirá acelerar considerablemente el proceso de análisis de los datos de mercado.