Uso de Metatrader 4 para probar estrategias con Opciones Binarias

Los mejores corredores de opciones binarias 2020:
  • Binarium
    Binarium

    1er lugar! El mejor broker de opciones binarias!
    Ideal para principiantes! Entrenamiento gratis! Bonos de registro!

  • FinMax
    FinMax

    2do lugar! Broker confiable!

Las estrategias mas utilizadas y efectivas

Las inversiones pueden ser una buena opción a tener en cuenta sí buscamos una manera de ganar dinero extra. Dentro de las inversiones tenemos diferentes tipos, pero sin duda alguna una de las que más destacan en Internet son las inversiones en opciones binarias.

Su sencillez y la gran rentabilidad que ofrecen es lo que las hace tan populares.

El principio básico de las opciones binarias para el éxito es compra bajo y vende alto.

Si estás aquí seguramente ya hayas leído sobre el tema y te hayas empapado lo suficiente como para empezar a invertir, o quizás ya lo hayas hecho y busques nuevas fórmulas para sacarle mayor partido a tu dinero con las inversiones en opciones binarias.

Pues bien, sea como sea, en este momento toca hablar de las estrategias.

Lista de estrategias

Trataremos algunas tácticas que si usamos correctamente pueden hacer que nuestras inversiones nos den el máximo beneficio.

Invertir con opciones Call/Put

Normalmente al invertir en opciones binarias lo más común es comprar opciones tipo Call o Put, ya que tanto si finaliza en positivo como en negativo igualmente ganaremos dinero.

Si la inversión finaliza “in the money” nos llevaremos el 100% de la inversión y si finaliza “out of the money” los brokers suelen ofrecer un retorno del dinero invertido, generalmente del 15%. Así que por esto no hay que preocuparse.

Invertir en Call/Put al mismo tiempo

Pero si lo que buscamos es ganar el máximo dinero posible hay algunas estrategias que nos pueden ser de gran utilidad. Por ejemplo, comprar una opción Put y una opción Call al mismo tiempo.

Esto significa que sí hemos invertido comprando una opción Call y cuando se acerca la fecha de vencimiento intuimos que finalizará “out of the money” tendremos que comprar opciones para la tendencia inversa- en este caso una opción Put- para minimizar las pérdidas.

Doblar el valor invertido

Entre las estrategias para invertir en opciones binarias ésta que acabo de mencionar es la más típica. Sin embargo, para quien conozca algo más sobre los mercados financieros puede optar por redoblar el valor de su inversión.

Los mejores corredores de opciones binarias 2020:
  • Binarium
    Binarium

    1er lugar! El mejor broker de opciones binarias!
    Ideal para principiantes! Entrenamiento gratis! Bonos de registro!

  • FinMax
    FinMax

    2do lugar! Broker confiable!

Por ejemplo, si hemos comprado una opción y observando sus movimientos prevemos que va a finalizar a nuestro favor, una estrategia muy afortunada es comprar otra opción de lo mismo para aumentar notablemente los beneficios.

Otras estrategias del Blog:

Guía de noticias

Otra estrategia también muy eficaz pero bastante más compleja es basarse en las noticias de actualidad sobre el activo por el que vayamos a invertir. Si tomamos como referencia las inversiones de pares de divisas por ejemplo, imaginaros que os llega la noticia de que va a caer el dólar.

En este caso es interesante comprar una opción Put para el par dólar yen por ejemplo.

Con el resto de inversiones lo mismo, si nos enteramos de alguna noticia que pueda ayudarnos a invertir con más conocimiento pues hay que aprovechar la oportunidad, está claro.

Para quien entienda realmente el comportamiento de los mercados financieros, sus movimientos y sea capaz de analizar las noticias e incluso de anticiparse, no se le hará muy difícil ganar dinero con estas inversiones de última hora. Obviamente los que están iniciándose no deberían utilizar esta estrategia, pues supone un gran riesgo de pérdidas.

Lo que sí es recomendable es tener en cuenta las tendencias así como estar bastante informado de todo lo relacionado con el activo en cuestión para poder invertir con conocimiento de causa.

De la mano deberás utilizar el calendario económico como estrategia ya que serán noticias anunciadas y que provocarán movimiento más o menos estudiados del mercado.

Estrategia de cobertura

Con esta estrategia conseguiremos minimizar los riesgos y aumentar las ganancias que en definitiva, es lo que todos deseamos con nuestras operaciones. Se trata de calcular la tendencia del precio de un activo en unos poco minutos y averiguar entre que valores se va a situar su precio.

Si por ejemplo calculamos que el precio de EUR/USD se va quedar entre las cantidades de 1,79 y 1,85. Con ambos resultados apostaremos una opción Call a que subirá por encima de los 1,79 y otra opción Put para que baje menos de 1,85.

Con ambas inversiones, si nuestro cálculo ha sido bueno lograremos ganar dinero con ambas operaciones.

Aprovechando la ruptura de mercado

Con esta estrategia trataremos de encontrar ese momento en el que los inversores están relación muchos movimientos a la vez, un mercado en ebullición que se conoce como ruptura de mercado. Esto no es algo fácil pero con dedicación podremos diferenciar movimientos de falso breakout o fakeouts.

Esta estrategia está más indicada para las inversiones en opciones binarias ya que son mercado con menos apalancamiento que por ejemplo fórex.

Para detectar los verdaderos momentos a tener en cuenta, existen muchos métodos pero en este caso lo principal que tenemos que tener en mente es que las rupturas de mercado suelen venir tras una estabilización del mercado durante un tiempo prudencial.

Apostar en dirección contraria a los mercados

Para esto tendremos que tener un calendario económico de la mano ya que iremos apostando en contra de los resultados y noticias que vayan surgiendo. Esto puede parecer algo enrevesado pero con un ejemplo estará seguramente más claro.

Si por ejemplo tras una noticia se provoca un desplome de los valores de un mercado, deberemos invertir inmediatamente en que ese mercado va a realizar un movimiento alcista en los próximos minutos o el tiempo que estimemos.

Por supuesto el movimiento al a inversa es igual y resultará mucho más efectivo si utilizamos índices de mercado rápidos como es Nasdaq o FTSE entre otros.

Sistema de trading para opciones binarias de 5 minutos

En este artículo vamos a presentar un sistema de trading desarrollado para operar con opciones binarias de 5 minutos de duración basadas en pares de divisas (Forex), el cual fue diseñado para utilizarse en la plataforma Metatrader 4. Es un sistema bastante simple con una serie de reglas mecánicas fáciles de seguir, las cuáles no dan espacio a la interpretación, lo que significa que la estrategia puede ser utilizada por cualquier trader, incluyendo los que tienen poca experiencia en los mercados.

De acuerdo al autor del sistema, tiene un alto porcentaje de operaciones ganadoras, lo que quiere decir que si se utiliza en combinación con una buena estrategia de gestión monetaria, puede resultar rentable a largo plazo. El autor también indica que puede usarse en todos los pares de divisas y en cualquier momento en que el mercado está activo, sin embargo se recomienda ignorar las señales que se producen 30 minutos antes y 30 minutos después de la publicación de cualquier noticia e indicador económico del mercado, ya que son periodos de alta volatilidad y en donde los precios tienen un comportamiento impredecible.

Se recomienda evaluar el sistema con una cuenta demo (ver lista de brokers de opciones binarias con cuentas demo) antes de utilizarlo para operar con dinero real, de tal forma que el trader pueda practicar con sus señales y probar sus resultados sin arriesgar dinero en el proceso.

En este sentido, se recomienda abstenerse de usar el sistema 30 minutos antes de una noticia y esperar a que transcurran 30 minutos después de la publicación antes de realizar cualquier operación.

El sistema se utiliza en gráficos de 5 minutos y se basa en señales generadas por indicadores personalizados para MT4, los cuáles se incluyen al final del artículo.

Configuración del sistema

El sistema utiliza una serie de indicadores personalizados para Metatrader 4, los cuáles generan las señales de entrada (se describen a continuación) e incluyen una alerta sonora y un filtro en forma de un indicador de tendencia llamado Supertrend. Para facilitar el uso de los indicadores y la estrategia se incluye una plantilla del sistema junto con los indicadores personalizados.

  • Pares de divisas: Este sistema de puede utilizar para operar con todos los pares de divisas.
  • Marco de tiempo: El sistema fue diseñado para operar en el marco de tiempo de 5 minutos y con opciones binarias con un vencimiento de 5 minutos. Sin embargo, también puede probarse en otros marcos de tiempo.

Posiciones de compra

  • Primero que todo se necesita que aparezca una flecha amarilla alcista para prepararse para la entrada (nombre del indicador =sma corssover_justin).
  • Después de que cierra la candela de la señal inicial, debe aparecer una gran flecha azul en la siguiente candela junto con una flecha verde más pequeña. En este caso se necesita que aparezcan las dos flechas juntas.
  • Las flechas de entrada (flecha azul + flecha verde) deben producirse exactamente en la siguiente candela después que aparece la flecha amarilla.
  • Filtro opcional: Solo se toman las señales de compra cuando el precio está arriba del indicador SuperTrend y el color de este es verde.

El siguiente es un ejemplo de una buena señal de compra con el sistema:

Posiciones de venta

  • Primero que todo se necesita que aparezca una flecha amarilla bajista para prepararse para la entrada (nombre del indicador =sma corssover_justin).
  • Después de que cierra la candela de la señal inicial, debe aparecer una gran flecha roja en la siguiente candela junto con una flecha rosada más pequeña. En este caso se necesita que aparezcan las dos flechas juntas.
  • Las flechas de entrada (flecha roja+ flecha rosada) deben producirse exactamente en la siguiente candela después que aparece la flecha amarilla.
  • Filtro opcional: Solo se toman las señales de venta cuando el precio está debajo del indicador SuperTrend y el color de este es rojo.

El siguiente es un ejemplo de una buena señal de venta con el sistema:

Para ambas señales, se recomiendan las opciones binarias con un vencimiento de 5 minutos. Las señales más precisas se producen durante las sesiones de Nueva York y Londres. En cuanto al filtro, su uso reduce la cantidad de señales válidas para el trader, pero aumenta la fiabilidad de las mismas. Cada trader deberá decidir si desea sacrificar o no el número de oportunidades por una mayor fiabilidad. La recomendación obvia en este caso es probar las dos versiones del sistema en una cuenta demo, tanto con filtro como sin filtro para comparar los resultados.

Los indicadores personalizados junto con la plantilla del sistema y una alerta sonora pueden ser descargados por medio del siguiente enlace:

Tanto los indicadores como la plantilla pueden ser modificados. El autor permite su utilización libre.

Cómo desarrollar y poner a prueba una estrategia de opciones binarias en el Simulador de Estrategias de MetaTrader 4

Índice

1 Introducción

En el Simulador de Estrategias de MetaTrader 4 se pueden testar asesores e indicadores con datos históricos, pero no puede procesar opciones binarias con tiempo de expiración. Por eso, al verme en la necesidad de poner a prueba una estrategia de opciones binarias en MetaTrader 4, decidí crear para estos menesteres la utilidad Binary-Options-Strategy-Tester.

Para seguir este ejemplo y poner a prueba una estrategia de opciones binarias, necesitará esta utilidad, que ya es posible alquilar en el Mercado. La versión demo será más que suficienteara para que el usuario pueda valorar lo bien que vendrá a sus necesidades y también comprender su concepto.

La idea consta de dos partes:

Se trata de un ejemplo paso a paso sobre cómo se puede construir una estrategia de trabajo con opciones binarias: el indicador (marcado con color rojo en el dibujo de arriba) se conecta a través de la biblioteca Binary-Options-Strategy-Library con Binary-Options-Strategy-Tester, a continuación, la biblioteca coloca órdenes virtuales y calcula los esultados de su trabajo con la ayuda de back-tests y forward-tests.

2. Instalación

Descargue del Mercado Binary-Options-Strategy-Tester. También está disponible la configuración de prueba para la simulación de estrategias con opciones binarias en el Simulador de Estrategias de Metatrader 4. La estrategia llamará la función Binary-Options-Strategy-Tester (a través de la biblioteca Binary-Options-Strategy-Library) para colocar transacciones virtuales. En relación con el concepto del acuerdo de licencia de MQL4,solo puede funcionar si el producto tiene una licencia válida. Por eso usted deberá o bien adquirir la versión de pago del producto, o bien adquirir la versión demo.

Descargue Binary-Options-Strategy-Library y colóquelo en su carpeta \Include ( [su ruta a su MetaTrader 4] \ MQL4 \ Include). La biblioteca gratuita proporciona varias funciones para construir estrategias con opciones binarias y para conectarse sencillamente con su producto Binary-Options-Strategy-Tester.

Descargue el indicador gratuito KVO y colóquelo en la carpeta Indicadores \ Downloads ([ruta a su MetaTrader 4] \ MQL4 \ Indicadores \ Downloads. Este indicador se usa como ejemplo del acceso de la estrategia a los indicadores externos y sus archivos ex4. Podrá encontrar más información sobre este indicador aquí.

Ahora puede pasar al apartado 3 y construir un ejemplo del código por sí mismo o cargar el ejemplo mostrado más abajo: colóquelo (y su archivo ex4 compilado) en la carpeta \Indicators ([ruta a su MetaTrader 4]\MQL4\Indicators).

3. Ejemplo de desarrollo de una estrategia de opciones binarias

Ahora se describirá paso a paso cómo construir un ejemplo de estrategia de opciones binarias dentro del indicador, para que este pueda interactuar con la utilidad Binary-Options-Strategy-Tester.

3.1 Definimos la estrategia

En primer lugar, deberemos definir la estrategia y los valores a cambiar (parámetros de entrada). La documentación de MQL4 describe todos los indicadores técnicos a los que es posible recurrir a través de la interfaz iCustom: https://docs.mql4.com/indicators

Supungamos que queremos crear una estrategia comercial basada en el cruce de una media móvil «rápida» y una «lenta», que comerciará en la siguiente vela tras el cruce. La documentación describe cómo podemos obtener los valores de la МА simple: https://docs.mql4.com/indicators/ima.

Queremos tener la posibilidad de elegir los valores para el periodo de promediación de la МА (rápida y lenta), el precio por el que se calcula la MA, así como el método de promediación. Otros valores (tales como el símbolo, el marco temporal y el desplazamiento) dependen de la situación simulada (por ejemplo, del símbolo en el que está iniciado el Simulador) y se deberán establecer de forma automática. Por eso, en esencia, necesitaremos las siguientes variables para la МА:

Dado que necesitamos dos МА (para marcar sus cruces), requeriremos de los siguientes parámetros de entrada por defecto:

3.2 Creamos una estrategia de opciones binarias

Construiremos un indicador en el que se incluirá una estrategia de opciones binarias, que se podrá arrastrar al gráfico donde también se iniciará la utilidad Binary-Options-Strategy-Tester.

Abra el editor MQL (en Metatrader 4 pulse sobre «Servicio» -> «Editor MetaQuotes Language» o simplemente pulse F4) y clique en «Crear»:

Aparecerá el Wizard MQL. Elija «Indicador de usuario» para crear un indicador vacío y pulse en «Continuar»:

Introduzca el nombre, el copyright y el enlace a la estrategia, así como los parámetros de entrada con sus tipos y sus valores por defecto (valores iniciales), pulsando el botón «Añadir» y después «Continuar»:

En la pestaña del procesador de eventos, ponga la bandera «OnCalculate», ya que necesitaremos este evento para comprobar la estrategia en cada tick. Pulse «Continuar»:

En la ventana de propiedades, elija la bandera «Indicador en una ventana aparte», puesto que necesitaremos de una ventana aparte para la impresión de la depuración. Pulse «Finalizar»:

Aparecerá la plantilla del código de su indicador:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/ru/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/ru/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window
//— input parameters
input int period_fast= 5 ;
input int period_slow= 10 ;
input int method_both= 0 ;
input int applied_price_both= 0 ;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— Representación de los búferes de indicador

//—
return ( INIT_SUCCEEDED );
>
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—

3.2.1 Parámetros de entrada

Los parámetros de entrada iniciales se crean con el Wizard MQL (ver 3.2, Creamos una estrategia para opciones binarias), los perfeccionaremos con la ayuda de los siguientes pasos.

Para evitar el valor int para el precio usado y el método de promerdiación para la MA en los parámetros de entrada, el tipo de los parámetros method_both y applied_price_both lo cambiamos de int a una enumeración con los valores por defecto.

Además, se han añadido comentarios a los parámetros de entrada, para mostrar los comentarios como etiquetas en lugar de los nombres de las variables:

//— Parámetros de entrada
input int period_fast = 5 ; // Valores de la MA rápida
input int period_slow = 10 ; // Valores de la MA lenta
input ENUM_MA_METHOD method_both = MODE_SMA; // Método de cálculo de la МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Precio para el cálculo de la МА

Esta modificación hace accesible a los parámetros de entrada un menú desplegable para elegir, así como la activación de etiquetas :

3.2.2 Inclusión de la biblioteca Binary-Options-Strategy-Library

Si ha descargado la biblioteca (ver 2. Instalación) y la ha instalado en la carpeta \Include ([ruta a Metatrader 4]\MQL4\Include), puede incluirla de la siguiente forma:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/ru/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/ru/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window

//— Parámetros de entrada

Con la ayuda de la biblioteca, completamos los parámetros de entrada con dos nuevos:

  • En una vela se ubica solo una transacción SELL o BUY
  • La comprobación en el marco de la estrategia se realiza solo al comienzo de una nueva vela

3.2.3 Añadimos CallStrategy()

Añadimos la llamada de la función CallStrategy() en OnCalculate() de su indicador, para recurrir a la estrategia en cada nuevo tick. CallStrategy() se proporciona con la biblioteca Binary-Options-Strategy-Library, que usted ya ha incluido, como se describe más arriba:

3.2.4 Implementamos СheckMyRules() y la función auxiliar

En la función CheckMyRules(), que se llama con la ayuda de la biblioteca Binary-Options-Strategy-Library, se han implementado las condiciones de la estrategia y tendrá lugar la colocación de transacciones con la ayuda de la función PlaceTrade() de esta misma biblioteca. Los valores de ambas МА se toman de la función auxiliar GetValuesForMA() y se guardan temporalmente en las variables, para compararlas con la ayuda de la condición if.

//— Parámetros de entrada
input int period_fast = 5 ; // Valores de la MA rápida
input int period_slow = 10 ; // Valores de la MA lenta
input ENUM_MA_METHOD method_both = MODE_SMA; // Método de cálculo de la МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Precio para el cálculo de la МА

//+——————————————————————+
//| Ubique aquí sus condiciones comerciales, mire el ejemplo más abajo. |
//| El Simualdor de Estrategias llama esta función para colocar las transacciones. |
//| NO SE DEBE: |
//| – Renombrar la función |
//| – Añadir parámetros a la función, por ejemplo, CheckMyRules(int a) |
//| – Cambiar el tipo de valor retornado de la función |
//+——————————————————————+
void CheckMyRules()
<

// Guardar los valores de MA con shift=0 (vela actual) -> vela actual,
// Llama la función auxiliar GetValueForMA() para obtener los valores, mire las funciones auxiliares más abajo
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

// Guardar los valores de MA con shift=1 (vela pasada) -> última vela,
// Llama la función auxiliar GetValueForMA() para obtener los valores, mire las funciones auxiliares más abajo
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // Comprobar si se cruzan la MA lenta y la МА rápida
<
PlaceTrade( OP_SELL ); // Colocar la transacción SELL en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

if (emaFast_Past
&& emaFast_Current > emaSlow_Past) // Comprobar si se cruzan la MA lenta y la МА rápida
<
PlaceTrade( OP_SELL ); // Colocar la transacción BUY en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

3.2.5 Imprimimos los valores de depuración

La función PrintDebugValue() posibilita la impresión de los datos de depuración durante el funcionamiento del simulador. En el ejemplo de más abajo, los valores de la МА se muestran con los nombres de sus variables en forma de etiquetas:

//— parámetros de entrada
input int period_fast = 5 ; // Valores de la MA rápida
input int period_slow = 10 ; // Valores de la MA lenta
input ENUM_MA_METHOD method_both = MODE_SMA; // Método de cálculo de la МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Precio para el cálculo de la МА

//+—————————————————————————–+
//| Coloque aquí sus condiciones comerciales, mire el ejemplo más abajo. |
//| El Simulador de Estrategias llama esta función para colocar las transacciones. |
//| NO SE DEBE: |
//| – Renombrar la función |
//| – Añadir parámetros a la función, por ejemplo, CheckMyRules(int a) |
//| – Cambiar el tipo de valor retornado de la función, por ejemplo, int CheckMyRules() |
//+—————————————————————————–+
void CheckMyRules()
<

// Guardar los valores de MA con shift=0 (vela actual) -> vela actual,
//llama la función auxiliar GetValueForMA() para obtener valores, mire las funcines auxiliares más abajo
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

//Guardar los valores de MA con shift=1 (vela pasada) -> última vela,
//Llama la función auxiliar GetValueForMA() para obtener los valores, mire las funciones auxiliares más abajo
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Etiqueta y valor en la línea 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Etiqueta y valor en la línea 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Etiqueta y valor en la línea 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Etiqueta y valor en la línea 3

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // comprobar si se cruzan la MA lenta y la МА rápida
<
PlaceTrade( OP_SELL ); // Colocar la transacción SELL en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

if (emaFast_Past && emaFast_Current // Comprobar si se cruzan la MA lenta y la МА rápida
<
PlaceTrade( OP_SELL ); // Colocar la transacción BUY en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

//+——————————————————————–+
//| Obtener el valor de la MA para el periodo, el método, el precio para el cálculo y el desplazamiento para la МА. |
//| For details of iMA() see https://docs.mql4.com/indicators/ima |
//+——————————————————————–+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

3.2.6 Usamos los indicadores externos (archivos ex4)

Para una estrategia de opciones binarias pueden estar disponibles de forma adicional indicadores que guardan sus valores en búferes, incluso si usted solo tiene a su disposición archivos ex4 compilados.

Digamos que queremos incluir la línea de señal del indicador KVO https://www.mql5.com/es/code/8677 y colocar una transacción BUY, si es mayor a 0, y SELL, si es inferior a 0. Cargamos el indicador y ubicamos el archivo compilado (ex4) en la carpeta \Indicators\Downloads ([ruta a MetaTrader 4]\MQL4\Indicators\Downloads).

Primero deberemos definir los búferes correspondientes para el acceso, en los que se guardarán los valores. Para mostrar todos los búferes disponibles utilizados en el indicador, pulsamos el botón «Ventana de datos» del terminal y arrastramos el indicador KVO al gráfico. Al colocar la cruceta en el gráfico (use la ruleta del ratón para que aparezca), los valores del búfer del indicador en el periodo seleccionado se mostrarán en la ventana de datos.

Las etiquetas de la ventana de datos nos informan del valor del búfer de indicador con el índice. En este búfer se guardan los datos de la línea de señal. Si los búferes de los indicadores no están provistos de etiquetas, podemos encontrar la ruta necesaria comparando los valores del búfer con el valor representado bajo la cruceta apuntada en el gráfico del indicador. Los índices de los búferes del indicador comienzan a partir de 0. De esta forma, el valor del búfer 1 corresponde al valor del búfer con el índice 0, y así sucesivamente. Deberemos tener acceso al búfer 1 para recibir el valor de la señal.

Después deberemos conocer todos los parámetros de entrada del indicador externo, al que querríamos obtener acceso. Al arrastrar el indicador al gráfico podremos abrir el campo «Parámetros de entrada»:

Supongamos que usted quiere obtener acceso al indicador con los valores iniciales 34, 55 y 13. Usamos la función auxiliar (basada en iCustom), que nos permitirá obtener los valores del indicador con los parámetros para el búfer y el desplazamiento, al tiempo que el desplazamiento 0 será el valor de la vela actual, el desplazamiento 1, el valor para la vela anterior, el desplazamiento 2, el valor de la penútlima vela, etcétera. Como complemento, guardaremos temporalmente los valores de los búferes de indicador y perfeccionaremos las condiciones if de la estrategia:

//— Parámetros de entrada
input int period_fast = 5 ; // Valores de la MA rápida
input int period_slow = 10 ; // Valores de la MA lenta
input ENUM_MA_METHOD method_both = MODE_SMA ; // Método de cálculo de la МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE ; // Precio para el cálculo de la МА

//+——————————————————————————-+
//| Ubique aquí sus condiciones comerciales, mire el ejemplo más abajo |
//| El Simulador de Estrategias llamará esta función para ubicar las transacciones |
//| NO SE DEBE: |
//| – Renombrar la función |
//| – Añadir parámetros a la función, por ejemplo CheckMyRules(int a) |
//| – Cambiar el tipo de valor retornado de la función, por ejemplo, int CheckMyRules()) |
//+——————————————————————————-+
void CheckMyRules()
<

// Guardar los valores de MA con shift=0 (vela actual) -> vela actual,
// Llama la función auxiliar GetValueForMA() para obtener los valores, mire la descripción de la función auxiliar más abajo
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

// Guardar los valores de MA con shift=1 (vela pasada) -> last candle,
// // Llama la función auxiliar GetValueForMA() para obtener los valores, mire la descripción de la función auxiliar más abajo
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

// Guardamos el valor de la señal (búfer 1) del indicador KVO de la vela actual (shift 0)
double kvoSignal = GetValuesFromIndicator__KVO__( 1 , 0 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Etiqueta y valor en la línea 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Etiqueta y valor en la línea 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Etiqueta y valor en la línea 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Etiqueta y valor en la línea 3

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // Comprobar si se cruzan la MA lenta y la МА rápida

&& kvoSignal 0 ) // Comprobar si se encuentra el valor de señal de KVO por debajo de la línea cero

PlaceTrade( OP_SELL ); // Coloque la transacción SELL en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

if (emaFast_Past emaSlow_Past // Comprobar si se cruzan la MA lenta y la МА rápida
&& kvoSignal > 0 ) // Comprobar si se encuentra el valor de señal de KVO por encima de la línea cero
<
PlaceTrade( OP_BUY ); // Coloque la transacción BUY en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyFunctions.mqh
>

//+————————————————————————+
//| Obtener los valores de la MA para el periodo, el método, el precio para el cálculo y el desplazamiento |
//| Para más detalles sobre iMA() mire https://docs.mql4.com/indicators/ima |
//+————————————————————————+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

//+——————————————————————+
//| Ejemplo de obtención de valores del indicador externo |
//| mire https://docs.mql4.com/indicators/icustom |
//| Parámetros : |
//| int _buffer – búfer de indicador (de 0) |
//| int _shift – valor del desplazamiento; 0 = vela actual, 1 = vela anterior |
//+——————————————————————+
double GetValuesFromIndicator__KVO__( int _buffer, int _shift= 0 ) // Cambiar «__KVO__» al nombre del indicador
<

return (
iCustom (
NULL , // NULL para el marco temporal actual elegido en el simulador – NO SE NECESITAN CAMBIOS
0 , // 0 para el SÍMBOLO actual elegido en el simulador – NO SE NECESITAN CAMBIOS

//BEGIN EDIT
«\\Downloads\\KVO.ex4» , // Ruta a los archivos y nombres de los archivos del indicador(*.ex4)
//BEGIN INDICATORS INPUTS
34 ,
55 ,
13 ,
//END FOR INPUTS
//END EDIT

_buffer, // Índice del búfer (comienzan a partir de 0), _buffer se transmite a través de los parámetros de la función – NO SE NECESITAN CAMBIOS
_shift // Desplazamiento (0 para la vela actual), _shift se transmite a través de los parámetros de la función – NO SE NECESITAN CAMBIOS
)
);

Existe otro camino para perfeccionar los parámetros de entrada en nuestro indicador de la estrategia. Por ejemplo, se pueden usar los valores del indicador KVO que utilizamos y establecerlos como variables de la función auxiliar. Sin embargo, puesto que en este artículo solo se muestra un ejemplo, y además el más sencillo de todos los posibles, esta variante no la veremos con detalle.

3.3 El código completo

Más abajo encontrará el código del ejemplo de la estrategia con opciones binarias, con todos los pasos anteriormente descritos, ya listo para ser arrastrado al Simulador de Estrategias de opciones binarias para una simulación completa y para la muestra de resultados en el gráfico:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/en/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/en/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window

//+——————————————————————+
//| Ubique aquí sus parámetros de entrada, mire el ejemplo más abajo |
//+——————————————————————+
//— Parámetros de entrada
input int period_fast = 5 ; // Periodo de la MA rápida
input int period_slow = 10 ; // Periodo de la MA lenta
input ENUM_MA_METHOD method_both = MODE_SMA ; // Método de cálculo de la МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE ; // Precio para el cálculo de la МА
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— Ubicación de los búferes de indicador

//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—

CallStrategy(); // Llamada de la estrategia, la función se ubica en BinaryOptionsStrategyLibrary.mqh (está incluida más arriba)

//— Retorna los valores prev_calculated para la siguiente llamada
return (rates_total);
>

//+——————————————————————————-+
//| Ubique aquí sus condiciones comerciales, mire el ejemplo más abajo |
//| El Simulador de Estrategias llamará esta función para ubicar las transacciones |
//| NO SE DEBE: |
//| – Renombrar la función |
//| – Añadir parámetros a la función, por ejemplo CheckMyRules(int a) |
//| – Cambiar el tipo de valor retornado de la función, por ejemplo, int CheckMyRules()) |
//+——————————————————————————-+
void CheckMyRules()
<

// Guardar los valores de MA con shift=0 (vela actual) -> vela actual,
// Llama la función auxiliar GetValueForMA() para obtener los valores, mire las funciones auxiliares más abajo
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

// Guardar los valores de MA con shift=1 (vela pasada) -> vela pasada,
// Llama la función auxiliar GetValueForMA() para obtener los valores, mire las funciones auxiliares más abajo
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

// Guardamos el valor de la señal (búfer 1) del indicador KVO de la vela actual (shift 0)
double kvoSignal = GetValuesFromIndicator__KVO__( 1 , 0 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Etiqueta y valor en la línea 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Etiqueta y valor en la línea 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Etiqueta y valor en la línea 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Etiqueta y valor en la línea 3

if (emaFast_Past emaSlow_Past // Comprobar si se cruzan la MA lenta y la МА rápida
&& kvoSignal > 0 ) // Comprobar si se encuentra el valor de señal de KVO por encima de la línea cero
<
PlaceTrade( OP_BUY ); // Ubicar la transacción BUY en el Simulador de Estrategias, la función se encuentra en BinaryOptionsStrategyLibrary.mqh
>

//+——————————————————————–+
//| Obtener el valor de la MA para el periodo, el método, el precio aplicado y el desplazamiento |
//| Para más detalles sobre iMA(), mire https://docs.mql4.com/indicators/ima |
//+——————————————————————–+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

//+————————————————————————–+
//| Ejemplo de obtención de los valores de los indicadores externos, |
//| mire https://docs.mql4.com/indicators/icustom |
//| Parámetros: |
//| int _buffer – búfer de indicador (comienza desde 0) |
//| int _shift – valor del desplazamiento; 0 = vela actual, 1 = vela anterior |
//+————————————————————————–+
double GetValuesFromIndicator__KVO__( int _buffer, int _shift= 0 ) // Cambiar «__KVO__» por el nombre del indicador
<
return (
iCustom (
NULL , // NULL para el marco temporal actual elegido en el Simulador – NO SE NECESITAN CAMBIOS
0 , // 0 para el símbolo actual elegido en el Simulador – NO SE NECESITAN CAMBIOS

//BEGIN EDIT
«\\Downloads\\KVO.ex4» , // Nombre del indicador (*.ex4 file) y ruta hacia el mismo
//BEGIN INDCATORS INPUTS
34 ,
55 ,
13 ,
//END FOR INPUTS
//END EDIT

_buffer, // Índice de búfer (comienza a partir de 0), _buffer se transmite a través de los parámetros de la función – NO SE NECESITAN CAMBIOS
_shift // Desplazamiento (0 para la vela actual), _shift se transmite a través de los parámetros de la función – NO SE NECESITAN CAMBIOS
)
);
>
//+—————————————————————–+

4. Iniciamos el backtest (vídeo)

El vídeo de más abajo muestra cómo iniciar un backtest en su estrategia de opciones binarias en el Simulador de Estrategias de MetaTrader 4:

  • Inicie Binary-Options-Strategy-Tester en el Simulador de Estrategias de MetaTrader 4 e indique los parámetros de entrada
  • Arrastre su indicador de estrategia al gráfico, indique los parámetros de entrada y compruebe si se ha establecido «Permitir la importación de expertos externos» en la pestaña «Generales»».
  • Arrastre al gráfico el indicador utilizado con sus parámetros de entrada, para ver cómo cambian sus valores mientras está iniciado el simulador (se trata de un punto opcional del programa).
  • Guarde sus ajustes en la plantilla para iniciar el test con todos estos ajustes de nuevo, utilice el botón de pausa en el Simulador de Estrategias (esto tampoco es obligatorio).
  • Ahora podrá ver los resultados del funcionamiento de su estrategia de opciones binarias en el gráfico del Simulador de Estrategias.

5. Inicie el forward test

Para iniciar el forward test, solo tendrá que arrastrar la utilidad Binary-Options-Strategy-Tester y su indicador de estrategia a su gráfico demo o al gráfico de una cuenta real de su bróker, en lugar de usar el Simulador de Estrategias.

  • Arrastre la utilidad Binary-Options-Strategy-Tester al gráfico demo o a su cuenta, e indique los parámetros de entrada.
  • Arrastre su indicador de estrategia al gráfico, indique los parámetros de entrada y compruebe si está permitido usar los parámetros de expertos externos en el recuadro de condiciones.
  • Arrastre al gráfico el indicador que está usando con sus parámetros para ver cómo cambian sus condiciones mientras funciona el forward test.
  • Guarde todos los ajustes en una plantilla para luego iniciar el test de nuevo.
  • Ahora porá ver el resultado del funcionamiento de su estrategia de opciones binarias en el gráfico de una cuenta demo o real.

6. Preguntas más frecuentes

Pregunta: ¿Por qué muestra usted un ejemplo de una estrategia de opciones binarias no rentable?
Respuesta: Se trata simplemente de un ejemplo de cómo construir una estrategia relacionando su indicador con la utilidad Binary-Options-Strategy-Tester, para comprobarla en condiciones de mercado y perfeccionarla.

Pregunta: La utilidad Binary-Options-Strategy-Tester deja de funionar con el mensaje de error «Array out of range» después de alcanzar una cantidad determinada de pérdidas. ¿Por qué?
Respuesta: Después de una cierta cantidad de pérdidas, digamos x, durante su funcionamiento, Binary-Options-Strategy-Tester puede dar error para detener el Simulador y analizar la situación en el gráfico. Si no necesita esto, solo tiene que desactivar la opción correspondiente en los ajustes.

Pregunta: Algunas flechas indicadoras paracen no ser procesadas por la utilidad Binary-Options-Strategy-Tester. ¿Por qué?
Respuesta: Para dejar una cierta diferencia entre la versión demo y la versión para la venta. En la versión demo, no todas las órdenes son procesadas por el simulador. Las órdenes no procesadas se marcan con flechas verdes.

Preugunta: En el gráfico no aparece la flecha después de arrstrar mi indicador con la estrategia de trabajo. ¿Qué ha sucedido?
Respuesta: Debe activar la casilla de verificación «Permitir la importación de expertos externos» antes de arrastrar su indicador de estrategia al gráfico (el mensaje en el log le mostrará en este caso un error).

Pregunta: No veo los resultados en las pestañas del Simulador «Resultados», «Gráfico», «Informe». ¿Dónde puedo ver los resultados de la simulación?
Respuesta: El Simulador de Estrategias de MetaЕrader 4 no puede procesar opciones binarias, por eso no todas las pestañas pueden ser utilizadas. De ahí que nuestra utilidad calcule todas las ganancias y pérdidas e imprima los resultados directamente en el gráfico.

7. Miscelánea

Esta utilidad ha sido desarrollada porque me era necesaria la posibilidad de simular estrategias de opciones binarias en el modo automático en MetaTrader 4 para periodos a largo plazo y hacer forward tests en los gráficos de los brókeres. He invertido mucho tiempo en el desarrollo del concepto y la implementación de la utilidad Binary-Options-Strategy-Tester, y también en el estudio de la documentación. Puede ser que exista un camino aún más cómodo para hacer esto, y también es posible que ciertas mejoras hagan la utilidad más conveniente para usted. Por favor, no tenga reparo en contactar conmigo si tiene alguna idea para mejorar este trabajo.

Los mejores corredores de opciones binarias 2020:
  • Binarium
    Binarium

    1er lugar! El mejor broker de opciones binarias!
    Ideal para principiantes! Entrenamiento gratis! Bonos de registro!

  • FinMax
    FinMax

    2do lugar! Broker confiable!

Like this post? Please share to your friends:
Todo sobre opciones binarias
Deja un comentario

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: