English Русский 中文 Deutsch 日本語
preview
Características del Wizard MQL5 que debe conocer (Parte 71): Uso de los patrones del MACD y del OBV

Características del Wizard MQL5 que debe conocer (Parte 71): Uso de los patrones del MACD y del OBV

MetaTrader 5Sistemas comerciales |
31 0
Stephen Njuki
Stephen Njuki

Introducción

El oscilador de convergencia-divergencia de la media móvil (MACD), un oscilador que sigue la tendencia, se combina con el oscilador de volumen en equilibrio (OBV). Estos dos indicadores se complementan entre sí, ya que uno sigue la tendencia, mientras que el otro mide el volumen. Realizamos pruebas con el par GBP/JPY en el año 2023, utilizando 2024 como ventana de prueba forward. Nuestro "entrenamiento" u optimización para el año 2023, además de buscar el peso ideal de la señal del patrón, también busca brechas en los precios de entrada y objetivos de toma de ganancias. Todo esto se realiza sin utilizar ningún stop-loss, lo que significa que dependemos únicamente del peso del umbral de cierre de la clase de señal personalizada para cerrar cualquier posición que ya no esté en línea con su tesis de apertura.

Los informes de prueba que se presentan a continuación muestran principalmente ganancias, pero esto no implica necesariamente un éxito rotundo, ya que el período de prueba también incluye el tiempo durante el cual se optimizan los Asesores Expertos. Este ha sido nuestro enfoque a lo largo de esta serie y continuará siéndolo. Por lo tanto, los lectores deben tener esto en cuenta al interpretar los resultados del informe de la prueba, además del período de prueba muy corto. 

Probamos 10 patrones de señales, uno a la vez, que se rigen por estas reglas:

La indexación va de 0 a 9, lo que nos permite calcular fácilmente el valor del mapa para su uso exclusivo por parte del Asesor Experto. Por ejemplo, si un patrón tiene el índice 1, entonces tenemos que establecer el parámetro 'PatternsUsed' en 2 elevado a la potencia 1, lo que da como resultado 2. Si el índice es 4, entonces esto es 2 elevado a la potencia 4, que da como resultado 16, y así sucesivamente. El valor máximo que se le puede asignar a este parámetro, de forma significativa, es 1023, ya que solo tenemos 10 parámetros. Cualquier número entre 0 y 1023 que no sea un exponente puro de 2 representaría una combinación de más de uno de estos 10 patrones.


El MACD

El MACD está diseñado para medir la diferencia entre dos medias móviles exponenciales. Muestra principalmente la dirección de la tendencia, aunque podría argumentarse que también registra el impulso. La línea MACD, también conocida como histograma, es la base de este indicador. El búfer adicional que utiliza este indicador, al que se denomina línea de señal, es simplemente una versión suavizada de la línea/histograma MACD. Ayuda a detectar los puntos de inflexión de los indicadores y, por lo tanto, cualquier señal de compra/venta. Los valores positivos del histograma indican una tendencia alcista, mientras que los negativos indicarían una tendencia bajista. 

Este indicador se utiliza cuando el histograma cruza la línea de señal, una señal de trading importante; cuando el histograma cruza la línea cero, lo que suele indicar cambios de tendencia; y cuando existen divergencias entre la tendencia del precio y la del histograma. Los ajustes típicos para los períodos EMA rápido y lento son 12 y 26 respectivamente. La señal suele utilizar un período de suavizado de 9. Nos ceñimos a estas métricas predeterminadas para nuestros fines de prueba; sin embargo, los lectores pueden consultarlas si necesitan realizar ajustes, especialmente en los casos en que el MACD se combine con otro indicador que utilice un período de indicador diferente pero significativo. Su fórmula es la siguiente:

Si:


Entonces:

Donde:

  • t es el paso de tiempo actual o índice de barra
  • EMA12(t) es la media móvil exponencial de 12 períodos de los precios de cierre
  • EMA26(t) es la media móvil exponencial de 26 períodos de los precios de cierre
  • MACD(t) es la diferencia entre las EMA rápidas y lentas
  • EMA9(MACD(t)) es la media móvil exponencial de 9 periodos del MACD, también conocida como línea de señal


El OBV

El objetivo principal de este oscilador es medir la presión de compra y venta teniendo en cuenta el volumen total acumulado. Su idea principal es que si el precio cierra al alza, esto es una señal de presión alcista y, por lo tanto, se le atribuye un mayor volumen al OBV. Si el precio de cierre es más bajo, entonces se deduce el volumen. Que no haya cambios en el precio significa que el indicador permanece igual. Por lo tanto, su interpretación es sencilla: un OBV ascendente confirma una tendencia alcista, mientras que un OBV descendente indica una tendencia bajista. Además, una divergencia entre el OBV y el precio puede indicar un posible cambio de tendencia.

Es de naturaleza acumulativa, comenzando normalmente en cero y acumulando cambios de volumen con el tiempo. Para los operadores de divisas, los volúmenes utilizados en estas acumulaciones son volúmenes de ticks y no volúmenes reales, dada la naturaleza "descentralizada" del comercio de divisas. Por lo tanto, sus principales usos para los operadores son la confirmación de tendencias, la detección de divergencias y el ajuste de los puntos de entrada y salida de las posiciones en función de los niveles de volumen. La fórmula para este indicador se presenta a continuación:

Donde:

  • OBV(t) es el volumen en equilibrio en un momento t
  • OBV(t-1) es el volumen en equilibrio de un paso de tiempo anterior
  • Vt es el volumen en el instante t
  • Ct es el precio de cierre en el momento t

Una vez definidos los indicadores, analicemos sus patrones de señal


Cruce MACD y tendencia OBV

Nuestro primer patrón utiliza una estrategia que combina el cruce del MACD con la dirección de la tendencia del OBV. Los cruces del MACD suelen ser cruciales, ya que permiten detectar posibles cambios de tendencia. La dirección de la tendencia OBV se utiliza para señalar una confirmación basada en el volumen, sirviendo como filtro para las señales MACD falsas. La señal alcista se produce, por lo tanto, cuando el MACD realiza un giro en U y el histograma cierra por encima de la línea de señal. Esto se confirma si estaba por debajo de la señal en la barra anterior. Al mismo tiempo, el OBV estaría aumentando, una señal de acumulación de volumen alcista, lo que reforzaría el escenario alcista. En MQL5 implementamos esto de la siguiente manera:

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

La lógica de la señal de venta también incluye un cruce, donde el MACD cierra por debajo de la línea de señal después de haber estado por encima de ella en la barra anterior. Un cruce bajista. Esto también sucede cuando el OBV está cayendo, dado que la distribución del volumen sería negativa, lo que refuerza el escenario bajista. Este patrón está diseñado para identificar configuraciones confirmadas de impulso y volumen en mercados con tendencia o en fase de ruptura. También puede utilizarse para filtrar el ruido del MACD en mercados volátiles o laterales gracias al papel del volumen.

Sin embargo, existen algunos casos excepcionales que conviene tener en cuenta; OBV puede generar direcciones erróneas en sesiones de bajo volumen. Además, el MACD puede presentar retrasos durante las reversiones bruscas, lo que puede provocar entradas tardías. Optimizando para el año 2023 y realizando una prueba desde el 1 de enero de 2023 hasta el 1 de enero de 2025 con solo este patrón, donde el parámetro para patterns-used se asigna a 1, obtenemos el siguiente informe. No superó la prueba forward.

r0

A continuación se presenta una tabla con recomendaciones para su posible uso al aplicar el patrón 0.

Tema

Recomendación

Periodo de tiempo

Debería funcionar mejor en un intervalo de tiempo de entre 1 y 4 horas. Debe evitarse su uso en marcos temporales de minutos, a menos que se combine con un indicador de marco temporal mayor.

Configuración del indicador

Siempre es preferible mantener la configuración MACD típica de (12,26,9). Si se dispone de datos de volumen reales, entonces sería preferible utilizarlos para el OBV.

Regla de entrada

Las entradas deberían realizarse normalmente al cierre de la vela, y deberían evitarse las entradas a mitad de la vela, especialmente en los marcos temporales más pequeños.

Stop Loss

Estos se pueden colocar en los máximos/mínimos recientes de la oscilación. El ATR dinámico también se puede utilizar para dimensionar estos elementos.

Take Profit

Se puede utilizar una relación riesgo-recompensa de 1 a 1,5 para dimensionar el stop loss dinámico y asegurar las ganancias.

Confirmación

Un posible indicador de terceros para la confirmación de la señal podría ser el RSI o la pendiente de la media móvil.

Filtro de noticias

Siempre que sea posible, conviene evitar abrir posiciones antes de noticias de gran impacto.

Pruebas retrospectivas

Las pruebas exhaustivas son fundamentales para este patrón, ya que depende en gran medida de la estructura del volumen.

Además de las recomendaciones de uso mencionadas anteriormente, este patrón también podría mejorarse. Esto puede incluir la adición de un filtro de divergencia, aunque más adelante se consideran patrones separados que exploran esto. Podríamos añadir un periodo de espera o un periodo de supresión de repeticiones durante el cual se evite el registro de señales repetidas; de modo que, por ejemplo, solo se permita una señal por cada x velas. Finalmente, también podríamos utilizar la pendiente o la tasa de cambio para comprobar que el MACD y/o el OBV no se encuentran en una línea plana en el momento de la señalización.


Cruce de la línea central del MACD + Ruptura del OBV

Nuestro siguiente patrón, indexado con el número 1, está diseñado para detectar los cruces de la línea cero del MACD filtrados con los extremos de presión de volumen registrados por el OBV. Esta combinación indica cambios de tendencia tempranos que están respaldados por condiciones de volumen largas o cortas. La señal de compra se produce cuando el histograma del MACD cruza la línea de cero desde abajo y cierra por encima de ella. Esto también se conoce como un cruce alcista de la línea cero, donde el histograma cambia de lecturas negativas a lecturas positivas. Esto marca un cambio en el impulso.

Es importante tener en cuenta que el MACD emite muchas de estas señales, por lo que es importante comprobar el OBV para determinar si se encuentra en máximos históricos en un período que se remonta al período rápido del MACD, el 12. En otras palabras, el valor OBV actual debe ser equivalente o superior a su máximo de 12 períodos. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_1(ENUM_POSITION_TYPE T)
{  int _index = -1;
   m_obv.Refresh(-1);
   if(T == POSITION_TYPE_BUY && MACD(X()) > 0.0 && MACD(X() + 1) < 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && MACD(X()) < 0.0 && MACD(X() + 1) > 0.0 && OBV(X()) <= m_obv.MinValue(0, X(), 12, _index))
   {  return(true);
   }
   return(false);
}

Del mismo modo, las condiciones de la señal de venta se dan cuando el MACD cruza la línea cero desde arriba para cerrar por debajo de ella, lo que supone una transición en el impulso, de positivo a negativo; mientras que el OBV también está tocando fondo. El OBV actual se situaría en su mínimo de 12 períodos o por debajo de él, lo que indica un fuerte volumen de ventas. Las conclusiones estratégicas que se pueden extraer de esto son: que los cruces de la línea cero del MACD son más potentes que los cruces de la línea de señal, ya que representan un cambio de dirección neto; el filtrado de rango del OBV garantiza la confirmación al asegurarse de que el volumen no solo sea direccional, sino que también sea suficientemente elevado; y está diseñado para detectar con antelación los puntos de entrada a nuevas tendencias, con configuraciones como rupturas o oscilaciones. Nuestras pruebas para este patrón nos dan el siguiente informe. No superó la validación forward:

r1

A continuación se muestra una tabla con las recomendaciones de uso para el patrón 1.

Aspecto

Recomendación

Periodo de tiempo

Este patrón es el más adecuado para los marcos temporales de 1 hora, 4 horas y diario. Los marcos temporales más cortos tienden a generar muchas señales falsas.

Condiciones de mercado

Es eficaz en regímenes de reversión de tendencia o en puntos iniciales de formación de tendencia. No es adecuado para mercados con rangos de precios muy ajustados.

Estrategia de stop-loss

El uso del mínimo reciente para posiciones largas y del máximo para posiciones cortas puede ayudar a dimensionar esto de forma dinámica.

Tamaño de posición

Este proceso debe ser gradual y por etapas, ya que las señales iniciales tienden a ser más transitorias que definitivas.

Confirmación

El uso del RSI o de la pendiente de la media móvil también puede ayudar a complementar este patrón con confirmación para entradas más precisas.

Evite el sobreajuste

La ventana OBV, que usamos como 12, debe mantenerse relativamente corta para que sea más dinámica.

Filtro de noticias

Las noticias de gran impacto pueden distorsionar el volumen de lecturas; por lo tanto, siempre que sea posible, las entradas deben evitarse operaciones de entrada al menos 30 minutos antes y después de los principales acontecimientos noticiosos.

Ventana de pruebas retrospectivas

También es importante realizar pruebas en diversos regímenes de volatilidad, dada la sensibilidad al volumen.


Divergencia MACD + Tendencia alcista OBV

Nuestro tercer patrón detecta pequeños cambios de tendencia alcistas/bajistas al confirmar los rechazos de precios con las direcciones del MACD y la presión de volumen del OBV. Su enfoque se centra en los cambios de posición relativa, no en los niveles absolutos, como vimos anteriormente en el patrón 1. Las condiciones que dan la señal de compra son precios que forman mínimos más bajos, lo que crea una posible fuga de liquidez o una falsa señal junto con un histograma MACD ascendente y una creciente presión de volumen OBV. Estos tres indicadores se combinan para formar un escenario de divergencia alcista. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_2(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Low(X()) < Low(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) > OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && High(X()) > High(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) < OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

De manera similar, las condiciones de señal de venta son que el precio alcance máximos más altos con el MACD cayendo desde corrientes bajistas crecientes, que están respaldadas por un OBV descendente. Una vez más, esto sugiere una divergencia bajista, ya que el precio sube bruscamente, pero carece de la fuerza necesaria en términos de impulso y volumen. De esto se pueden extraer algunas ideas para el trading. En primer lugar, se trata de un agotamiento por reversión a corto plazo que simplemente utiliza confirmaciones de volumen e impulso. En segundo lugar, funciona bien en zonas de pausa de tendencia, como la tercera onda de Elliot, o en áreas importantes de soporte/resistencia. En tercer lugar, es ideal para operaciones de retroceso o configuraciones de reversión a la media. Las pruebas realizadas con este patrón tampoco nos dieron un resultado positivo al avanzar. A continuación se presenta el informe:

r2

A continuación se presenta una lista de recomendaciones de uso.

Tema

Recomendación

Periodo de tiempo

Los marcos temporales adecuados en este caso son de 1 hora o 30 minutos para las operaciones de reversión a corto plazo, mientras que los marcos diarios se utilizan para las configuraciones de swing trading.

Contexto de la señal

Este patrón se aprovecha mejor cuando se encuentra cerca de máximos/mínimos recientes o en zonas clave de soporte/resistencia. 

Vela de confirmación

Esperar a que aparezca una vela inversa, como un martillo o una estrella fugaz, puede ayudar a agudizar esta estrategia.

Estrategia de stop-loss

Estos valores pueden situarse más allá de los mínimos o máximos recientes para posiciones largas y cortas, respectivamente.

Objetivo de ganancias

Esto puede ser a nivel de canal medio o a nivel de estructura reciente, dependiendo del punto de entrada.

Evitar durante las tendencias

Debe evitarse operar en contra de las velas fuertes, ya que esto constituye una señal de contratendencia.

Combinar con RSI

La divergencia del RSI se puede incorporar para fortalecer la señal mediante la mejora de las entradas.

Prueba retrospectiva de activos volátiles

Entre los activos más adecuados para este patrón podrían figurar la mayoría de las materias primas y algunos índices vinculados a materias primas.


Inversión del histograma MACD + Soporte OBV

El cuarto patrón de señal está diseñado para detectar la continuación de la tendencia a corto plazo después de una corrección temporal en el impulso del MACD. Se centra en los retrocesos de impulso que se confirman mediante la dirección del OBV. Las condiciones para la señal de compra, en este patrón de continuación alcista, son que el histograma MACD aumente con respecto al valor anterior; y que el valor anterior también haya sido menor que el MACD anterior. Esto sucede cuando el OBV está en ascenso. Este patrón alcista marca una caída y una subida del impulso, con un volumen que respalda la recuperación, una señal clásica de la continuación de la tendencia. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_3(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X() + 1) < MACD(X() + 2) && OBV(X()) > OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X() + 1) > MACD(X() + 2) && OBV(X()) < OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

Por el contrario, las condiciones de señal de venta están indicadas por una caída del MACD; la barra anterior había indicado un ligero aumento en el MACD; mientras que el OBV está en descenso debido a la presión del volumen de venta. Este patrón bajista suele sugerir que una breve corrección alcista durante una tendencia bajista fue "superada" y los vendedores recuperaron el control. Una posible conclusión que se puede extraer de esto es que este patrón capta retrocesos que reanudan la dirección de la tendencia, una configuración que puede ser útil para los operadores que siguen tendencias o para los scalpers. Entran cuando se reanuda la tendencia, no en la ruptura inicial. Funciona bien en tendencias "limpias" sin muchos cambios bruscos. Este patrón tampoco mostró resultados positivos en la validación forward. A continuación se presenta el informe de las pruebas:

r3

A continuación se comparten recomendaciones adicionales sobre el uso de este patrón al realizar ajustes, preferiblemente para su uso individual en lugar de combinarlo con otros patrones.

Tema

Recomendación

Periodo de tiempo

Podría ser ideal para sistemas de seguimiento de tendencias de 15 minutos a 1 hora.

Contexto

Debe aplicarse estrictamente en mercados direccionales establecidos, evitando los mercados de consolidación.

Momento de entrada

Es preferible esperar a que se forme una vela significativa, como Marubozu o la vela envolvente.

Estrategia SL/TP

El stop-loss puede situarse justo después del nivel de retroceso, con objetivos de toma de ganancias que sean un múltiplo de esta distancia del stop-loss.

Filtro de volumen

La confirmación de que la subida/bajada del OBV no es plana, sino significativa, puede marcar la diferencia a largo plazo.

Evitar la repetición

Debe evitarse la reentrada si el patrón se repite sin que exista una tendencia definida.

Emparejamiento con filtro MA

Como filtro complementario, un EMA puede ayudar a establecer/confirmar la tendencia.

Filtro de volatilidad

El ATR o el indicador de Bollinger también pueden utilizarse para medir la fuerza de la tendencia.


Consolidación del MACD + Repunte del OBV

El patrón 4, nuestro quinto patrón, es una señal de detección de oscilación del MACD alrededor de la línea cero que funciona junto con la ruptura de dirección OBV. Su objetivo es identificar períodos de neutralidad del MACD, donde existe una sensación de equilibrio entre los alcistas y los bajistas. A continuación, comprueba si estos periodos fueron seguidos por una ruptura importante impulsada por el volumen. La interpretación de la señal de compra se produce cuando el MACD ha alcanzado su máximo y mínimo en un intervalo estrecho, cerca del límite cero. Una vez que esto sucede, buscamos un movimiento alcista del OBV que sea al menos un 0,5% mayor que su lectura anterior. Este patrón sugiere que la acumulación institucional está a punto de impulsar el precio al alza tras un período de consolidación. Implementamos esto en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_4(ENUM_POSITION_TYPE T)
{  int _index = -1;
   m_macd.Refresh(-1);
   if(m_macd.MaxValue(0, X(), 3, _index) >= 0.0 && m_macd.MinValue(0, X(), 3, _index) <= 0.0)// && fabs(m_macd.MinValue(0, X(), 3, _index) - m_macd.MaxValue(0, X(), 3, _index)) <= High(X()) - Low(X()))
   {  if(T == POSITION_TYPE_BUY && OBV(X()) >= 1.005 * OBV(X() + 1))
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && OBV(X()) <= 0.995 * OBV(X() + 1))
      {  return(true);
      }
   }
   return(false);
}

La señal de venta, al igual que la de compra, también muestra el MACD rondando el cero sin una tendencia clara. El OBV muestra entonces una tendencia a la baja del 0,5% con respecto a su lectura anterior, como señal de un fuerte aumento de la presión vendedora. Estos acontecimientos pretenden presagiar una ruptura bajista inminente del rango. Lo que hace especial al patrón 4 es su activación de baja latencia debido a su requisito de confirmación de volumen retardada. No emite muchas señales. Esto ayuda a evitar las falsas alarmas de los sistemas de ruptura basados únicamente en el precio. Al probarlo, también se observaron algunas operaciones que no se ajustaban al modelo de simulación prospectiva.

r4

A continuación se comparten las pautas de uso para este patrón.

Categoría

Recomendación

Condiciones de mercado

Resulta útil en mercados que se están consolidando antes de una ruptura.

Marcos temporales

Los marcos temporales de 1 a 4 horas podrían ser ideales para obtener señales más "limpias".

Confirmación

Puede utilizarse junto con la ruptura de velas japonesas o incluso con la expansión de las bandas de Bollinger.

Calidad del volumen

Es fundamental asegurarse de que la OBV no sea plana ni ruidosa; es importante que la tendencia sea suave.

Control de riesgos

Se puede utilizar la opción de colocar el stop loss justo por debajo del límite inferior del rango (para comprar) o del límite superior (para vender).

Filtro de volatilidad

Complementar la información con ATR o lógica de compresión de precios puede ayudar a detectar rangos de precios.


Posicionamiento del MACD respecto a cero + repunte del OBV

A continuación, se muestra un patrón de señal que constituye una configuración contratendencia respaldada por volumen. Sus características distintivas son que el MACD se mueve en la dirección opuesta a la tendencia del precio, teniendo en cuenta su posición respecto al cero. OBV necesita confirmar que el volumen de operaciones favorece el movimiento. El patrón 5 está diseñado para aprovechar los cambios de impulso iniciales, manteniendo la cautela dado que el histograma MACD aún se encuentra en la mitad opuesta. La señal de compra es el MACD en aumento, una señal de que el impulso alcista está cobrando fuerza, pero con su valor aún por debajo del nivel cero. El último punto significa que nuestro mercado aún se encuentra en una fase bajista. Un OBV en aumento indica que hay compradores acumulando posiciones. Puede interpretarse como una recuperación alcista dentro de un contexto bajista. En MQL5 implementamos esto de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X()) < 0.0 && OBV(X()) > OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X()) > 0.0 && OBV(X()) < OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

La señal de venta, la contraalcista, muestra que el MACD está cayendo, aunque todavía en territorio positivo, y el OBV también está disminuyendo. Un retroceso bajista en un régimen alcista. La ventaja del patrón 5 radica en que apunta con cautela a las reversiones tempranas, utilizando el volumen como indicador de convicción. No requiere crossovers completos. Puede utilizarse junto con las siguientes sugerencias. Este patrón tampoco se reproduce en nuestras pruebas limitadas, y el informe correspondiente se presenta a continuación.

r5

Área

Recomendación

Marcos temporales

Los gráficos de 1 hora y de 4 horas podrían funcionar, sin embargo, el gráfico diario evita el ruido y puede mostrar un contexto de tendencia más claro.

Filtro de volumen

Podría ser necesario en caso de que el OBV sea plano.

Evitar durante fluctuaciones volátiles.

Este patrón no está diseñado para mercados altamente volátiles.

Combinar con filtro de tendencia

Puede complementarse con la media móvil (MA) o el índice direccional medio (ADX) para confirmar el contexto de la tendencia.

Momento de entrada

A la espera de la confirmación de la vela o de una ruptura importante por encima de un mínimo o máximo significativo.

Gestión comercial

Utilizar un stop loss ajustado, o incluso realizar salidas parciales, puede ser seguro dada la naturaleza de reversión de este patrón.


MACD Tendencia estable en relación con cero + OBV extremo

Nuestro séptimo patrón, el indexado 6, es un patrón de detección de clímax de volumen de tendencia. Detecta una fuerte tendencia en una dirección determinada, donde el MACD se mantiene en un lado específico de la línea cero, y la relaciona con picos en el volumen OBV. Busca la continuidad de las tendencias. La señal de compra se registra cuando el MACD se mantiene positivo durante 12 barras, mientras que simultáneamente el OBV está cerca o por encima de su máximo de 12 velas, lo que implica que los compradores están acumulando agresivamente. Esto puede interpretarse como que el mercado se encuentra en una fase alcista constante, con un volumen que presagia la continuación de la tendencia. En MQL5 implementamos esto de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_6(ENUM_POSITION_TYPE T)
{  int _index = -1;
   m_macd.Refresh(-1);
   m_obv.Refresh(-1);
   if(T == POSITION_TYPE_BUY && m_macd.MinValue(0, X(), 12, _index) > 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && m_macd.MinValue(0, X(), 12, _index) < 0.0 && OBV(X()) <= m_obv.MaxValue(0, X(), 12, _index))
   {  return(true);
   }
   return(false);
}

Las características de la señal de venta son inversas: el MACD se mantiene por debajo de cero durante 12 velas o más, y el OBV también se encuentra cerca o en su mínimo de 12 velas. Esto se interpreta como un mercado bajo un control bajista constante, ya que el OBV confirma que los vendedores están impulsando el precio con un volumen elevado. Este patrón de señal tampoco avanzó, lo que eleva a 7 el total de intentos fallidos con este par de indicadores hasta el momento. Su informe se encuentra a continuación.

r6

A continuación, también se comparten las recomendaciones de uso de Pattern-6:

Área

Recomendación

Uso en mercados en tendencia

El patrón 6 prospera en mercados fuertes y con una dirección definida. Los mercados planos o con rangos de precios limitados deben evitarse.

Fuerza de impulso

Un filtro opcional para confirmar la intensidad puede ser el ADX, siendo un requisito previo para la entrada una lectura superior a 25.

Combinar con la acción del precio

Se pueden considerar las velas de ruptura, las barras internas o los rechazos de barras pin en zonas de soporte/resistencia.

Validez del volumen

El OBV debe mostrar una pendiente constante, sin patrones de OBV puntiagudos o planos.

Estrategia de salida

Se puede considerar el uso de stops dinámicos o la salida en la extensión de Fibonacci.


Divergencia oculta MACD + OBV Extremo

Nuestro octavo patrón de señal tiene características de compra definidas por mínimos de precios descendentes, un MACD ascendente y un OBV con tendencia alcista. Esto puede interpretarse como que el precio no bajó lo suficiente mientras el volumen aumentaba y el impulso alcista estaba presente, como lo demuestra el MACD. Lo codificamos de la siguiente manera en MQL5.

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Low(X()) > Low(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) > OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && High(X()) < High(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) < OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

Por el contrario, la configuración de venta presenta máximos ascendentes, un MACD descendente y un OBV descendente. Al igual que la tendencia alcista, apunta a una divergencia oculta. De los diez patrones de señales que analizamos en este artículo, este es el único que genera ganancias al avanzar. A continuación se comparte el informe de las pruebas.

r7

A continuación, también se comparten recomendaciones para perfeccionar o mejorar este patrón:

Área

Mejores prácticas

Confirmar con la estructura

Este patrón podría reforzarse abriendo operaciones en líneas de tendencia, niveles de soporte y resistencia, o zonas de Fibonacci.

Apilar con otras señales

Las fluctuaciones adversas también podrían minimizarse incorporando la divergencia del RSI o patrones de reversión de velas como el martillo, la vela envolvente, etc.

Evitar en tendencias fuertes

Esto no es un patrón que siga la tendencia, por lo que los especuladores deben mantenerse alejados.

Utilice el stop-loss con criterio

Colocar órdenes de stop más allá de los máximos/mínimos recientes presupone una reacción a corto plazo, no un cambio de tendencia a largo plazo.


Cruce de la señal del MACD y soporte del OBV

Nuestro penúltimo patrón de señal cumple sus condiciones de compra cuando el MACD está por encima de 0 tras un giro en U alcista. Esto también ocurre cuando OBV indica un flujo de volumen positivo. Se trata de un cambio de tendencia alcista que se confirma con el aumento del volumen de operaciones. En MQL5, lo codificamos de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 8.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_8(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && MACD(X() + 1) > 0.0 && MACD_UP(X())  && OBV(X()) > OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && MACD(X() + 1) < 0.0 && MACD_DN(X())  && OBV(X()) < OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

La señal de venta indica que el MACD se encuentra en territorio bajista, por debajo de cero, tras un giro descendente. El OBV también estaría cayendo debido a la presión del volumen de ventas. Este patrón, lamentablemente, al igual que la mayoría de los que aparecen en este artículo, tampoco permite avanzar de forma rentable. Su informe se presenta a continuación:

r8

A continuación se detallan en una tabla las posibles medidas que se pueden adoptar para mejorar su rendimiento:

Área de enfoque

Sugerencia

Momento de entrada

Opere inmediatamente después del cruce del MACD solo si el OBV coincide. Evita el retraso.

Validación de volumen

OBV no debe contradecir ni desalinearse con el cruce. Debe evitarse la OBV plana o divergente.

Combinar con la estructura de precios

Al igual que muchas otras señales, este patrón es más potente en niveles clave de soporte/resistencia.

Evita los rangos

En mercados laterales, las señales de cruce del MACD pueden ser ruidosas a pesar de la confirmación del OBV. Opere con activos en tendencia.

Colocación de parada

Utilice el ATR o los máximos/mínimos recientes de las velas para colocar stops dinámicos; el patrón implica una recuperación de la tendencia, no solo un rebote.


Cruce de la señal del MACD en cero y repunte del OBV

Nuestro último patrón, el patrón 9, es una señal de reversión de tendencia que intenta identificar el inicio de una nueva tendencia. El objetivo de entrar en el mercado tras un cambio de tendencia es maximizar la obtención de beneficios, pero, como siempre, hay que estar atento a las fluctuaciones adversas. La señal de compra se produce cuando el MACD cruza el cero desde abajo para cerrar por encima de él en medio de un cambio de dirección. Con un aumento apreciable del OBV, superior al 5 %. Implementamos MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 9.                                             |
//+------------------------------------------------------------------+
bool CSignalMACD_OBV::IsPattern_9(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && MACD(X() + 1) < 0.0 && MACD(X()) > 0.0 && MACD_UP(X())  && OBV(X()) >= 1.005 * OBV(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && MACD(X() + 1) > 0.0 && MACD(X()) < 0.0 && MACD_UP(X())  && OBV(X()) <= 0.995 * OBV(X() + 1))
   {  return(true);
   }
   return(false);
}

El patrón de venta que refleja el alcista también implicaría que el MACD cruce el cero desde arriba para cerrar por debajo de él tras un giro descendente. Simultáneamente, el OBV caería en un porcentaje considerable. Estamos utilizando un 5 % porque este umbral es muy sensible; sin embargo, los lectores pueden experimentar con diferentes valores. Lamentablemente, con nuestro corto período de prueba de 2 años, este patrón tampoco pudo generar ganancias a futuro. Su informe se presenta a continuación:

r9

Podría mejorarse mediante cualquiera de las siguientes medidas, tal como también hemos argumentado a favor de los otros 9 patrones mencionados anteriormente.

Categoría Mejores prácticas

Selección de activos

Se recomienda su uso en instrumentos con un volumen diario elevado: los principales pares de divisas, índices y acciones o criptomonedas con alta liquidez.

Condiciones de mercado

Debe evitarse en mercados laterales, donde los cruces de la línea cero del MACD pueden generar muchas señales falsas. La combinación con indicadores de tendencia como el ADX podría ser más significativa.

Umbrales de volumen

El filtro OBV (por ejemplo, 0,5%) se puede ajustar en función del mercado. Se pueden adoptar umbrales más altos para activos volátiles como las criptomonedas.

Gestión comercial

Se puede aplicar el uso de stop-loss dinámico (por ejemplo, basado en ATR o en mínimos/máximos de oscilación). Se puede considerar establecer un nivel inicial de toma de ganancias en función de la relación riesgo-recompensa (por ejemplo, 1:2).

Filtrado de ruido

Para mejorar la fiabilidad, combine el Patrón-9 con confirmaciones de velas japonesas, como también se mencionó con los otros patrones de señales anteriores.



Conclusión

En este artículo hemos introducido la combinación de un indicador de tendencia y un indicador de volumen, con resultados de prueba desalentadores. Las pruebas forward con una división de datos de prueba del 50-50 siempre son arriesgadas cuando la ventana de datos de prueba es tan pequeña como la nuestra; sin embargo, estos resultados, en comparación con otros pares de indicadores que hemos analizado en el pasado, están claramente por debajo del promedio. Normalmente, realizamos un seguimiento de las introducciones de emparejamiento de indicadores con aplicaciones de aprendizaje supervisado y, dado que, basándonos en nuestra última iteración, ahora analizamos patrones que no lograron avanzar, tenemos muchas opciones para elegir en el próximo artículo.


Nombre Descripción
WZ-71.mq5 Asesor experto creado con el asistente, cuyo encabezado indica los archivos utilizados en su creación.
SignalWZ-71.mqh Archivo de clase de señal personalizada para la combinación de indicadores.

Los archivos adjuntos están diseñados para ser ensamblados en un Asesor Experto con la ayuda del asistente MQL5. Para los nuevos lectores, hay una guía aquí sobre cómo hacerlo.

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

Archivos adjuntos |
SignalWZ_71.mqh (19.94 KB)
WZ-71.mq5 (7.94 KB)
Del básico al intermedio: Colas, listas y árboles (VIII) Del básico al intermedio: Colas, listas y árboles (VIII)
En este artículo veremos cómo implementar un algoritmo de equilibrado del árbol. Lo que presentaré aquí es mi propuesta para implementar este algoritmo. Existen muchos otros algoritmos con el mismo objetivo. Sin embargo, cada uno tiene sus ventajas y sus inconvenientes. Depende de ti, mi querido lector, estudiarlos y encontrar el que mejor se adapte a tus necesidades.
Simulación de mercado: Position View (XVIII) Simulación de mercado: Position View (XVIII)
En este artículo mostré, de la forma más didáctica posible, cómo puedes modificar y desarrollar un código capaz de cumplir determinados objetivos alterando lo mínimo posible un código ya existente. Añadiremos un indicador de volumen y, al mismo tiempo, impediremos que el usuario u operador elimine los objetos que se están creando por el indicador de posición.
Simulación de mercado: Position View (XIX) Simulación de mercado: Position View (XIX)
Una de las cuestiones que más me ha incomodado es que la clase C_ElementsTrade contenga código que permite acceder a las posiciones. No lo interpretes como un fallo, porque en realidad no lo es. Sin embargo, hace que algunas de las tareas que deberemos realizar más adelante sean algo más propensas a errores. Todo el trabajo destinado a implementar el indicador de posición se ha desarrollado pensando en utilizarlo dentro del sistema de repetición/simulador. Sin embargo, cuando se ejecute en ese entorno, no tendremos acceso alguno a una posición real. Por tanto, cualquier llamada a la biblioteca de MQL5 destinada a consultar datos de una posición no tendrá ningún efecto en el código.
Del básico al intermedio: Colas, listas y árboles (VII) Del básico al intermedio: Colas, listas y árboles (VII)
En este artículo mostraremos y explicaremos con claridad cómo se elimina un nodo de un árbol. Este proceso suele confundir a los principiantes más que ayudarlos a comprender cómo se lleva a cabo y por qué debe realizarse de una forma determinada.