Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Con MQL5 para Metatrader5 creamos un Asesor Experto para el indicador Envelopes que es capaz de ajustar un trailing stop de venta según el valor de la banda superior de Envelopes.
En este vídeo vamos a crear un asesor experto que sea capaz de ajustar un trailing stop de venta en función de la banda superior del indicador Envelopes. Así que vamos a descubrir cómo hacerlo con MQL5. Para empezar, por favor haga clic en el pequeño botón aquí o presione F cuatro en su teclado. Ahora debería ver la ventana del Metaeditor y aquí quiere hacer clic en Archivo, nuevo Archivo, Asesor Experto desde Plantilla. Llamaré a este archivo Sobres simples de venta Trailing Stop. Haga clic en continuar, seguir y terminar.
Ahora puede eliminar todo lo que está por encima de la función Ontick y vamos a eliminar las dos líneas de comentario aquí. Comenzamos con una sentencia include para incluir el archivo trade.mqh. Este archivo es parte de MQL5 y nos ayudará a abrir una posición de prueba. Para ello, necesitamos crear una instancia de la clase Ctrade y que se llamará trade. Necesitamos definir una variable doble estática llamada Valor del último tope de pérdidas.
Esto mantendrá el último valor de stop loss para cada vez que llamemos a la función. También necesitamos calcular el precio de compra y el precio de venta. Eso se puede hacer utilizando symbol info double para el símbolo actual en el gráfico. Usamos symbol underscore ask o symbol underscore bid y con normalize double y underscore digits, nos aseguramos de calcular automáticamente el número correcto de dígitos detrás del punto. Para probar un trailing stop, necesitamos abrir una posición de prueba.
Por lo tanto, comprobamos si el total de las posiciones está por debajo de uno. Si eso es cierto, queremos restablecer el último valor del stop loss y ponerlo a cero y luego utilizamos Trade.sell para vender diez microlotes. Esto no se haría en una cuenta real, pero para eso sirven las cuentas demo. Continuemos y creemos dos arrays para la banda superior y la banda inferior. Usamos Array set as series para ambas matrices para ordenarlas desde la vela actual hacia abajo. Y ahora podemos utilizar la función incluida Ienvelopes para el símbolo actual en el gráfico y el período actualmente seleccionado en ese gráfico para calcular el indicador de envolvente para 14 velas. Aquí no utilizamos un valor de desplazamiento. El siguiente parámetro es el subrayado de modo SMA, que significa Media Móvil Simple. El resultado debe ser calculado en base al precio de cierre y este último parámetro aquí es para la desviación, ese es el valor estándar. Si elige una ventana de gráfico vacía y hace clic en insertar, indicadores, tendencia, envolventes, también verá este valor como valor de desviación.
Aquí están las 14 velas. Ahora haga clic en Aceptar, haga clic con el botón derecho del ratón en el gráfico. Seleccione Plantillas, guardar plantilla y guarde esta como tester.tpl. Puede anular el valor actual. Tester.tpl es la vista que veremos cuando iniciemos el probador de estrategias.
Pero volvamos a la codificación. Continuamos utilizando el búfer de copia para copiar los datos de acuerdo con la definición de las envolventes que hemos creado aquí, ya sea para el búfer cero o para el búfer uno, para la vela cero. Esa es la vela actual y queremos copiar los valores de tres velas y almacenarlos en la matriz de la banda superior o en la inferior. Ahora es posible obtener el valor actual para la vela cero. En esta versión lo he dejado sin comentar, porque me interesan más los valores de la vela anterior. Esa es la vela uno. Para obtener el último valor de la banda superior o el último valor de la banda inferior, miraré en nuestro array en la vela uno y con normalizar doble y coma seis, me aseguro de que el valor está usando seis dígitos detrás del punto. Porque eso es también lo que mostrará el indicador de envolvente original. Ahora podemos llamar a una función personalizada llamada CheckEnvelopesSelltrailingStop y pasar el último valor de la banda superior como parámetro. Esta función no existe, así que tenemos que crearla en unos segundos. Lo último en la función Ontick es asignar el último valor de la banda superior al último valor de las envolventes de parada aquí, porque lo necesitamos la próxima vez que llamemos a la función.
Ahora vamos a crear la envolvente de control de venta trailing stop.