English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Aprendiendo a diseñar un sistema comercial basado en el Oscilador Estocástico

Aprendiendo a diseñar un sistema comercial basado en el Oscilador Estocástico

MetaTrader 5Trading | 27 junio 2022, 09:48
900 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introducción

Una de las cosas más bonitas en el trading de análisis técnico es que disponemos de un gran número de herramientas que podemos usar tanto individualmente como de forma combinada: esto puede resultar útil y rentable para nosotros. Además, tenemos una herramienta increíble que puede ser muy útil para mejorar nuestros resultados y el rendimiento de las operaciones. Esta herramienta es la programación nos permite crear programas útiles y provechosos: basta con suministrarle al ordenador instrucciones concretas para que haga lo necesario de forma automática y precisa según nuestras condiciones.

Este artículo es una contribución más al aprendizaje y la asimilación de materiales que pueden resultar útiles en el contexto del trading técnico y la programación de estrategias comerciales rentables. Vamos a hablar de una nueva herramienta que puede ayudarnos en nuestro trading: el indicador «Oscilador Estocástico», uno de los indicadores más populares en el trading basado en el análisis técnico. Si usted ha leído otros artículos aquí, debería saber cuánto nos gusta enseñar los fundamentos comerciales para entender todos los detalles y mecanismos que rigen el trading. Por ello, vamos a discutir con usted este tema usando el mismo método. En este artículo, trataremos los siguientes temas:

    1. Definición del Oscilador Estocástico
    2. Estrategia del Oscilador Estocástico
    3. Modelo del Oscilador Estocástico
    4. Sistema del Oscilador Estocástico
    5. Conclusión

      En el tema «Definición del Oscilador Estocástico», veremos con detalle el indicador Oscilador Estocástico para saber qué es y qué mide. A continuación, en «Estrategia del Oscilador Estocástico», aprenderemos algunas estrategias sencillas que podemos utilizar. Después de esto, diseñaremos un plan modelo para estas simples estrategias, que nos ayudará a codificarlas en MQL5 para que luego usarlas en MetaTrader 5: esto se analizará en el tema «Modelo del Oscilador Estocástico». Después, aprenderemos a escribir el código necesario para diseñar un sistema de trading para estas estrategias simples: esto se hará en el tema «Sistema comercial del Oscilador Estocástico».

      Como siempre, usaremos el terminal comercial MetaTrader 5 y el lenguaje MetaQuotes, incorporado en MetaTrader 5. El terminal puede descargarse en el siguiente enlace: https://www.metatrader5.com/es/download

      Descargo de responsabilidad: Cualquier información se proporciona «tal cual», con fines exclusivamente informativos, y no tiene ninguna intención comercial o de asesoramiento. La información no garantiza ninguna clase de resultado. Si decide utilizar estos materiales en cualquiera de sus cuentas de trading, lo hará bajo su propio riesgo y será el único responsable.

      Ahora, vamos a abordar este tema tan interesante: ¡comencemos!


      Definición del Oscilador Estocástico

      En esta parte, veremos con mayor detalle uno de los indicadores técnicos más populares, el indicador Oscilador Estocástico. En teoría, fue desarrollado por George Lane, como se menciona en el libro "New Trading Systems and Methods" de Perry J. Kaufman. Pero hay otras opiniones al respecto: una de ellas es que no está absolutamente claro quién creó el indicador estocástico (como se menciona en el libro "Technical Analysis, The Complete Resource for Financial Market Technicians" de Charles D. Kirkpatrick y Julie R. Dahlquist). Otra opinión es que el indicador fue popularizado por George Lane (así se dice en el libro "Technical Analysis of The Financial Markets" de John J. Murphy).

      La idea que subyace en el indicador Estocástico es la siguiente: se ha observado que durante la tendencia alcista, los precios de cierre tienden a cerrarse más cerca de la parte superior del rango de precios durante un periodo específico y, al contrario, durante la tendencia bajista, los precios de cierre tienden a cerrarse más cerca de la parte inferior del rango de precios durante un periodo específico. Mide la relación entre el precio de cierre actual y los precios más altos y más bajos de un periodo determinado.

      El indicador Oscilador Estocástico consta de dos líneas, y estas dos líneas oscilan entre el nivel cero y el nivel 100:

      • La línea %K es la más rápida.
      • La línea %D es la más lenta, y está suavizada.

      Hay más de una versión del indicador Oscilador Estocástico. Las versiones más populares son estas dos:

      • El estocástico rápido.
      • El estocástico lento.

      Veamos la diferencia en los métodos de cálculo del indicador Oscilador Estocástico.

      A continuación, detallamos los pasos para calcular el indicador Oscilador Estocástico:

      1. Determinamos el periodo necesario para calcular el indicador.
      2. Determinamos el valor máximo del periodo determinado.
      3. Determinamos el valor mínimo del periodo determinado.
      4. Obtenemos %K del estocástico rápido = 100*((cierre actual-low más bajo) /(high más alto-low más bajo))
      5. Obtenemos %D del estocástico rápido = 3 medias móviles de %K del estocástico rápido
      6. Obtenemos %K de estocástico lento = %D del estocástico rápido
      7. Obtenemos el %D del estocástico lento = 3 medias móviles de (%K del estocástico lento que es igual a %D del estocástico rápido) 

      Ahora, veamos un ejemplo sobre cómo aplicar estos cálculos para obtener el indicador Oscilador Estocástico. Si tenemos los siguientes datos:

      Días Close High Low
      1 100 110 90
      2 130 140 120
      3 140 160 120
      4 130 150 110
      5 120 140 100
      6 140 150 130
      7 160 170 150
      8 170 180 160
      9 155 170 150
      10 140 170 130
      11 160 180 155
      12 180 190 175
      13 190 220 190
      14 200 230 200
      15 210 215 205
      16 200 200 190
      17 190 195 180
      18 185 105 180
      19 195 210 185
      20 200 220 190

      Para calcular el indicador Oscilador Estocástico, seguiremos los pasos anteriormente mencionados, por lo que haremos lo siguiente:

      • Determinamos el periodo, que será = 14, por lo que necesitaremos primero tener 14 periodos comerciales para empezar a calcular el indicador.
      • Determinamos el máximo de los últimos 14 periodos, que será 230; la siguiente imagen nos mostrará que para el primer valor y el resto de los datos:

      14 high más alto

      • Determinamos el mínimo de los últimos 14 periodos, que será 90; la siguiente imagen nos lo mostrará para el primer valor y el resto de los datos:

      14 low más bajo

      • Obtenemos %K del estocástico rápido = 100*((cierre actual - low más bajo) /(high más alto-low más bajo)), 
      • Obtenemos %D del estocástico rápido = 3 medias móviles de %K del estocástico rápido,
      • La siguiente imagen nos mostrará los resultados del cálculo para los datos disponibles:

      Rápido - K-D

      • Obtenemos %K del estocástico lento = %D del estocástico rápido,
      • Obtenemos %D del estocástico lento = 3 medias móviles de %K del estocástico lento,
      • La siguiente imagen nos mostrará los resultados del cálculo para los datos disponibles:

      Lento - K-D

      Siguiendo los pasos anteriores, hemos calculado el indicador del oscilador estocástico manualmente. Afortunadamente, no necesitamos calcularlo así cada vez, ya que tenemos un indicador incorporado listo para usar en el terminal comercial MetaTrader5. Simplemente podemos seleccionarlo de la lista de indicadores disponibles en la plataforma clicando en la pestaña Insertar de MetaTrader 5, como mostramos en la siguiente imagen:

      Insertando Estocástico

      Después de seleccionar el «Oscilador Estocástico», se abrirá la siguiente ventana para los parámetros del indicador:

       Ventana de inserción de Estocástico

      Parámetros del indicador:

      1. Determinar el periodo
      2. Determinar el periodo de media móvil para %D rápido
      3. Determinar el periodo de media móvil para %D lento
      4. Determinar el precio presentado para medir la relación con él
      5. Determinar el tipo de media móvil que se usará en el cálculo
      6. Determinar el color de la línea, el estilo de la línea y el grosor de la línea de %K
      7. Determinar el color de la línea, el estilo de la línea y el grosor de la línea de %D

      Después de determinar los parámetros según nuestras preferencias, el indicador se adjuntará al gráfico y aparecerá como en la siguiente imagen:

      Estocástico en el gráfico

      Después de insertar el Oscilador Estocástico, podemos encontrar (según la imagen anterior) que tenemos el indicador trazado en la ventana inferior con 2 líneas (%K, %D) oscilando entre cero y 100, y podemos encontrarlo igual que el de abajo:

      • Stoch(14, 3,3): representa el nombre del indicador y los parámetros seleccionados: 14 periodos, 3 para la media móvil de %D del estocástico rápido, 3 para la media móvil de %D del estocástico rápido.
      • 36,85: representa el valor %k
      • 38,28: representa el valor %D

      Según el cálculo del indicador Oscilador Estocástico, este se moverá en la dirección del mercado de una forma específica la mayor parte del tiempo, ya que sabemos que los precios de cierre tienden a cerrar cerca del rango de precios superior o inferior de un periodo específico según el movimiento del mercado.

      Durante la tendencia alcista:

      Una tendencia alcista es la dirección del mercado en la que los precios ascienden debido al control de los compradores o toros. En general, los precios crean mínimos y máximos más altos. En este caso, podemos llamar a este mercado un mercado alcista.

      Durante esta dirección del mercado, podemos encontrar que la mayoría de las veces, los precios de cierre tienden a cerrar cerca de la parte superior del rango de precios durante ese periodo de movimiento alcista, y el indicador estocástico oscilará entre los niveles 50 y 100. Un ejemplo de esta situación se muestra en la siguiente imagen:

      Estocástico durante la tendencia alcista

      Durante la tendencia bajista:

      Una tendencia bajista es una dirección del mercado en la que los precios descienden debido al control de los vendedores u osos. Los precios crean máximos y mínimos más bajos. En este caso, podremos llamar a este mercado un mercado bajista.

      Durante esta dirección del mercado, podemos encontrar que la mayoría de las veces, los precios de cierre tienden a cerrar cerca de la parte inferior del rango de precios durante ese movimiento bajista. Así, podemos encontrar que el indicador estocástico se mueve entre el nivel 50 y los niveles 0 durante el periodo de movimiento bajista. Un ejemplo de esta situación se muestra en la siguiente imagen:

      Estocástico durante la tendencia bajista

      Durante los movimientos laterales:

      Un movimiento lateral es un movimiento del precio que no tiene una dirección clara, ya sea hacia arriba o hacia abajo. Puede considerarse como el equilibrio entre compradores y vendedores o toros y osos. Hablamos de cualquier movimiento que no sea de tendencia alcista o bajista.

      Durante este movimiento lateral, no hay un movimiento claro hacia arriba o hacia abajo: los precios tienden a cerrar cerca del rango medio de precio para ese periodo de movimiento "lateral". Así, podemos encontrar que la mayoría de las veces, el estocástico se mueve alrededor de los niveles 20 y 80, y la siguiente imagen es un ejemplo de ello:

      Estocástico durante el movimiento lateral

      Ya hemos analizado cómo puede actuar el indicador estocástico en diferentes movimientos del mercado. Ahora tenemos que aprender cómo podemos usarlo a nuestro favor, y esto precisamente es lo que veremos en el siguiente tema.


      Estrategia del Oscilador Estocástico

      En esta parte, hablaremos sobre cómo podemos usar este indicador utilizando estrategias sencillas. Podemos obtener las señales del indicador estocástico según la tendencia del mercado y estas estrategias son la estrategia de tendencia alcista, la estrategia de tendencia bajista y la estrategia de movimiento lateral.

      • Estrategia uno: Estrategia de tendencia alcista

      Según esta estrategia, necesitaremos comprobar si la línea %K y la línea %D están por debajo del nivel 50, entonces, la señal de compra se generará cuando la línea %K cruce por encima de la línea %D. Podemos aplicar un take profit según otra herramienta efectiva como la acción del precio, buscando, por ejemplo, el mínimo más bajo.

      %K, %D < 50 --> %K > %D = señal de compra
        • Estrategia dos: estrategia de tendencia bajista

        Según esta estrategia, necesitaremos comprobar si la línea %K y la línea %D están por encima del nivel 50, entonces, la señal de venta se generará cuando la línea %K cruce por debajo de la línea %D. Podemos aplicar un take profit según otra herramienta efectiva como la acción del precio, buscando, por ejemplo, el máximo más alto.

        %K, %D > 50 --> %K < %D = señal de venta
          • Tercera estrategia: estrategia de movimiento lateral
            • Señal de compra:

          Según esta estrategia, necesitamos comprobar si la línea %K y la línea %D están por debajo del nivel 20, entonces, la señal de compra se generará cuando la línea %K cruce por encima de la línea %D. Cuando la línea %K y la línea %D se encuentran por encima de 80, la señal de take profit se generará cuando la línea %K cruce por debajo de la línea %D.

          %K, %D < 20 --> %K > %D = señal de compra
          %K, %D > 80 --> %K < %D = take profit

              • Señal de venta

                Según esta estrategia, necesitaremos comprobar si la línea %K y la línea %D se encuentran por encima del nivel 80, la señal de venta se generará cuando la línea %K cruce por debajo de la línea %D. Cuando la línea %K y %D están por debajo del nivel 20, la señal de take profit se generará cuando la línea %K cruce por encima de la línea %D.

                %K, %D > 80 --> %K < %D = señal de venta
                %K, %D < 20 --> %K > %D = take profit

                Querríamos mencionar aquí que existen muchas estrategias estocásticas que podemos usar, desde las más simples hasta las más complicadas, y este indicador se puede utilizar de forma individual o combinado con otra herramienta, de manera que pueda ofrecer mejores resultados: sin embargo, aquí mencionaremos solo estrategias simples para entender cómo podemos utilizar este indicador.


                  Modelo estocástico

                  En esta parte, diseñaremos un plan modelo para las estrategias mencionadas anteriormente que nos ayudará a crear fácilmente un sistema comercial. Este plan será una guía paso a paso para identificar lo que necesitamos exactamente del programa.

                  • Estrategia uno: estrategia de tendencia alcista

                  %K, %D < 50 --> %K > %D = señal de compra

                  Primero necesitamos que el programa compruebe (%K, %D) y decida si está por debajo o por encima del nivel 50, entonces, si está por debajo del nivel 50, esperará y no hará nada hasta que la línea %K cruce por encima de la línea %D para dar la señal de compra. Si (%K, %D) está por encima o es igual al nivel 50, el programa no hará nada.

                  La siguiente imagen representa un esquema de esta estrategia de tendencia alcista:

                  SSS - plan de estrategia de tendencia alcista

                  • Estrategia dos: estrategia de tendencia bajista

                  %K, %D > 50 --> %K < %D = señal de venta

                  Primero necesitaremos que el programa compruebe (%K, %D) y decida si está por encima o por debajo del nivel 50; si está por encima del nivel 50, esperará y no hará nada hasta que la línea %K cruce por debajo de la línea %D para dar la señal de venta. Si (%K, %D) resulta inferior o igual al nivel 50, el programa no hará nada.

                  La siguiente imagen representa un esquema de esta estrategia:

                  SSS - plan de estrategia de tendencia bajista

                  • Tercera estrategia: estrategia de movimiento lateral

                  Señal de compra:

                  %K, %D < 20 --> %K > %D = señal de compra

                  %K, %D > 80 --> %K < %D = take profit

                  Primero necesitaremos que el programa compruebe (%K, %D) y decida si está por encima o por debajo del nivel 20; si está por debajo del nivel 20, esperará y no hará nada hasta que la línea %K cruce por encima de la línea %D para dar la señal de compra. Si (%K, %D) resulta superior o igual al nivel 20, el programa no hará nada. Entonces, el programa comprobará (%K, %D) y decidirá si está por encima o por debajo del nivel 80; si está por encima del nivel 80, esperará y no hará nada hasta que la línea %K cruce por debajo de la línea %D para dar la señal de take profit. Si (%K, %D) resulta inferior o igual al nivel 80, el programa no hará nada.

                  La siguiente imagen representa un ejemplo de esta estrategia:

                  SSS- estrategia de movimiento lateral - plan de compra

                  Señal de venta:

                  %K, %D > 80 --> %K < %D = señal de venta

                  %K, %D < 20 --> %K > %D = take profit

                  Primero necesitamos que el programa compruebe (%K, %D) y decida si se encuentra por encima o por debajo del nivel 80; si está por encima del nivel 80, esperará y no hará nada hasta que la línea %K cruce por debajo de la línea %D para dar la señal de venta. Si (%K, %D) resulta inferior o igual al nivel 80, el programa no hará nada. Entonces, el programa comprobará (%K, %D) y decidirá si está por debajo o por encima del nivel 20; si está por debajo del nivel 20, esperará y no hará nada hasta que la línea %K cruce por encima de la línea %D para dar la señal de take profit. Si (%K, %D) resulta superior o igual al nivel 20, el programa no hará nada.

                  La siguiente imagen muestra un plan modelo de esta señal de venta de la estrategia de movimiento lateral:

                  SSS- estrategia de movimiento lateral - plan de venta

                  Hasta ahora, hemos visto estrategias simples que pueden ser utilizadas por el indicador estocástico y hemos diseñado modelos para estas estrategias que nos ayuden a crear un sistema de trading. En la siguiente parte, aprenderemos a diseñar este sistema comercial.


                  Sistema comercial del Oscilador Estocástico

                  Ahora, comenzaremos una parte interesante en este artículo, en la que aprenderemos a codificar un sistema comercial que funcione usando estas estrategias. La programación es una gran herramienta que nos ayuda a comerciar de forma efectiva, permitiéndonos ejecutar nuestro plan y nuestra estrategia de forma disciplinada sin involucrar emociones en nuestras decisiones comerciales, además de ofrecernos precisión en la ejecución. Sin embargo, lo más importante para nosotros es probar cualquier estrategia antes de ejecutarla. Vamos a escribir nuestro propio sistema comercial según las estrategias discutidas anteriormente...

                  En primer lugar, tenemos que escribir un código para un programa que ofrezca los valores de las líneas estocásticas en el gráfico. Luego, usando la escritura de este código, asimilaremos línea a línea lo que estamos escribiendo, para ser así capaces de entender y crear el sistema comercial.

                  En los primeros pasos, necesitaremos crear arrays para la línea %K y la línea %D, y también utilizar "double" para presentar los valores con una parte fraccionaria:

                  double Karray[];
                  double Darray[];
                  

                  Luego, necesitaremos ordenar estos arrays creados a partir de los datos actuales, y para ello utilizaremos la función "ArraySetAsSerious":

                  ArraySetAsSeries(Karray, true);
                  ArraySetAsSeries(Darray, true);

                  Después, necesitaremos definir el indicador "Stochastic" y usar la función "iStochastic" después de crear una variable con "StochDef" para que sea igual a la definición "Stochastic":

                  int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);

                  Luego, necesitaremos rellenar el array con los datos de los precios y usar la función "CopyBuffer":

                  CopyBuffer(StochDef,0,0,3,Karray);
                  CopyBuffer(StochDef,1,0,3,Darray);
                  

                  A continuación, calcularemos el valor de la línea %K y de la línea %D de los datos actuales y utilizaremos "float" para disminuir el tamaño de las fracciones y que sea aproximado:

                  float KValue = Karray[0];
                  float DValue = Darray[0];
                  

                  La última línea de código servirá para que el programa presente el valor de la línea %K y el valor de la línea %D en el gráfico en dos líneas, cosa que implementaremos con la función "Comment":

                  Comment("%K value is ", KValue,"\n""%D Value is ",DValue);

                  Lo siguiente resultará igual que en el código anterior, pero en un solo bloque, para poder copiarlo en un solo paso, si hiciera falta:

                  //+------------------------------------------------------------------+
                  //|                       Simple Stochastic System - Lines Value.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 arrays for %K line and %D line   
                     double Karray[];
                     double Darray[];
                     
                  //sorting arrays from the current data   
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                  
                  //defining the stochastic indicator   
                     int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);
                  
                  //filling arrays with price data   
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                  
                  //calculating value of %K and %D line of cuurent data  
                     float KValue = Karray[0];
                     float DValue = Darray[0];
                     
                  //commenting calcualted values on the chart   
                     Comment("%K value is ",KValue,"\n"
                     "%D Value is ",DValue);
                        
                    }
                  //+------------------------------------------------------------------+

                  Hasta ahora, hemos escrito el código de un programa que puede presentar los valores actuales de las líneas del indicador estocástico en el gráfico; ahora, necesitaremos ejecutar este programa en nuestro terminal comercial (Meta Trader5) como podemos ver ahora en la ventana del navegador, después de realizar la compilación:

                  Nav 1

                  Después de arrastrar y soltar el archivo de Sistema Estocástico Simple (SSS) - Valor de las Líneas, se abrirá la siguiente ventana:

                  Ventana de valor de las líneas de SSS


                  Después de pulsar OK, el programa o el asesor experto se adjuntará al gráfico igual que vemos en la imagen de abajo:

                  Valor de las líneas de SSS adjuntas

                  Entonces, podemos ver que el programa genera los valores de las líneas estocásticas igual que se ve en la imagen de abajo:

                  Valor de las líneas de SSS

                  Ahora, vamos a escribir el código necesario para crear un sistema comercial para nuestras estrategias. Lo que tenemos que hacer aquí es crear un sistema comercial que sea capaz de presentar la señal adecuada como un comentario en el gráfico según la estrategia utilizada. Comencemos...

                  • Estrategia uno: estrategia de tendencia alcista

                  %K, %D < 50 --> %K > %D = señal de compra

                  El siguiente código sirve para crear un sistema comercial que ejecute lo que necesitamos según esta estrategia de tendencia alcista:

                  //+------------------------------------------------------------------+
                  //|                  Simple Stochastic System - 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                     
                     if (KValue0<50&&DValue0<50)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                     Comment("SSS - Uptrend Strategy - Signal is ",signal);
                        
                    }
                  //+------------------------------------------------------------------+

                  Estas son las diferencias aquí:

                  Hemos creado una variable para la "señal" con una asignación vacía que ya calcularemos después:

                  string signal="";

                  Hemos creado dos variables para los valores %K (0,1) y dos variables para los valores %D (0,1) para los datos actuales y los datos anteriores a los actuales:

                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];

                  Para evaluar el cruce entre %K y %D, necesitaremos que el cruce sea ascendente; en otras palabras, necesitaremos que %K rompa %D para subir y pasar por encima de él después de este cruce, y esto es lo que podemos encontrar en el código de línea de "si":

                     if (KValue0<50&&DValue0<50)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        

                  Después de evaluar el cruce, si es verdadero, necesitaremos una señal para "BUY", y esta será la asignación para "signal". Entonces, necesitaremos un comentario con esta señal en el gráfico, y se dará según la siguiente línea de código:

                  Comment("SSS - Uptrend Strategy - Signal is ",signal);

                  Así, hemos creado el código del programa, y después de compilar, podemos encontrarlo en la ventana del navegador:

                  Nav 2

                  Tras arrastrar y soltar este archivo en el gráfico, tendremos la siguiente ventana:

                   Ventana de SSS tendencia alcista


                  Después de pulsar OK, se adjuntará:

                  SSS de tendencia alcista adjunto

                  La señal se verá igual que en el siguiente ejemplo mientras se realiza la prueba:

                  SSS de tendencia alcista - compra

                  • Estrategia dos: estrategia de tendencia bajista

                  %K, %D > 50 --> %K < %D = señal de venta

                  Para crear un programa que ejecute esta estrategia de tendencia bajista:

                  //+------------------------------------------------------------------+
                  //|                Simple Stochastic System - 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                           
                     if (KValue0>50&&DValue0>50)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        
                     Comment("SSS - Downtrend Strategy - Signal is ",signal);
                        
                    }
                  //+------------------------------------------------------------------+

                  Las diferencias son:

                  • Condiciones de cruce

                     if (KValue0>50&&DValue0>50)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        

                  • El comentario de acuerdo con esta estrategia:

                     Comment("SSS - Downtrend Strategy - Signal is ",signal);

                  Después de realizar la compilación, podremos encontrar el archivo de este programa en la ventana del navegador:

                  Nav 3

                  Arrastre y suelte este archivo en el gráfico y se abrirá la siguiente ventana:

                  Ventana de SSS de tendencia bajista

                  Tras pulsar OK, el archivo se adjuntará al gráfico:

                  SSS de tendencia bajista adjunto 

                   La señal aparecerá como un comentario en el gráfico según las condiciones de esta estrategia y la siguiente imagen supone un ejemplo de ello:

                  SSS - tendencia a la baja - venta

                  • Tercera estrategia: estrategia de movimiento lateral
                    • Señal de compra:

                  %K, %D < 20 --> %K > %D = señal de compra

                  %K, %D > 80 --> %K < %D = señal de take profit

                  El siguiente código sirve para crear un programa que sea capaz de ejecutar esta estrategia de movimiento lateral:

                  //+------------------------------------------------------------------+
                  //|           Simple Stochastic System - Sideways - Buy 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                     
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);
                     
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "Take Profit";
                        }
                        
                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);  
                        
                    }
                  //+------------------------------------------------------------------+

                  Las diferencias son:

                  • Condiciones de cruce según la señal de compra de la estrategia lateral:

                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        

                  • El comentario según la señal de compra de la estrategia lateral:

                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);

                  • Condiciones de la señal de take profit de la estrategia lateral:

                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "Take Profit";
                        }
                        

                  • El comentario según la señal de take profit de la estrategia lateral:

                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);

                  Tras realizar la compilación, el archivo de este sistema comercial aparecerá en la ventana del Navegador:

                  Nav 4

                  Arrastre y suelte el archivo en el gráfico, y se abrirá la siguiente ventana:

                  SSS de movimiento lateral - compra - ventana

                  Tras pulsar OK, el programa se adjuntará al gráfico:

                  SSS de movimiento lateral - compra - adjunto

                  La señal se mostrará como un comentario en el gráfico según esta estrategia. En la siguiente imagen, podemos ver un ejemplo de este tipo de señal:

                  SSS - movimiento lateral - compra - compra

                  El ejemplo de la señal de take profit es:

                  SSS - movimiento lateral - compra - TP

                    • Estrategia lateral: señal de venta

                  %K, %D > 80 --> %K < %D = señal de venta

                  %K, %D < 20 --> %K > %D = señal de take profit

                  A continuación, explicamos cómo escribir el código de un programa que ejecute esta estrategia:

                  //+------------------------------------------------------------------+
                  //|          Simple Stochastic System - Sideways - Sell 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];  
                     
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                     
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "TAKE PROFIT";
                        }         
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                    }
                  //+------------------------------------------------------------------+
                  

                  Las diferencias son:

                  • Condiciones de cruce según la señal de venta de la estrategia lateral:
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                  • El comentario según la señal de venta de la estrategia lateral:
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                  • Condiciones de la señal de take profit de la estrategia lateral:
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "TAKE PROFIT";
                        }   
                  • El comentario según la señal de take profit de la estrategia lateral: 
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  

                  Tras realizar la compilación, el archivo de este sistema comercial aparecerá en la ventana del Navegador:

                  Nav 5

                  Arrástrelo y suéltelo en el gráfico y se abrirá la ventana que sigue:

                  SSS - movimiento lateral - venta - ventana

                  Después de pulsar OK, el programa se adjuntará al gráfico y estará listo para generar señales:

                  SSS - movimiento lateral - venta - adjunto

                  La siguiente imagen es un ejemplo de una señal de venta generada según esta estrategia:

                  SSS - movimiento lateral - venta - venta

                  La siguiente imagen es un ejemplo de una señal de take profit generada según esta estrategia:

                  SSS - movimiento lateral - venta - TP

                  Conclusión

                  Al final de este artículo, podemos decir que hemos aprendido los fundamentos de creación de un sistema comercial sencillo usando el indicador técnico "Oscilador Estocástico", que es uno de los más populares en el mundo del trading. Esperamos que haya asimilado la esencia del indicador "Oscilador Estocástico", qué es lo que mide y cómo calcularlo. Asimismo, tenemos la esperanza de que haya descubierto algo nuevo sobre su uso, además de algunas estrategias sencillas que utilizar en su propio comercio. El artículo presenta un plan para estas estrategias simples usadas como base para crear un sistema comercial de forma sencilla y sin problemas. Además, hemos analizado cómo diseñar un sistema comercial basado en las estrategias mencionadas.

                  Esperamos que este artículo le haya resultado útil, y que le ayude a encontrar nuevas ideas partiendo del uso de uno de los indicadores más populares y útiles: el "Oscilador Estocástico".

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

                  Aprendiendo a diseñar un sistema de trading con ADX Aprendiendo a diseñar un sistema de trading con ADX
                  En este artículo, continuaremos nuestra serie sobre el diseño de sistemas de trading usando los indicadores más populares, y hablaremos del indicador del índice direccional medio (ADX). Analizaremos este indicador con detalle para entenderlo bien y utilizarlo con una sencilla estrategia. Y es que, profundizando en un indicador, podremos usarlo mejor en el trading.
                  Aprendiendo a diseñar un sistema comercial basado en MACD Aprendiendo a diseñar un sistema comercial basado en MACD
                  En este artículo, hablaremos de una nueva herramienta de nuestra serie, y aprenderemos a diseñar un sistema comercial basado en uno de los indicadores técnicos más populares: la convergencia/divergencia de medias móviles (MACD).
                  Desarrollando un EA comercial desde cero (Parte 13): Times And Trade (II) Desarrollando un EA comercial desde cero (Parte 13): Times And Trade (II)
                  Hoy vamos a construir la segunda parte del sistema Times & Trade para analizar el mercado. En el artículo anterior Times & Trade ( I ) presenté un sistema alternativo para organizar un gráfico de manera que tengamos un indicador que nos permita interpretar las operaciones que se han ejecutado en el mercado lo más rápido posible.
                  Cómo avanzar en el aprendizaje automático Cómo avanzar en el aprendizaje automático
                  Aquí tenemos una selección de materiales que resultarán útiles para que los tráders mejoren sus conocimientos sobre el trading algorítmico. La época de los algoritmos simples es cosa del pasado: ahora es difícil alcanzar el éxito sin utilizar el aprendizaje automático y las redes neuronales.