![Aprendiendo a diseñar un sistema comercial basado en Momentum](https://c.mql5.com/i/articles/overlay.png)
Aprendiendo a diseñar un sistema comercial basado en Momentum
Introducción
En el artículo anterior, mencionamos la importancia de detectar las tendencias, es decir, de determinar la dirección del movimiento del precio. Y esto es importante, porque según esta dirección o tendencia, podremos tomar decisiones comerciales correctas. Por lo tanto, podemos decir que determinar la tendencia o dirección del mercado nos ayuda a tomar decisiones comerciales más fundamentadas, y también a mejorar los resultados. De ahí que sea tan importante analizar y determinar la tendencia del mercado.
Otro factor que también puede mejorar el proceso de toma de decisiones es la capacidad de determinar si la tendencia encontrada es fuerte o débil, es decir, si dicha tendencia actual proseguirá o no. Hay muchas herramientas diferentes para ello. En este artículo, vamos a trabajar con una de esas herramientas, el indicador Momentum. Ayuda a comprender mejor la tendencia porque Momentum mide la velocidad de los precios o de una tendencia. Sobre esto hablaremos en el artículo.
En este artículo, estudiaremos el impulso con detalle, veremos cómo usarlo y desarrollaremos un sistema comercial simple en MQL5 para complementar las posibilidades del indicador de impulso con la magia de la programación, lo cual hará que el comercio sea más fácil, más cómodo y más eficiente. Asimismo, en este artículo, abordaremos los siguientes temas:
- Definición de impulso
- Estrategia comercial basada en el indicador Momentum
- Esquema del sistema comercial Momentum
- Sistema comercial Momentum
- Conclusión
Podremos leer más información sobre el indicador Momentum en la primera parte "Definición de impulso". Vamos a considerar qué es el indicador Momentum y cómo se calcula. Luego, nos familiarizaremos con una estrategia simple que nos permitirá comprender mejor el indicador Momentum y cómo puede resultar útil. Después, desarrollaremos un plan de sistema comercial para la estrategia comercial Momentum analizada. Este plan nos ayudará a desarrollar un sistema en MQL5. A continuación, escribiremos el código en sí y aprenderemos a ejecutarlo. El sistema resultante nos mostrará de forma automática las señales de la estrategia comercial.
En este artículo, volveremos a utilizar el terminal MetaTrader 5 para ejecutar los programas de este sistema comercial. Además, escribiremos el código en el MetaQuotes Language Editor (MetaEditor), que se encuentra integrado en MetaTrader 5. Si aún no ha instalado la plataforma MetaTrader 5, podrá descargarla a través del enlace: https://www.metatrader5.com/es/download
Descargue el instalador, y luego instale y abra MetaTrader 5. Esta es la ventana que podrá ver:
A continuación, deberemos abrir el editor de código MetaEditor, en el que escribiremos el código. Puede abrirlo de varias formas:
- Presione F4 en su teclado mientras la ventana del terminal MetaTrader 5 esté abierta.
- Seleccione el comando correspondiente del menú "Herramientas" en el terminal MetaTrader 5.
- Clique en el botón IDE en el panel del terminal MetaTrader 5.
En mi opinión, la forma más fácil de hacerlo es la primera, abriendo MetaTrader 5 y presionando la tecla F4. Esto abrirá el MetaEditor.
La segunda forma es usando el menú "Servicio":
La tercera forma es pulsando el botón IDE en el panel de MetaTrader 5:
Así, abriremos la ventana del editor:
Para obtener más información, lea el artículo publicado anteriormente en esta serie: "Aprenda por qué y cómo diseñar su sistema de trading algorítmico"
Le recomendamos que estudie y ponga a prueba por sí mismo la información leída aquí. En primer lugar, esto le ayudará a tener una mejor comprensión del tema y, en segundo lugar, le ayudará a encontrar nuevas ideas. El propósito principal del presente artículo es aprender a usar paso a paso MQL5, esta fabulosa herramienta que tanto nos ayudará a la hora de comerciar.
Tenga en cuenta que antes de usar algo nuevo, siempre deberá ponerlo a prueba: lo que conviene al autor podría no resultar adecuado para usted y su estilo de comercio. Por ello, es muy importante poner todo a prueba en una cuenta demo; esto le ayudará a comprender si la herramienta le resultará de utilidad o no.
Nota. Todo el contenido de este artículo tiene fines exclusivamente educativos. El lector deberá entender que cualquier cosa que ponga en práctica usando como base este artículo, se realizará por su propia cuenta y riesgo: el autor no garantiza ningún resultado.
Bien, vamos a abordar el tema de hoy, un nuevo bloque de conocimiento que nos ayudará mejorar nuestro trading.
Definición de impulso
En esta parte, aprenderemos qué es el impulso, qué indica, cómo puede resultar útil a la hora de comerciar, qué es el indicador Momentum y cómo se calcula. Todo ello debería ayudarnos a comprender la utilidad de esta herramienta y sus posibles usos. Además, precisamente cuando entendemos la esencia de las cosas podemos sacarles el máximo beneficio.
El concepto de impulso reside en la medida de la velocidad de algo. En nuestro caso, se mide la velocidad de cambio del precio. Así, con el impulso se compara el precio actual con el valor anterior y se mide la velocidad de cambio entre estos dos valores. Esto es exactamente lo que hace el indicador Momentum: mide la velocidad de cambio del precio o la aceleración de una tendencia.
Obviamente, resulta vital determinar en primer lugar el tipo de tendencia o la dirección del mercado, porque en base a dicha dirección podremos tomar las decisiones correctas. Por lo tanto, deberemos determinar la tendencia: alcista, bajista o lateral.
- Tendencia alcista: en este movimiento, el precio hace mínimos y máximos más altos. Los precios están en ascenso. De esos momentos, suele decirse que los compradores son la fuerza motriz del mercado.
- Tendencia bajista: el precio hace máximos más bajos y mínimos más bajos. Los precios se mueven hacia abajo. En este caso, los vendedores son la fuerza motriz.
- Movimiento lateral: cualquier movimiento que no se pueda determinar como tendencia alcista ni bajista. No hay una desviación clara en ninguna dirección hacia arriba o hacia abajo: esta situación puede verse como un equilibrio entre compradores y vendedores.
El concepto de impulso ofrece otra dimensión importante: muestra la fuerza de un movimiento de tendencia. Por ello, ahora podemos determinar no solo la dirección de la tendencia, sino también medir la fuerza de esta tendencia analizando el impulso.
Momentum es un indicador principal, es decir, muestra la información hasta el final de la formación del precio, y el valor del indicador cambia antes de que cambie el gráfico.
Según los cálculos, el indicador no tiene vinculación, lo cual se considera una de sus desventajas. Otra desventaja es que el impulso omite los datos entre los días de liquidación.
Existen dos formas de calcular el indicador Momentum:
- Resta
- División
- Cálculo del valor de Momentum usando la resta
El cálculo es muy simple: encontramos la diferencia entre los precios de cierre del periodo actual en comparación con el periodo anterior.
Momentum = Precio de cierre actual - Precio de cierre (n)
n = 14, este es el valor del periodo por defecto
El resultado de este cálculo será la línea del indicador Momentum, que oscilará por encima y por debajo de cero.
Vamos a analizar un ejemplo de cálculo del indicador. Digamos que tenemos los siguientes datos:
Día | Precio de cierre |
---|---|
1 | 10 |
2 | 12 |
3 | 15 |
4 | 17 |
5 | 19 |
6 | 20 |
7 | 18 |
8 | 16 |
9 | 20 |
10 | 22 |
11 | 24 |
12 | 20 |
13 | 18 |
14 | 17 |
15 | 15 |
Ahora, si necesitamos calcular el indicador Momentum en el día 15, obtendremos lo siguiente:
Momentum = Precio de cierre actual - Precio de cierre (n)
n = 14, este es el primer día
Momentum = 15 - 10 = 5
Luego, este valor se representa cerca del nivel 5 por encima de 0 cuando el indicador Momentum fluctúa por encima y por debajo de cero. Aquí podemos ver las deficiencias de este cálculo hemos mencionado anteriormente: entre los datos calculados no hay datos, ya que hemos restado 14 periodos al actual. Otra desventaja reside en que el indicador no tiene límites, es decir los valores máximo y mínimo no están limitados.
- Cálculo del valor de Momentum usando la división
Otra forma de calcular el indicador Momentum es usando el cociente. Este es el cálculo usado en MetaTrader 5. Consta de los pasos que vemos a continuación:
Momentum = (Precio de cierre actual / Precio de cierre (n))*100
n = 14, este es el primer día
Aplicando este cálculo al ejemplo anterior, obtendremos el siguiente Momentum:
Momentum = (15 / 10)*100 = 150
El valor se muestra en el nivel 150 por encima de 0; en este caso, el indicador Momentum oscila por encima y por debajo del nivel 100. En el artículo, usaremos este método de cálculo y la estrategia se basará en él.
El indicador ya está integrado en la plataforma MetaTrader 5, así que simplemente tendremos que seleccionarlo, y este se ejecutará en el gráfico sin necesidad de calcularlo manualmente.
En MetaTrader 5, desde el menú "Insertar", seleccione "Indicadores", luego "Osciladores", y después Momentum, como se muestra en la siguiente figura:
Después de seleccionar After Momentum, se abrirá la ventana de parámetros del indicador:
Debemos ajustar los parámetros del indicador según nuestras preferencias y estilo comercial. Los parámetros indican lo siguiente:
- El periodo para comparar con el precio actual, aquí el valor por defecto es 14.
- El tipo de precio sobre el que se calculará el impulso (cierre, apertura, máximo, mínimo, etc.).
- La configuración de la visualización del indicador en el gráfico: color, tipo y grosor de la línea.
Elija los parámetros adecuados, clique en Aceptar y el indicador aparecerá en el gráfico como se ve en la siguiente figura:
Estrategia comercial basada en el indicador Momentum
En esta parte, aprenderemos una estrategia simple usando el indicador Momentum. Hay muchas estrategias útiles y formas de usar el impulso, pero para agilizar el aprendizaje, trabajaremos con una estrategia simple, ya que el objetivo principal es aprender a usarla. Ya sobre usando como base esta formación, podrán surgir nuevas ideas. El objetivo final es aprender a proyectar estas ideas como sistemas comerciales usando MQL5.
Nuestra estrategia buscará el cruce de la línea Momentum con el nivel 100. Cuando la línea de Momentum rompa la marca de 100 hacia arriba, será una señal de compra. Cuando la línea de Momentum rompa la marca de 100 hacia abajo, será una señal para abrir una operación corta.
- Momentum > 100 = Compra
- Momentum < 100 = Posición corta de venta
La señal se generará según la dirección de la tendencia: este será el filtro de la señal generada. El indicador Momentum ofrece señales tempranas y reversiones que pueden usarse para filtrar las señales generadas.
Entonces la estrategia será:
- Momentum > 100 = Compra
- Para fijar el beneficio, será mejor usar otra herramienta que sea más adecuada para estos fines.
La siguiente figura muestra como ejemplo una señal durante una tendencia alcista basada en el cruce de Momentum:
- Momentum < 100 = Posición corta de venta
- Para el take profit, nuevamente, será mejor usar otra herramienta.
La figura muestra como ejemplo una señal durante una tendencia bajista cuando el indicador Momentum cruza el nivel 100:
- Durante el movimiento lateral. Al momento de escribir esto, mi punto de vista es que existen otras herramientas mucho mejores para conseguir señales durante un movimiento lateral que el indicador Momentum, porque este ofrece señales tempranas y reversiones, lo cual puede provocar a muchas señales falsas. Por ello, es preferible usar otras herramientas durante tal movimiento.
- Ahora, vamos a hablar un poco sobre el uso de otras herramientas para fijar las ganancias. Por ejemplo, podemos usar la acción del precio, es decir, salir después de una reversión cuando se forma un mínimo más bajo durante una tendencia alcista o un máximo más alto durante una tendencia bajista. Y este es solo uno de muchos otros métodos. Si lo deseamos, podemos usar cualquier otro indicador para salir del mercado con el máximo beneficio.
Esquema del sistema comercial Momentum
En esta parte, presentaremos un plan para desarrollar estrategias con el indicador Momentum como sistema comercial. Se trata de un paso preparatorio para crear un programa que pueda ejecutarse para recibir señales automáticas.
- Durante una tendencia alcista, el programa comprobará en cada tick si se cumplen las condiciones de la estrategia. Entonces, si Momentum rompe el nivel 100 o el valor de Momentum está por encima de 100, el programa deberá dar una señal de compra. Si el nivel 100 no se rompe de abajo hacia arriba o el valor de Momentum está por debajo de 100, el programa no deberá hacer nada. Esto se muestra con claridad en el siguiente esquema:
- Durante una tendencia bajista, el programa deberá comprobar las condiciones de la estrategia en cada tick. Si Momentum rompe el nivel 100 de arriba hacia abajo o el valor de Momentum está por debajo de 100, el programa deberá señalar una transacción corta. De lo contrario, si no hay ruptura o el valor de Momentum está por encima de 100, el programa no debería dar ninguna señal, es decir, no debería hacer nada. Aquí tenemos el esquema:
Usando estos esquemas, vamos a programar tres estrategias usando MQL5 para conseguir un programa que genere señales automáticamente sin tener que comprobar las señales de Momentum de forma manual. Esto es lo que haremos en la siguiente parte del artículo.
Sistema comercial Momentum
Para empezar, y con el objetivo de comprender mejor cómo podemos escribir un programa basado en el indicador Momentum, vamos a desarrollar un sistema Momentum simple que generará un comentario con el valor de Momentum en el gráfico. Esto se implementa en el siguiente código:
//+------------------------------------------------------------------+
//| Simple Momentum 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()
{
//Creating array for prices
double PriceArray [];
//Identifying Momentum properties
int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE);
//Sorting price array
ArraySetAsSeries(PriceArray,true);
//Copying results
CopyBuffer(MomentumDef,0,0,3,PriceArray);
//Getting Momentum value of current price
double MomentumValue = NormalizeDouble(PriceArray[0],2);
//Commenting Momentum output on the chart
if(MomentumValue>100) Comment("MOMENTUM VALUE IS: ",MomentumValue);
}
//+------------------------------------------------------------------+
El programa escrito debe compilarse y ejecutarse en la plataforma comercial MetaTrader 5. Para ello, deberemos buscar el archivo necesario en la ventana del Navegador del terminal MetaTrader 5. La ventana del Navegador suele estar abierta en el terminal. De lo contrario, iremos al menú "Ver" y seleccionaremos "Navegador" o presionaremos Ctrl + N en el MetaTrader 5 abierto.
La figura muestra el aspecto del archivo en el navegador:
Luego abriremos el archivo clicando dos veces en él o arrastrándolo al gráfico. Se abrirá la siguiente ventana:
Permita el comercio automático Allow Algo Trading y pulse OK. El programa se iniciará y los comentarios correspondientes aparecerán en el gráfico. Aquí tenemos un ejemplo de cómo funciona el programa:
Ahora necesitamos desarrollar una estrategia con dos tipos de tendencia: alcista y bajista. Bien, como ya hemos definido antes:
Durante una tendencia alcista:
- La estrategia debe dar una señal de compra y mostrar el comentario "Momentum Uptrend Strategy - Buy" en el gráfico durante una tendencia alcista. Dicha señal debería aparecer cuando el valor de Momentum suba por encima del nivel 100.
- Momentum > 100 = Compra
- Si Momentum está por debajo de 100, el programa deberá mostrar el comentario Momentum Uptrend Strategy - No signal"
- Momentum < 100 = sin señal
Esto se implementa en el siguiente código:
//+------------------------------------------------------------------+ //| Momentum Uptrend Strategy.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() { //Creating array for prices double PriceArray []; //Identifying Momentum properties int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE); //Sorting price array ArraySetAsSeries(PriceArray,true); //Copying results CopyBuffer(MomentumDef,0,0,3,PriceArray); //Getting Momentum value of current price double MomentumValue = NormalizeDouble(PriceArray[0],2); //Commenting Momentum output on the chart if(MomentumValue>100) Comment("MOMENTUM UPTREND STRATEGY - BUY"); if(MomentumValue<100) Comment("MOMENTUM UPTREND STRATEGY - No SIGNAL"); } //+------------------------------------------------------------------+
Ejecutamos el código escrito y compilado en el terminal comercial: el código generará allí las señales necesarias en el gráfico. En la ventana del Navegador, encontramos el programa:
Luego abriremos el archivo clicando dos veces en él o arrastrándolo al gráfico. A continuación, se abrirá la siguiente ventana:
Permita el comercio automático Allow Algo Trading y pulse OK. El archivo se ejecutará en el gráfico:
El programa comenzará a generar comentarios al gráfico, mostrando señales según la estrategia.
- Señal de compra:
- Sin señal
Durante una tendencia bajista
- La estrategia deberá mostrar la presencia de una señal para abrir una operación en corto, y mostrar el comentario "Momentum Downtrend Strategy - Short" en el gráfico durante una tendencia bajista, cuando el valor de Momentum caiga por debajo de 100.
- Momentum < 100 = Posición corta de venta
- Si Momentum está por encima de 100, el programa debería mostrar el comentario Momentum Downtrend Strategy - No signal"
- Momentum > 100 = sin señal
Aquí está el código para esta estrategia:
//+------------------------------------------------------------------+ //| Momentum Downtrend Strategy.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() { //Creating array for prices double PriceArray []; //Identifying Momentum properties int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE); //Sorting price array ArraySetAsSeries(PriceArray,true); //Copying results CopyBuffer(MomentumDef,0,0,3,PriceArray); //Getting Momentum value of current price double MomentumValue = NormalizeDouble(PriceArray[0],2); //Commenting Momentum output on the chart if(MomentumValue<100) Comment("MOMENTUM DOWNTREND STRATEGY - SHORT"); if(MomentumValue>100) Comment("MOMENTUM DOWNTREND STRATEGY - No SIGNAL"); } //+------------------------------------------------------------------+
Después de escribir el texto del código, deberá compilarse. Para ello, clique en el botón "Compile". Luego lo iniciaremos de nuevo en el gráfico. Buscamos el archivo en la ventana Navegador, en la carpeta Expert Advisors:
Ejecutamos el código arrastrando el archivo al gráfico o clicando dos veces sobre él. Se abrirá la ventana de configuración del programa:
Una vez más, deberá permitir el comercio automático Allow Algo Trading y pulsar OK. El programa se iniciará en el gráfico y funcionará como se muestra en la figura:
La estrategia generará señales así.
- Señal corta:
- Sin señal
Por ello, hemos desarrollado un sistema comercial que usa el indicador Momentum utilizando una estrategia comercial simple. Como ya hemos dicho, existen muchas estrategias diferentes basadas en el indicador Momentum, pero en este artículo hemos analizado una estrategia comercial simple. El objetivo principal es ayudar a comprender el concepto del indicador y aprender a programar estrategias. Esperamos que este tema ayude al lector a encontrar nuevas ideas sobre cómo mejorar el comercio con MQL5.
Conclusión
Bien, ya hemos terminado el análisis de este tema. En este artículo, hemos aprendido sobre el concepto de impulso, hemos visto por qué este concepto es importante para nuestro comercio y cómo podemos añadir otra dimensión útil a nuestro comercio. Asimismo, hemos analizado el indicador Momentum, qué mide y cómo se calcula. Luego hemos estudiado una estrategia simple que el indicador Momentum puede usar en diferentes direcciones o tendencias del mercado. También hemos aprendido cómo diseñar un sistema comercial en MQL5, cómo codificar esta estrategia y cómo ejecutarla en el terminal comercial MetaTrader 5, en el que el programa puede generar señales automáticamente. En última instancia, esto puede hacer el comercio más fácil y eficiente.
Y una vez más: es de vital importancia que verifique y ponga a prueba todo lo que ha aprendido antes de usarlo en el comercio. Deberá asegurarse de que las nuevas estrategias resulten adecuadas para su estilo comercial. Intente mejorar todo lo que aprenda, porque este paso no solo le permitirá consolidar los nuevos conocimientos: también le abrirá la mente a nuevas ideas.
Una cosa más que querríamos mencionar aquí es que existen muchas estrategias diferentes, pero una persona puede sacar beneficio de una determinada estrategia mientras que otra puede sufrir pérdidas. Así que no se trata solo de la estrategia elegida. Por supuesto, la estrategia es importante, pero hay otros elementos necesarios para lograr los resultados deseados. El más importante de ellos es la disciplina. Y tenemos una herramienta que nos permite mantener la disciplina. Esta herramienta es la programación: tan pronto como creamos un sistema comercial basado en una estrategia rentable, este cambia las reglas del juego. La computadora entiende su estrategia y trabaja en ella sin emociones humanas.
Esperamos que este artículo le ayude a comerciar un poco mejor. ¡Le deseamos un comercio rentable!
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/10547
![Aprendiendo a diseñar un sistema de trading con ATR](https://c.mql5.com/2/46/why-and-how__4.png)
![DoEasy. Elementos de control (Parte 6): Control Panel, cambio automático del tamaño del contenedor según el contenido interno](https://c.mql5.com/2/46/MQL5-avatar-doeasy-library-2__5.png)
![Aprendiendo a diseñar un sistema comercial basado en Parabolic SAR](https://c.mql5.com/2/46/why-and-how__5.png)
![Desarrollando un EA comercial desde cero (Parte 21): Un nuevo sistema de órdenes (IV)](https://c.mql5.com/2/47/development__4.png)
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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