Aprendiendo a diseñar un sistema de trading con DeMarker
Introducción
Bienvenidos a un nuevo artículo de la serie dedicada a la creación de sistemas comerciales basados en indicadores técnicos populares. En este artículo, nos familiarizaremos con otra herramienta técnica que, de usarse correctamente, podrá mejorar nuestros resultados comerciales. Este indicador es el indicador de DeMark (DeMarker). El presente artículo abarcará varios temas:
- Definición del indicador DeMarker
- Estrategias basadas en el indicador DeMarker
- Esquema de estrategias por DeMarker
- Sistemas comerciales según DeMarker
- Conclusión
En este artículo, usaremos la plataforma comercial MetaTrader 5, el editor de código incorporado MetaEditor y el lenguaje de programación MQL5 (MetaQuotes Language) para escribir asesores. Si no sabe cómo descargar o usar MetaTrader 5, lea la sección "Escribiendo el código MQL5 en el MetaEditor" en uno de los artículos anteriores: allí se describe todo con detalle.
Le recomendamos repasar por su cuenta todo lo escrito en este artículo si realmente desea desarrollar sus habilidades comerciales y programáticas para obtener el mayor beneficio posible, pues la práctica es un factor esencial en cualquier etapa del aprendizaje. Asimismo, le recordamos que el propósito principal de las estrategias analizadas aquí es aprender el concepto básico del indicador. Todas las estrategias presentadas tienen fines educativos. Si desea usar alguna de ellas en el comercio, asegúrese de probarla a fondo para comprobar que sea rentable o adecuada para su comercio.
¡Atención! Toda la información del presente artículo se ofrece «tal cual», únicamente con fines ilustrativos, y no supone ningún tipo de recomendación. El artículo no garantiza ningún resultado en absoluto. Todo lo que ponga en práctica usando este artículo como base, lo hará bajo su propia cuenta y riesgo; el autor no garantiza resultado alguno.
Definición del indicador DeMarker
Para aprender a trabajar correctamente con el indicador DeMarker, primero deberemos entender qué es, qué mide, cómo calcularlo y cómo interpretar sus lecturas. El indicador DeMarker es un oscilador creado por el analista técnico Thomas DeMark. Así, queda claro de inmediato de dónde procede el nombre del indicador: de su creador. Podemos encontrar diferentes variantes: DeMarker, DeM, Demark. Esta herramienta técnica mide la demanda de un instrumento financiero y valora la dirección del mercado comparando los precios máximos y mínimos actuales con los precios anteriores.
Podemos calcular el indicador manualmente en unos pocos pasos:
DMark (i) = SMA (DeMax, N) / (SMA (DeMax, N) + SMA (DeMin, N))
donde:
- DMark (i) = valor actual de DeMark
- SMA = media móvil simple
- DeMax = valor máximo del indicador de DeMark
- N = periodo
- DeMin = valor mínimo del indicador de DeMark
El valor DeMax se calcula de la siguiente forma:
DeMax (i) = HIGH (i) - HIGH (i - 1), donde HIGH es el máximo
De lo contrario:
DeMax (i) = 0
El valor DeMin se calcula de la siguiente forma:
DeMin (i) = LOW (i - 1) - LOW (i), donde LOW es el mínimo
De lo contrario:
DeMin (i) = 0
El indicador dibuja una línea que oscila entre los niveles 0 y 1 y muestra la demanda de un instrumento financiero. Sin embargo, ahora no necesitamos calcular el indicador manualmente, ya que existe un indicador listo para usar en el terminal comercial MetaTrader 5: todo lo que tenemos que hacer es seleccionarlo de la lista de indicadores.
Cómo ejecutar el indicador DeMarker en un gráfico en MetaTrader 5:
En la plataforma comercial MetaTrader 5, seleccionamos el menú Insertar --> Indicadores --> Osciladores --> DeMarker.
Después de ello, se abrirá la ventana de parámetros del asesor: Tendrá el aspecto que sigue:
1 - período de cálculo
2 - color de la línea del indicador
3 - estilo de línea del indicador
4 - grosor de la línea del indicador
Establecemos los parámetros, presionamos el botón OK y el indicador se iniciará en el gráfico como se muestra a continuación:
La captura de pantalla anterior muestra que el indicador se ha iniciado en una ventana de gráfico adicional: ha aparecido una línea que oscila entre los niveles 0 y 1. Los valores del indicador deberán interpretarse según la posición de la línea en esta ventana. Si la línea se acerca a 0,70, significará que el mercado se encuentra en una situación de sobrecompra. Los valores alrededor de 0,30 indicarán las condiciones de sobreventa.
Estrategias basadas en el indicador DeMarker
En este apartado, analizaremos las opciones de uso del indicador DeMarker según su concepto. Para ello, nos familiarizaremos con tres estrategias simples.
En esta estrategia, obtendremos señales del indicador de DeMark fuerte o débil. Dicha señal se generará usando como base al análisis del valor de DeMarker y el valor medio del indicador durante los últimos 5 periodos. Si el valor actual del indicador DeMarker es más alto que el valor promedio de los últimos cinco periodos, esto nos indicará la presencia de un valor fuerte. Por el contrario, si el valor actual del indicador DeMarker es inferior al valor promedio de los últimos cinco periodos, esto nos indicará la presencia de un valor débil.
Dicho de forma más sencilla:
Valor de DeMarker >= Promedio de 5 periodos DeMarker --> DeMarker fuerte
Valor de DeMarker <= Promedio de 5 periodos DeMarker --> DeMarker débil
Según esta estrategia, recibiremos señales cuando el indicador entre en las zonas de sobrecompra y sobreventa. Si el valor actual de DeM es mayor o igual a 0,70, será una señal sobre la entrada en una zona de sobrecompra. Si el valor actual de DeM es menor o igual a 0,30, será una señal de una zona de sobreventa.
Esquemáticamente:
Valor de DeMarker >= 0.70 --> Sobrecompra
Valor de DeMarker <= 0.30 --> Sobreventa
Esta estrategia generará señales de divergencia alcistas o bajistas que nos darán una idea de la probabilidad de que suceda un cambio en el movimiento actual. Para ello, deberemos analizar cuatro valores: el máximo actual y el máximo anterior, así como el valor actual y anterior del indicador DeMarker. Aquí analizaremos las variantes más simples de divergencia. Resultará más eficiente comparar y analizar los máximos y mínimos del precio con los máximos y mínimos del indicador. En nuestra estrategia simple, obtendremos una señal de divergencia alcista si el máximo actual es mayor que el máximo anterior, mientras que el valor actual de DeMarker es menor que su valor anterior. Si el mínimo actual es menor que el máximo anterior y el valor actual del indicador es mayor que su valor anterior, esto será una señal de divergencia alcista.
Si lo miramos de forma esquemática:
Máximo actual > máximo anterior y valor de DeM actual < DeM anterior --> divergencia bajista
Mínimo actual < mínimo anterior y DeMarker actual > anterior --> divergencia alcista.
Esquema de estrategias según DeMarker
En la sección anterior, utilizando estrategias simples como ejemplo, aprendimos cómo usar el indicador DeMarker. En esta sección, vamos a crear para cada estrategia esquemas paso a paso que luego nos ayudarán a desarrollar sistemas comerciales basados en ellos.
El sistema comercial para esta estrategia debería verificar automáticamente y luego comparar dos valores. Hablamos del valor actual del indicador DeMarker y el promedio de los últimos cinco valores del indicador. Si el valor actual es mayor que el promedio, el sistema comercial mostrará un comentario en el gráfico con los valores siguientes:
- El indicador DeMarker es fuerte
- Valor actual de DeMarker
- Promedio de 5 periodos de DeMarker
Si el valor actual está por debajo del promedio, el sistema comercial mostrará otro comentario en el gráfico:
- El indicador DeMarker es débil
- Valor actual de DeMarker
- Promedio de 5 periodos de DeMarker
El sistema basado en esta estrategia comprobará las condiciones de formación de la señal y mostrará esta señal en el gráfico. Para ello, el sistema comprobará tres valores: el valor actual del indicador DeMarker y sus dos niveles: 0,70 y 0,30. Si el valor actual de DeMarker es mayor o igual a 0,70, el sistema comercial mostrará en el gráfico el siguiente comentario:
- Sobrecompra
- Valor de DeMarker
De lo contrario, si el valor actual de DeMarker es menor o igual a 0,30, el sistema comercial mostrará en el gráfico el siguiente comentario:
- Sobreventa
- Valor de DeMarker
Con esta estrategia, crearemos un sistema comercial que podremos utilizar para generar señales de divergencia alcistas o bajistas. Para ello, el sistema comprobará cuatro valores. Si el máximo actual es mayor que el anterior y el valor actual de DeMark es menor que su valor anterior, el sistema comercial debería mostrar en el gráfico el siguiente comentario:
- Divergencia bajista
- Máximo actual
- Máximo anterior
- Valor actual de DeMarker
- Valor anterior de DeMarker
En la situación opuesta, si el mínimo actual es más bajo que el anterior y el valor actual de DeMark es más alto que su valor anterior, el sistema comercial debería mostrar en el gráfico otro comentario:
- Divergencia alcista
- Máximo actual
- Máximo anterior
- Valor actual de DeMarker
- Valor anterior de DeMarker
Sistemas comerciales según DeMarker
En esta parte, crearemos sistemas comerciales para cada una de las estrategias analizadas. Los sistemas se ejecutarán en MetaTrader 5 y generarán señales de forma automática. Primero, escribiremos un programa simple que servirá como base para todos los otros sistemas. Este programa mostrará el valor actual del indicador de DeMark en un comentario en el gráfico. El siguiente código nos muestra cómo crear un sistema de este tipo.
Primer paso
Creamos el array deMarkerArray usando la función double para obtener valores de punto flotante.
double deMarkerArray[];
Segundo paso
Usando la función ArraySetAsSeries, asignamos la bandera AS_SERIES al array deMarkerArray: la función retorna un valor booleano true o false según el resultado.
ArraySetAsSeries(deMarkerArray,true);
Tercer paso
Definimos el indicador DeMarker usando la función "DeMarker", que retorna el identificador del indicador. Parámetros de la función:
- symbol — nombre del símbolo; nosotros tenemos "_Symbol", es decir, calculamos el indicador según el símbolo del gráfico actual.
- period — marco temporal para el cálculo; el valor "_Period" señalará que el indicador se calculará en el marco temporal actual.
- ma_period — periodo promedio, usaremos 14.
int deMarkerDef = iDeMarker(_Symbol,_Period,14);
Cuarto paso
Obtenemos los datos del búfer del indicador DeMarker usando la función CopyBuffer. Parámetros de la función:
- indicador_handle — manejador estándar del indicador deMarkerDef
- buffer_num — número del búfer de indicador; lo estableceremos en 0.
- start_pos — indica la posición del inicio del cálculo; indicaremos 0.
- count — cantidad de datos a copiar; indicaremos 3.
- buffer[] — definimos el array de precios a copiar; en nuestro caso, deMarkerArray
CopyBuffer(deMarkerDef,0,0,3,deMarkerArray);
Quinto paso
Determinamos el valor actual de deMarker utilizando la función NormalizeDouble, que retorna un valor double. Parámetros de la función:
- value — número normalizado
- digits — número de dígitos decimales
double deMarkerVal = NormalizeDouble(deMarkerArray[0],6);
Paso seis
Usando la función Comment, mostraremos un comentario en el gráfico con el valor actual del indicador DeMarker.
Comment("DeMarker Value is ",deMarkerVal);
A continuación, mostraremos el código completo del programa que muestra el valor del indicador en el gráfico:
//+------------------------------------------------------------------+ //| Simple DeMarker System.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+void OnTick() void OnTick() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,3,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],6); Comment("DeMarker Value is ",deMarkerVal); } //+------------------------------------------------------------------+
Después de realizar la compilación, el asesor aparecerá en la ventana del Navegador en MetaTrader 5:
Clicamos dos veces en el archivo o lo arrastramos y soltamos en el gráfico. Después de eso, aparecerá la ventana del asesor.
Pulsamos OK y el programa (asesor) se iniciará en el gráfico como se muestra en la figura siguiente:
Como podemos ver, en la esquina superior derecha del gráfico ha aparecido una indicación de que el asesor experto Simple DeMarker está funcionando en el gráfico. El asesor experto se iniciará y generará señales que se mostrarán en el gráfico. Deberemos repetir los mismos pasos para compilar todos los códigos para las estrategias analizadas anteriormente, después de lo cual podremos ejecutarlos en la plataforma MetaTrader 5.
A continuación, le mostramos ejemplos de comentarios generados al probar esta estrategia.
Como podemos ver, en la esquina superior izquierda del gráfico se muestra un comentario con el valor actual del indicador DeMarker.
A continuación, le mostramos el código completo del sistema comercial basado en esta estrategia.
//+------------------------------------------------------------------+ //| DeMarker Strength.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,6,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerVal1 = NormalizeDouble(deMarkerArray[1],4); double deMarkerVal2 = NormalizeDouble(deMarkerArray[2],4); double deMarkerVal3 = NormalizeDouble(deMarkerArray[3],4); double deMarkerVal4 = NormalizeDouble(deMarkerArray[4],4); double deMarkerVal5 = NormalizeDouble(deMarkerArray[5],4); double deMarkerAvgVal = (deMarkerVal1+deMarkerVal2+deMarkerVal3+deMarkerVal4+deMarkerVal5)/5; if(deMarkerVal>deMarkerAvgVal) { Comment("DeMarker is strong","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); } if(deMarkerVal<deMarkerAvgVal) { Comment("DeMarker is weak","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); } } //+------------------------------------------------------------------+
Diferencias en este código:
Determinamos los últimos cinco valores del indicador DeMarker usando la función NormalizeDouble además del valor actual del indicador, que hemos determinado anteriormente usando la misma función.
double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerVal1 = NormalizeDouble(deMarkerArray[1],4); double deMarkerVal2 = NormalizeDouble(deMarkerArray[2],4); double deMarkerVal3 = NormalizeDouble(deMarkerArray[3],4); double deMarkerVal4 = NormalizeDouble(deMarkerArray[4],4); double deMarkerVal5 = NormalizeDouble(deMarkerArray[5],4);
Calculamos el deMarkerAvgVal promedio según los cinco valores de DeMarker obtenidos. Para ello, usaremos la función double, que crea la variable deMarkerAvgVal. El valor de la variable será igual a la suma de los últimos cinco valores dividida por cinco.
double deMarkerAvgVal = (deMarkerVal1+deMarkerVal2+deMarkerVal3+deMarkerVal4+deMarkerVal5)/5;
Ajuste de las condiciones de la estrategia
Comparación del valor actual del indicador y deMarkerAvg. Se formará una fuerte señal deMarker si el valor actual es mayor que deMarkerAvg. Para hacer esto, usaremos la instrucción If:
if(expression) --> operator
Si se da un caso fuerte, cuando deMarkerVal es mayor que deMarkerAvgVal (que es la expresión en la sintaxis), necesitaremos que el sistema comercial devuelva una señal de fuerza como comentario en el gráfico (operator).
if(deMarkerVal>deMarkerAvgVal) { Comment("DeMarker is strong","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); }
Si se da un caso débil, el valor actual de deMarker será inferior al valor promedio, y en el gráfico también se mostrará el indicador correspondiente con una lectura débil.
if(deMarkerVal<deMarkerAvgVal) { Comment("DeMarker is weak","\n", "Current DeMarker Value is ",deMarkerVal,"\n", "AVG DeMarker Value is ",deMarkerAvgVal); }
Después de compilar el programa y ejecutarlo desde el Navegador, en el gráfico aparecerá el asesor experto para esta estrategia:
En la esquina superior derecha del gráfico ha aparecido una indicación sobre el funcionamiento del asesor experto en el gráfico. El asesor se está ejecutando y generando señales; a continuación le mostramos algunos ejemplos de prueba de las señales.
En caso de una señal fuerte:
El gráfico en la esquina superior izquierda muestra que el sistema comercial ha generado una señal basada en esta estrategia.
- La lectura de DeMarker es fuerte --> porque el DeMarker actual está por encima del promedio de los cinco valores anteriores.
- El valor actual del DeMarker.
- El valor medio de DeMarker.
En el caso de una señal débil:
La señal correspondiente se ha mostrado en el gráfico, en la esquina superior izquierda:
- La lectura de DeMarker es débil --> porque el valor actual de DeMarker está por debajo del promedio de los cinco valores anteriores.
- El valor actual del DeMarker.
- El valor medio de DeMarker.
Código para esta estrategia:
//+------------------------------------------------------------------+ //| Simple DeMarker System.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+void OnTick() void OnTick() { double deMarkerArray[]; ArraySetAsSeries(deMarkerArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); CopyBuffer(deMarkerDef,0,0,3,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],6); if(deMarkerVal<=0.30) { Comment("Oversold","\n", "DeMarker Value is ",deMarkerVal); } if(deMarkerVal>=0.70) { Comment("Overbought","\n", "DeMarker Value is ",deMarkerVal); } if(deMarkerVal>0.30 && deMarkerVal<0.70) { Comment("DeMarker Value is ",deMarkerVal); } } //+------------------------------------------------------------------+
Diferencias en este código:
Condiciones de esta estrategia:
En el caso de una señal de sobreventa, cuando el valor actual es menor o igual a 0,30, esto será parte de expression (expresión) en la función if; operator será una señal de sobreventa. Precisamente esta señal aparecerá en el gráfico.
if(deMarkerVal<=0.30) { Comment("Oversold","\n", "DeMarker Value is ",deMarkerVal); }
Se generará una señal de sobrecompra cuando el valor actual de DeMark sea mayor o igual a 0,70.
if(deMarkerVal>=0.70) { Comment("Overbought","\n", "DeMarker Value is ",deMarkerVal); }
Si el valor actual está entre 0,30 y 0,70, no habrá señal.
if(deMarkerVal>0.30 && deMarkerVal<0.70) { Comment("DeMarker Value is ",deMarkerVal); }
Después de compilar el código y ejecutar el programa, el asesor comenzará a funcionar en el gráfico:
Ahora estamos listos para obtener las señales para esta estrategia. A continuación, le mostraremos algunos ejemplos de señales de prueba.
En caso de sobrecompra:
El gráfico en la esquina superior izquierda mostrará la señal generada y los valores adicionales:
- Sobrecompra
- Valor actual de DeMarker
En caso de sobreventa:
La estrategia ha generado una señal:
- Sobreventa
- Valor actual de DeMarker
Si no hay señal:
No hay señal, solo se mostrará el valor actual.
A continuación, le mostraremos el código completo para crear un sistema comercial para la tercera estrategia:
//+------------------------------------------------------------------+ //| DeMarker Divergence.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double deMarkerArray[]; MqlRates pArray[]; ArraySetAsSeries(deMarkerArray,true); ArraySetAsSeries(pArray,true); int deMarkerDef = iDeMarker(_Symbol,_Period,14); int pData = CopyRates(_Symbol,_Period,0,14,pArray); CopyBuffer(deMarkerDef,0,0,14,deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerPrevVal = NormalizeDouble(deMarkerArray[1],4); double currentHigh = NormalizeDouble(pArray[0].high,6); double currentLow = NormalizeDouble(pArray[0].low,6); double prevHigh = NormalizeDouble(pArray[1].high,6); double prevLow = NormalizeDouble(pArray[1].low,6); if(currentHigh>prevHigh && deMarkerVal<deMarkerPrevVal) { Comment("Bearish divergence","\n", "Current High is ",currentHigh,"\n", "Prev. High Value is ",prevHigh,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); } if(currentLow<prevLow && deMarkerVal>deMarkerPrevVal) { Comment("Bullish divergence","\n", "Current Low is ",currentLow,"\n", "Prev. Low Value is ",prevLow,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); } } //+------------------------------------------------------------------+
Diferencias en este código:
Creamos dos variables: deMarkerArray usando la función double y pArray (precios) usando la función MqlRates, que almacena la información sobre los precios, el volumen y el spread.
double deMarkerArray[]; MqlRates pArray[];
Asignamos la bandera AS_SERIES a estas dos variables.
ArraySetAsSeries(deMarkerArray,true); ArraySetAsSeries(pArray,true);
Definimos deMarketDef, pData
int deMarkerDef = iDeMarker(_Symbol,_Period,14); int pData = CopyRates(_Symbol,_Period,0,14,pArray);
Rellenamos deMarkerArray
CopyBuffer(deMarkerDef,0,0,14,deMarkerArray);
Declaramos deMarkerVal, deMarkerPrevVal, el máximo actual, el mínimo actual, el máximo anterior y el mínimo anterior
double deMarkerVal = NormalizeDouble(deMarkerArray[0],4); double deMarkerPrevVal = NormalizeDouble(deMarkerArray[1],4); double currentHigh = NormalizeDouble(pArray[0].high,6); double currentLow = NormalizeDouble(pArray[0].low,6); double prevHigh = NormalizeDouble(pArray[1].high,6); double prevLow = NormalizeDouble(pArray[1].low,6);
Condiciones de la estrategia.
En caso de divergencia bajista:
if(currentHigh>prevHigh && deMarkerVal<deMarkerPrevVal) { Comment("Bearish divergence","\n", "Current High is ",currentHigh,"\n", "Prev. High Value is ",prevHigh,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); }
En caso de divergencia alcista:
if(currentLow<prevLow && deMarkerVal>deMarkerPrevVal) { Comment("Bullish divergence","\n", "Current Low is ",currentLow,"\n", "Prev. Low Value is ",prevLow,"\n", "Current DeMarker Value is ",deMarkerVal,"\n", "Prev. DeMarker Value is ",deMarkerPrevVal); }
Después de la compilación, buscamos el programa Expert Advisor en la ventana Navegador de MetaTrader 5 y lo ejecutamos. El programa comenzará a funcionar en el gráfico:
Como podemos ver, en la esquina superior derecha del gráfico ha aparecido una indicación señalando que el asesor está funcionando en el gráfico. El asesor experto se iniciará y generará señales que se mostrarán en el gráfico.
En caso de divergencia alcista:
La señal generada se mostrará en el comentario del gráfico en la esquina superior izquierda:
- Divergencia alcista
- Máximo actual
- Máximo anterior
- Valor actual de DeMarker
- Valor anterior de DeMarker
En caso de divergencia bajista:
La señal generada se mostrará en el comentario del gráfico en la esquina superior izquierda:
- Divergencia bajista
- Máximo actual
- Máximo anterior
- Valor actual de DeMarker
- Valor anterior de DeMarker
Conclusión
Bien, ya hemos analizado con detalle otra herramienta técnica: el indicador DeMark (DeMarker, DeM). Hemos aprendido qué es, qué mide, cómo calcularlo y cómo interpretar las lecturas. También hemos visto algunas estrategias simples como ejemplo del uso del indicador. Aquí están dichas estrategias simples:
- Fuerza de DeMarker — genera señales de fuerza o debilidad basadas en la posición del valor actual de DeMarker en relación con su media móvil de 5 periodos.
- DeMarker, OB - OS — genera señales de sobrecompra o sobreventa basadas en la posición del valor actual de DeMarker en una escala de 0 a 1.
- Divergencia según DeMarker — señales de una divergencia alcista o bajista según la posición del indicador DeMarker actual y anterior, así como el extremo actual y anterior uno respecto al otro.
Después de ello, hemos desarrollado un plan paso a paso para cada estrategia analizada, cosa que debería ayudarnos a crear un sistema comercial. Luego hemos pasado al tema más interesante, la escritura de sistemas comerciales en MQL5 que puedan generar señales de forma automática y precisa. Estos están pensados para su uso en la plataforma comercial MetaTrader 5.
Una vez más, resultará esencial que ponga a prueba cuidadosamente cualquier nuevo conocimiento antes de aplicarlo a su cuenta real: así se asegurará de que se adapte a su estilo y comprensión del comercio. Al fin y al cabo, lo que funciona para otros no tiene por qué funcionar para usted. Esperamos que haya disfrutado el artículo y haya aprendido algo nuevo de él. Si lo ha encontrado útil, podrá leer los artículos anteriores de esta serie para aprender a desarrollar sistemas comerciales basados en indicadores técnicos populares.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/11394
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso