Creando un EA gradador multiplataforma (Parte II): Cuadrícula en el rango en la dirección de la tendencia

30 julio 2019, 10:57
Roman Klymenko
1
512

Introducción

En el artículo anterior, consideramos la manera de crear un EA gradador simple que podía trabajar tanto en MetaTrader 4 como en MetaTrader 5. La particularidad de nuestro EA gradador era que después de colocar la cuadrícula, él no añadía en ella ningunas órdenes nuevas hasta que la cuadrícula actual no cerrara con ganancias o con pérdidas máximas totales.

Según las pruebas, nuestro EA gradador demostraba las ganancias desde el año 2018. El mal consiste en que demostraba pérdidas constantes de 2014 a 2018. Por eso, es bastante peligroso usarlo en una cuenta real. En este artículo, intentaremos implementar un EA gradador de acuerdo con otro principio, usando otra idea comercial.

Ideamos el sistema comercial

La idea principal del EA de la primera parte era la esperanza de que el precio habitualmente se movía en una dirección determinada. Eso significa que si abrimos varias órdenes en otra dirección, las nuevas órdenes que se abren en la dirección necesaria podrán compensar sus pérdidas. Así, tarde o temprano, conseguiremos el beneficio necesario para todas las órdenes abiertas en general. Para conseguir la implementación de esta idea, colocábamos una cuadrícula de N órdenes en Long sobre el precio actual, y una cuadrícula de la misma cantidad de órdenes debajo del precio actual en Sell.

El testeo posterior demostró que las situaciones cuando el precio primero pillaba la orden de arriba, luego iba hacia abajo y pillaba la orden de abajo, luego volvía a subir y pillaba la segunda, la tercera orden de arriba, y después volvía a bajar pillando las siguientes órdenes, activando así todas o casi todas las órdenes, tanto en Long, como en Short... Pues, resultó que estas situaciones tenían lugar, y con bastante frecuencia, para reducir el beneficio potencial a cero. Por eso, no es la mejor manera de ganar dinero si construimos nuestro sistema comercial basándose en eso.

Pero si estas situaciones surgen a menudo y el precio en el mercado Forex a menudo oscila en un determinado rango, ¿por qué no usar esta situación a nuestro favor? Es decir, seguiremos colocando la cuadrícula por encima del precio actual en Long, y por debajo del precio actual en Short. Pero en el EA habrá dos modificaciones importantes.

En primer lugar, no vamos a colocar el Take para toda la cadena de posiciones, sino para cada posición. También habrá configuraciones para colocar el Stop Loss para cada orden. Pero como demuestran las pruebas, el uso del Stop Loss no lleva a las ganacias. Por eso, no vamos a usarlo.

En segundo lugar, la cuadrícula colocada anteriormente va a completarse constantemente con nuevas órdenes limitadas si el precio actual ha cambiado. Además, las órdenes limitadas de las que el precios se ha alejado bastante serán eliminadas. Es decir, si el precio se ha alejado a 1 paso de la cuadrícula hacia arriba, añadimos una nueva orden en Long al final de la cuadrícula por encima del precio, añadimos otra orden límite en Short por debajo del precio como primero, eliminando la última orden limitada en Short por debajo del precio. De esta manera, nuestra cuadrícula va a seguir el precio del activo.

¿Qué conseguimos si hacemos eso? En caso del movimiento tendencial, vamos a recibir los Takes para las órdenes en dirección del movimiento de la tendencia. Si empieza la corrección, recibimos los Takes en dirección de la corrección. De esta manera, si en el timeframe grande, el precio se mueve en el rango en una o en otra dirección, vamos a ganar independientemente de la dirección del movimiento del precio.

Parece que suena bien. Intentaremos verificar qué obtenemos en vida real.

Creando la versión base del EA.

A diferencia del primer artículo, no vamos a considerar el código fuente del EA en este artículo. El código fuente del EA y el EA compilado para MetaTrader 4 y MetaTrader 5 se adjuntan al artículo. Si quiere, puede ver cómo está implementado todo eso. Pues, en este artículo, nos centraremos en la construcción del algoritmo, en las discusiones y, naturalmente, en las pruebas.

Distancia entre las órdenes de la cuadrícula.

Comenzamos con la distancia entre las órdenes limitadas en la cuadrícula. Todas las órdenes limitadas tienen que colocarse a la misma distancia una de otra. Eso no supone ningún problema si colocamos la cuadrícula entera de golpe y no la editamos cuando se cambia el precio. Pero nosotros tenemos una cuadrícula flotante, por decirlo así. Antes de colocar una orden limitada nueva, tenemos que averiguar si hay una orden limitada en este paso de la cuadrícula.

Es imposible verificar si hay una orden limitada con este precio. Es que la orden puede tener otro precio, por ejemplo, a unos puntos más o menos. Si no lo tomamos en cuenta, el EA puede colocar centenares de órdenes limitadas con unos precios relativamente iguales. No habrá nada bueno con este trading.

Para evitar este problema, no vamos a indicar la distancia entre las órdenes limitadas en puntos. En vez de eso, la distancia entre los pasos de la cuadrícula va a indicarse a través del número de dígitos del precio. El parámetro Número de dígitos para las órdenes limitadas se encargará de ello.

En caso del valor positivo, este parámetro indica el número de dígitos después de la coma, en el que van a colocarse las órdenes de la cuadrícula. Por ejemplo, el valor 2 significa que la cuadrícula va a colocarse a cada 1/100 del paso del precio. Por ejemplo, si el precio actual es 1.1234, entonces, la cuadrícula en Long va a colocarse en los precios 1,13, 1,14, 1,15, mientras que en caso de Short, en los precios 1,11, 1,10, 1,09, etc. Es decir, en caso de los instrumentos de 4 y 5 dígitos (la mayoría de los pares de divisas en el mercado Forex), la distancia entre las órdenes de la cuadrícula será igual a 100 puntos.

Con el mismo precio y el número de dígitos igual a 3, la cuadrícula será de 3 dígitos tras la coma:

  • en Long: 1,124, 1,125, 1,126, 1,127, etc.
  • en Short: 1,122, 1,121, 1,12, 1,119, etc.

Tenemos la distancia entre las órdenes en 10 puntos. Si el valor del parámetro es 0, la cuadrícula se coloca con el paso 1. Por ejemplo, en los precios 111, 112, 113, 114.

Este parámetro también soporta los valores negativos. Ellos desplazan el número de dígitos a la izquierda del punto. Es decir, si el valor es -1, la cuadrícula va a colocarse con el paso 10, si el valor es -2, con el paso 100.

Esta opción de la colocación de la cuadrícula no sólo simplifica la verificación de que si la orden limitada ha sido colocada en el paso necesario de la cuadrícula, sino también permite considerar los niveles formados por precios redondos en la negociación. Es que, en realidad, colocamos las órdenes limitadas precisamente en los precios redondos.

Entre los parámetros del EA hay otro parámetro que influye en el paso de la cuadrícula, «Desplazamiento, puntos». Permite desplazar el paso de la cuadrícula del punto redondo al número de puntos especificado. Por ejemplo, si el número de dígitos es 2 y el desplazamiento es 1, la cuadrícula no va a colocarse en los precios 1,12, 1,13, 1,14, sino en los precios 1,121, 1,131, 1,141, si se trata de las órdenes en Long por encima del precio actual, y en los precios 1,119, 1,129, 1,139, si son las órdenes en Short por debajo del precio actual. De esta manera, podemos protegernos con precios redondos esperando a que, en caso de una situación desfavorable para nosotros, el precio no pille la orden limitada antes de volver en dirección contraria.

En cuanto a «Desplazamiento, puntos», la prueba ha demostrado que su uso no siempre lleva a un resultados positivo.

Parámetros principales del Asesor Experto.

Aparte de dos parámetros mencionados, el EA tiene muchos más:

Parámetros del EA

Entre ellos, los parámetros más importantes son los siguientes:

  • «Tamaño del lote». No podemos sin él. Determina el volumen del lote que se usa al colocar cada orden limitada.
  • «Número máximo de órdenes limitadas en la misma dirección». Este parámetro determina el número de órdenes limitadas en la cuadrícula a un lado del precio. Es decir, la cuadrícula estará compuesta del número doble de este parámetro. En cuanto el precio se mueva en una de las direcciones de la cuadrícula, pasando las órdenes limitadas en posiciones abiertas, el EA va a abrir nuevas órdenes limitadas (y cerrar aquéllas que ahora están muy apartadas del precio), para que su número total de cada lado del precio corresponda a este parámetro. Para ser más exacto, las órdenes limitadas van a colocarse cuando llega nueva barra del timeframe en el que está iniciado el EA.
  • «Take para órdenes». Determina el Take para cada orden limitada y se especifica en pasos de la cuadrícula del EA. Es decir, por ejemplo, el valor 2 de este parámetro dice que la posición será cerrada cuando el precio pase en su dirección dos órdenes siguientes de la cuadrícula. Si el parámetro Número de dígitos de órdenes limitadas es 3, el Take prácticamente será colocado en la distancia de 0,002 del precio actual (20 puntos del beneficio).
  • «Stop para órdenes» Determina el Stop Loss para cada orden limitada y también se especifica en pasos de la cuadrícula del EA. Como demostraron las pruebas, la colocación de los Stop Loss de cualquier tamaño en este tipo del EA no era eficaz. Por eso, no vamos a usar este parámetro.

Es necesario considerar el Take para ordenes determinadas. El valor óptimo de este parámetro depende en primer lugar del carácter del movimiento del precio del instrumento seleccionado. Pero prácticamente siempre se encuentra en el rango de 1 a 5. Tanto los valores próximos a 1 como a 5 tienen sus ventajas.

Cuanto menos sea el valor, la posición abierta va a cerrarse con menor beneficio y con mayor rapidez. Eso supone dos ventajas:

  • inclusos en un rango no muy grande, las posiciones van a abrirse y cerrarse con ganancias en cada movimiento del precio en una u otra dirección;
  • puesto que el tamaño del Take no es grande, durante la correlación, el precio va a dejar menos órdenes no cerradas en la dirección contraria al movimiento actual, así, la carga sobre el depósito será menor.

El tamaño grande del Take también tiene sus ventajas:

  • en caso de los movimientos tendenciales grandes del precio, el beneficio total será mayor si se usan los Takes grandes.

De esta manera, en caso de los Takes pequeños, la reducción (drowdawn) máxima del depósito será menor. Pero, al mismo tiempo, el beneficio potencial también será mucho menos.

Cierre de todas las posiciones. Aparte del Take para determinadas órdenes de la cuadrícula, Usted puede usar una serie de otros parámetros que permiten cerrar todas las posiciones abiertas cuando ocurren determinados eventos. Todos estos parámetros están reunidos en el grupo «Cerrar todas las posiciones»:

  • «Beneficio, $». Cerrar todas las posiciones abiertas si el beneficio total para ellas ha alcanzado el importe especificado en dólares.
  • «Aumento de equity en, $». Cerrar todas las posiciones abiertas si ahora la equidad es mayor por la cantidad especificada en dólares, que el importe al abrir la cuadrícula inicial. Si usa el cierre de todas las posiciones, esta opción es más preferible.
  • «Cerrar todo si el precio supera». Es un parámetro de protección y permite cerrar todas las posiciones abiertas si el precios sale fuera de su rango de trading hacia arriba. Tiene que indicar un precio por encima del cual todas las posiciones abiertas se cierran.
  • «Cerrar todo si el precio es menor». Es un parámetro de protección y permite cerrar todas las posiciones abiertas si el precios sale fuera de su rango de trading hacia abajo.

En teoría, el cierre de todas las posiciones, al salir fuera del rango, puede parecer una idea atractiva. Pero en la práctica, normalmente, eso causa la pérdida de todo el beneficio obtenido antes. En principio, como veremos en adelante, precisamente la pregunta, ¿qué hacer cuando el precio excede el rango y comienza una tendencia fuerte? es fundamental en esta estrategia comercial.

Los demás parámetros. Hasta ahora hemos considerado sólo una pequeña parte de los parámetros del EA. Algunos parámetros adicionales serán considerados a continuación. Pero hay parámetros que no vamos a usar. Estos parámetros están marcados con (-) en su nombre. Cada uno de estos parámetros contiene alguna idea, pero su uso no lleva a nada bueno en la práctica. Por otra parte, a pesar de que no vamos a aplicar estos parámetros, las ideas serán consideradas. Tal vez, le sean útiles, o Usted encontrará el medio para hacer mejor.

Herramientas para el testeo

Antes de proceder al testeo, vamos a considerar otra vez la idea en la que se basa el EA, y cómo está materializada en la práctica.

No es un secreto que es difícil predecir la dirección del movimiento del precio de la mayoría de los activos con una precisión bastante fiable. El precio primero puede ir hacia arriba rompiendo el máximo local, luego, ir hacia abajo rompiendo el mínimo local. Luego, todo se cambia bruscamente y el precio vuelve a ir hacia arriba rompiendo o casi llegando al máximo local. E incluso si el precio sigue bastante tiempo en la misma dirección, raras veces este movimiento ocurre sin corrección. Pues, podemos aprovechar de eso, acumulando el beneficio independientemente de la dirección del precio.

Para eso, vamos a colocar las órdenes limitadas encima del precio actual y debajo del precio actual. Las órdenes estarán colocadas a la misma distancia una de otra. Vamos a colocar las órdenes en Long por encima del precio suponiendo que si el precio va hacia arriba, seguirá en esta dirección. Consecuentemente, las órdenes en Short estarán debajo del precio.

El número de órdenes en la cuadrícula se establece por el parámetro «Número máximo de órdenes limitadas en la misma dirección». No obstante, en realidad, este número no es muy actual, porque cuando llega una barra nueva, en el timeframe del EA, vamos a añadir nuevas órdenes a la cuadrícula si el precio ha tocado alguna de las órdenes actuales convertiéndola en una posición abierta.

De esta manera, el parámetro «Número máximo de órdenes limitadas en la misma dirección» puede ser vigente sólo en caso de movimientos muy rápidos y fuertes del precio, cuando el precio rompe todas las órdenes de la cuadrícula durante 1 barra del timeframe, siguiendo luego la misma dirección.

Timeframe. Por cierto, hablando del timeframe. Como demostraron las pruebas, el EA se comportaba mejor en el timeframe M5. Por eso, vamos a usarlo en el testeo.

Elegimos el mercado. Ahora hablaremos del mercado en el que vamos a trabajar. La propia idea en la que se basa el EA nos da a comprender que los mercados laterales (ranging market) convienen mejor para su trabajo. Es decir, el mercado Forex. Además, es muy de desear que en el timeframe semanal o mensual se vea claramente el rango en el que se encuentra el precio en este momento.

Por ejemplo, véase el gráfico del instrumento AUDCAD:

Gráfico mensual de AUDCAD

5 últimos años, o incluso 10, se encuentra en el rango. Teóricamente, la estrategia comercial diseñada tiene que ser ideal para AUDCAD e instrumentos semejantes. Pues, vamos a comprobar eso.

Bien, usaremos los siguientes símbolos en el testeo del EA: EURUSD, AUDUSD, AUDCAD. Además, para todos los instrumentos vamos a testear el paso de la cuadrícula de 10 puntos (número de dígitos es 3). Claro que podemos probar tradear usando un paso grande de 100 puntos (número de dígitos es 2), pero será una negociación a largo plazo con pocas transacciones durante un año.

Período del testeo

En este artículo, no nos interesan períodos menos de 1 año. Para las pruebas vamos a orientarnos al período de 4 años: de 2015 a 2019. Por tanto, vamos a buscar las configuraciones más rentables precisamente para este período. Aviso que el EA no pasa el testeo en los períodos más de 10 años, o pasa con una rentabilidad pequeña en los niveles bajos del Take. Por eso, no podremos usarlo como «colocado y olvidados para 10 años».

Testeamos EURUSD, el paso es de 10 puntos (número de dígitos 3)

Pues, empezamos el testeo con la verificación de la idea base de la estrategia comercial. Todos los parámetros son predefinidos. Incluyendo, los parámetros ya considerados por nosotros:

  • Stop Loss no se coloca;
  • el cierre de todas las posiciones por la condición no se realiza.

La optimización va a realizarse usando el Take para una orden separada, así como, el parámetro «Desplazamiento, puntos». El método de la optimización es OHLC en M1. Después, el resultado final será probado usando el método «Cada tick». Los informes de todas las pruebas se adjuntan al artículo.

En general, según los resultados de las pruebas, el mejor era el Take de 2 y el desplazamiento de 1 punto:

Primer prueba en EURUSD

Los resultados de la prueba más importantes:

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 EURUSD
 23 522
 20 641
 0.88
 1.39
 40 536

En realidad, a pesar de que hemos obtenido el beneficio, pero los resultados no son tan buenos. El factor de recuperación igual a 0,88 lo demuestra de forma muy clara.

Prácticamente, el factor de recuperación muestra el ratio entre el beneficio y la reducción máxima (drawdown). El beneficio se divide por la reducción máxima. Si su valor es menos de 1, entonces, hemos ganado menos de la reducción que ha permitido el EA.

Probablemente, la ganancia de un 100% del depósito al año sea conveniente para la mayoría de nosotros. Puesto que la prueba es para un período de 4 años, el factor de recuperación más de 4 nos serviría. Bien, intentaremos mejorar nuestro sistema comercial.

No colocar las órdenes más próximas.

Como hemos dicho antes, el EA usa una cuadrícula flotante que sigue el movimiento del precio. Si el precio sube, el EA coloca una orden limitada adicional debajo del precio actual.

¿Y qué pasa si las órdenes más cercanas se tocan muy a menudo durante las correcciones y no se cierran por el Take? Intentaremos prohibir la colocación de las órdenes adicionales demasiado cerca del precio. Para eso, en el EA ha sido insertado el parámetro booleano No colocar las órdenes más próximas. Veremos qué pasará si se activa:

Segunda prueba para el instrumento EURUSD, número de dígitos 3

A primera vista, no hay muchas diferencias. Tal vez, veamos los cambios en los resultados de la prueba:

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 EURUSD
 12 987
 15 302
 1.18
 1.64
 21 350

Hemos reducido el número de transacciones casi en dos veces. Si quería ganar con los bonos del bróker que es necesario desquitar, no es una buena noticia. El beneficio también se ha disminuido. Pero al mismo tiempo, hemos reducido la reducción (drawdown) máxima casi en dos veces. Hemos conseguido un factor de recuperación más de 1.

De la misma manera, este parámetro funciona en otros instrumentos si el número de dígitos es 3 (distancia entre las órdenes de la cuadrícula en 10 puntos). Permite reducir el número de transacciones debido a que las correcciones pequeñas en el movimiento del precio no llegan a nuestra cuadrícula. Si en este momento, el precio se encuentra en la tendencia, eso está muy bien. Pero si nos encontramos en el movimiento lateral y en el futuro el precio igualmente volvería a la orden abierta antes, el uso de este parámetro lleva a la reducción de un posible beneficio.

Entrada en la dirección del movimiento de la barra

Continuamos mejorando nuestro EA. Prácticamente, todos los gurús del trading nos sugieren negociar sólo en la dirección de una tendencia local. ¿Cómo identificamos esta tendencia? Todo es muy fácil, si en la barra anterior el precio subía, hay que negociar sólo en Long, y viceversa.

Generalmente, se recomienda buscar una tendencia local en los gráficos diarios. Es decir, si durante el día de ayer el precio subió un poco, negociamos en Long. Si el preció cayó, negociamos en Short. Vamos a intentar usar este consejo también. Pero además de una tendencia diaria, también vamos a probar otros timeframes.

Para configurar el trading en la dirección del movimiento de la barra, usamos los parámetros del EA desde el grupo «En dirección de la barra»:

  • «Usar la entrada por la barra». Ponga true para activar esta posibilidad.
  • «Tipo del control de la barra». Yo probaba no entrar contra la barra, o entrar con un Take mínimo. La opción con un Take mínimo siempre era peor, por eso, por defecto, el valor de este parámetro es No entrar, y no se recomienda cambiarlo.
  • «Número de la barra». En algunos sistemas comerciales, se recomienda identificar la tendencia local no sólo por la barra anterior, sino también por la actual. Es decir, si ayer el precio iba hacia arriba y la barra de hoy es alcista, entramos sólo en Long. Comprobamos la siguiente variante. Este parámetro tiene los siguientes valores: barra 1 (comprobar sólo la barra anterior), barra 0 (comprobar sólo la barra actual), barras 0 y 1 (la barra anterior y la barra actual tienen que ir en la misma dirección). De acuerdo con las pruebas, se averiguó que los resultados con la opción barra 1 siempre son mejores. Así que tampoco se recomienda alterar el valor de este parámetro.
  • «Timeframe». Permite elegir un timeframe en el que las barras van a comprobarse.

Después de testear la entrada por la barra en diferentes timeframes se averiguó que para EURUSD era mejor usar el timeframe mensual:

Simulación de la entrada por la barra en EURUSD

Resultados del testeo en forma de la tabla:

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 EURUSD
 13 044
 19 227
 1.48
 1.8
 23 445

En principio, la entrada por la barra permite mejorar los resultados en todos los instrumentos. No obstante, la entrada por la barra en el timeframe mensual es más bien una excepción. Con mayor frecuencia, el timeframe diario realmente es el más apropiado. Puesto que colocamos simultáneamente la cuadrícula sólo en una dirección, el uso del parámetro «No colocar las órdenes más próximas» no tiene mucho sentido.

Trading en el rango. Como se pone en el título del artículo, este EA está destinado para tradear dentro de un rango. Por tanto, si el precio en el gráfico mensual o semanal se encuentra en un rango, los resultados de su negociación tienen que ser mejores. Vamos a comprobar esta hipótesis colocando un rango para el trading. Para eso, usamos los parámetros «No abrir Long con el precio menor de», «No abrir Long con el precio mayor de», «No abrir Short con el precio menor de» y «No abrir Short con el precio mayor de».

Colocamos a ojo el valor 1,17849 para los parámetros «No abrir Long con el precio mayor de» y «No abrir Short con el precio mayor de». Para otros dos, establecemos el valor 1,09314:

Trading en el rango con EURUSD

Podemos observar a simple vista que nuestros resultados han mejorado:

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 EURUSD
 2 412
 10 964
 4.55
 6.16
 6 974

Cerrar todas las posiciones en caso del aumento de la equidad (equity).

Al principio del artículos, hemos descrito el grupo de parámetro «Cierre de todas las posiciones». Entre ellos había «Aumento de equity en, $». Si razonamos lógicamente, este parámetro tiene que mejorar nuestros resultados. Es que permite cerrar todas las posiciones no rentables abiertas en este momento. Y es un decir, podemos empezar a negociar partiendo desde cero. Para eso, sólo basta con esperar a que el precio entre en el rango y la equidad de nuestra cuenta se aumente al valor especificado. Como aseguran los gurús del trading, el precio se mueve en el rango la mayor parte de su tiempo.

En la práctica, el uso de este parámetro no siempre provoca la mejora de los resultados. Por los visto, porque al usarlo, cerramos con pérdidas aquellas transacciones que podrían traer beneficios en el futuro, en caso de la vuelta del precio.

A pesar de eso, en nuestro caso, el parámetro «Aumento de equity en, $» realmente permite mejorar los resultados. El valor 2 000$ fue el mejor:

Testeo del cierre de todas las posiciones al aumentar equity en EURUSD

Resultados de las pruebas:
Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 EURUSD
 3 200
 18 532
 5.79
 3.8
 6 954

Es la última prueba en EURUSD, por eso, vamos a hacer el resumen. No obstante, hemos conseguido alcanzar la rentabilidad no de un 100% al año, sino casi de un 150%. En este caso, usábamos un lote fijo. Es decir, si aumentamos el lote con el aumento del balance de la cuenta, podemos obtener un beneficio mucho mayor.

Aún así, los resultados no impresionan. Todo lo que hemos conseguido es un 150% al año, con una reducción prácticamente de un 100%. la mayoría de los inversores exigen que la reducción no supere 20% del depósito. Según mi opinión, es una exigencia bastante extraña. Resulta que ¿80% del balance estará estancado? Si está estancado, sería mejor colocar este dineroito y negociar con el total de 20% restantes. Sin embargo, esta exigencia existe, por tanto, tendremos que reducir nuestros volúmenes del trading cinco veces para mantenernos dentro del margen de la reducción de 20%. Por consiguiente, el beneficio no alcanzara un 150%, sino será de un 30%. Estos resultados no impresionan para nada.

Pero vamos a proceder al testeo de otros instrumentos.

Resultados de las pruebas. Como ya hemos dicho, todos los informes de cada prueba intermedia se adjuntan al artículo. Además, se adjuntan los archivos SET de la prueba final tanto para EURUSD, como para otros símbolos.

Testeamos AUDUSD, el paso es de 10 puntos (número de dígitos 3)

Empezamos el testeo de AUDUSD usando también las configuraciones básicas:

  • Stop Loss no se coloca;
  • el cierre de todas las posiciones por la condición no se realiza.

La optimización se realizaba usando el Take para una orden separada, así como, el parámetro «Desplazamiento, puntos». Como resultado, el mejor era el Take de 3 y el desplazamiento de 0 punto:

Prueba base en AUDUSD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDUSD
 21 468
 -546
 -0.03
 0.99
 18 104

No colocar las órdenes más próximas. Pero incluso con los parámetros base mejores, no fuimos capaces de sacar beneficios. No obstante, vamos a desesperarnos, intentaremos habilitar el parámetro «No colocar las órdenes más próximas»:

No colocar las órdenes más próximas, AUDUSD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDUSD
 14 701
 14 415
 0.98
 1.54
 15 049

Entrada en la dirección del movimiento de la barra

La situación ya se ve algo mejor. Intentaremos testear la entrada por la barra anterior en timeframes diferentes:

En la dirección de la barra diaria, AUDUSD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDUSD
 9 186
 8 364
 0.91
 1.56
 8 573

Trading en el rango

El timeframe diario fue el mejor. Incluso en este caso, el resultado fue un poco peor. A pesar de eso, vamos a usarlo, y ahora testeamos la negociación en el rango. Ponemos a ojo los límites del rango en 0,79728 encima del precio actual y 0,70417 debajo del precio actual:

Dentro del rango, AUDUSD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDUSD
 6 769  11 937
 1.76
 2.35
 7 591

Cerrar todas las posiciones en caso del aumento de la equidad (equity).

Como era de esperar, los resultados mejoraron. El factor de recuperación se aumentó prácticamente en 2 veces. Finalmente, vamos a testear el cierre de todas las posiciones al aumentar equity:

Cerrar todas las posiciones en caso del aumento de la equidad, AUDUSD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDUSD
 4 270
 8 552
 2
 1.74
 7 593

Si cerramos las posiciones al aumentar la equidad a 1 000, podemos aumentar el factor de recuperación hasta 2. Para un resultado final, es un beneficio bastante pequeño. Pero, tal vez, AUDCAD pueda alegrarnos con algo...

Testeamos AUDCAD, el paso es de 10 puntos (número de dígitos 3)

Al principio del artículo, el gráfico de AUDCAD se mostraba como un ejemplo conveniente para el EA del movimiento del precio. En su gráfico mensual, se ve perfectamente el rango en el que se oscila el precio. Bien, ha llegado el momento para comprobar hasta que punto será rentable el trading en este instrumento.

El testeo base demostró los mejores resultados con el Take 4 y desplazamiento 0:

Testeo base de AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 8 216
 16 149
 1.97
 1.53
 17 852

Máx. de órdenes por el mismo precio.

Usando las configuraciones básicas, ya hemos conseguido el factor de recuperación cerca de 2, es decir, el mismo resultado que en las configuraciones finales para el instrumento AUDCAD.

Se puede mejorar este resultado si modificamos el parámetro «Máx. de órdenes por el mismo precio», que todavía no ha sido considerado en este artículo. Por defecto, su valor es igual a 33. Eso quiere decir que el EA tiene permitido abrir de hasta 33 posiciones por el mismo precio en la misma dirección. En la práctica, eso significa una cantidad ilimitada de posiciones por el mismo precio, porque nunca se abría incluso más de 10 posiciones por el mismo precio durante el testeo.

¿Cómo se abren las posiciones por el mismo precio? Todo es muy simple, por ejemplo, el precio se mueve hacia arriba y toca la orden más cercana. Después de eso, el precio retrocede inmediatamente tanto que el EA coloca una nueva orden limitada encima, por el mismo precio Luego, el precio vuelve a testear el nivel tocando la orden colocada. Y así sucesivamente.

En los casos anteriores, no considerábamos el parámetro «Máx. de órdenes por el mismo precio», ya que la apertura de una cantidad ilimitada de posiciones por el mismo precio permitía aumentar la rentabilidad del EA. Pero con AUDCAD todo es diferente. Tal vez, eso está relacionado con el carácter del movimiento del precio de este instrumento, pero si no permitimos la colocación de órdenes limitadas en los precios por los que las posiciones ya están abiertas, el resultado será mejor. Es decir, colocamos el valor 1 para el parámetro «Máx. de órdenes por el mismo precio»

No colocar órdenes si en el nivel ya hay posiciones, AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 5 896
 18 087
 3.07
 2.63  10 821

No colocar las órdenes más próximas.

Hemos conseguido aumentar el factor de recuperación más de en 1,5 veces. Ahora, volvemos y testeamos la activación del parámetro «No colocar las órdenes más próximas»:

No colocar las órdenes más próximas, AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 5 656
 13 692
 2.42
 2.61
 8 306

No hay nada que hacer, tenemos que reconocer que el resultado es un poco peor. No obstante, intentaremos continuar el testeo tomando en cuenta este parámetro.

Entrada en la dirección del movimiento de la barra.

El testeo de las entradas sólo en la dirección del movimiento anterior de la barra ha mostrado que el timeframe diarios se comporta mejor :

Entrada por la barra diaria, AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 3 857
 8 848
 2.29
 2.58
 5 487

No obstante, incluso en este caso, el resultado se empeora aún más.

Trading en el rango.

Continuamos el testeo, en este caso, estableciendo un rango de trabajo del EA. El precio superior del rango será de 1,02603, el inferior será de 0,93186.

Trading en el rango, AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 2 684
 9 692
 3.61
 3.33
 5 224

El rango no nos ha fallado otra vez y ha mejorado un poco los resultados.

Cerrar todas las posiciones en caso del aumento de la equidad (equity).

El último variante de la optimización del conjunto estándar:

Cerrar todas las posiciones en caso del aumento de la equidad, AUDCAD

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 2 818
 6 022
 2.14
 1.74
 5 479
Incluso teniendo el resultado mejor (cerrar con equidad de 1 000 dólares), hemos bajado al factor de recuperación cercano a los resultados de la prueba inicial.

Testeo alternativo. Vamos a intentar descartar los parámetros cuyo uso llevaba al empeoramiento del factor de recuperación y hacer la prueba sin ellos. Es decir, deshabilitamos «No colocar las órdenes más próximas», entrada en la dirección del movimiento de la barra y no vamos a cerrar todas las posiciones en caso del aumento de la equidad:

Testeo alternativo de AUDCAD

Símbolo 
 Drawdown máximo
Beneficio 
 Factor de recuperación
 Factor del beneficio  Trades
 AUDCAD
 5 124
 19 121
 3.73
 3.17
 10 301

El resultado es mejor pero no mucho. Aproximadamente, se trata de 100% del beneficio al año.

Qué hacer si excedemos el rango

Después de todas las pruebas, hemos conseguido algunos resultados. No podemos decir que son unos resultados buenos. Pero aún así, hemos ganado. No obstante, este beneficio es bastante engañador.

El principal aumento de la rentabilidad de los EAs se debe a la limitación del rango de su negociación. Pero nosotros usamos el rango desde el historial, sin estar seguros de que el precio va a permanecer en este rango. Sólo podemos esperar que pase esto. Pues bien, una vez tendremos suerte y el precio retrocederá del límite del rango. A lo mejor tendremos suerte la segunda vez. Pero la tercera vez puede que no sea así. ¿Qué hacemos en este caso?

Una de las opciones es cerrar todas las posiciones. En teoría, es una buena opción. Pero en la práctica, eso significará la pérdida de todo el beneficio o la pérdida de su gran parte. Y como a propósito, el precio obligatoriamente empezará a dar la vuelta al día siguiente.

No obstante, basándose en la pruebas, la mejor opción es agacharse y esperar a que el precio vuelva al rango. No abrir las transacciones en absoluto, o bien esperar a que el precio encuentre un nuevo rango, y después de eso, intentar tradear en él hasta la vuelta del precio.

Pueden pasar años. No obstante, el precio volverá tarde o temprano.

Si Usted no quiere esperar 5 o más años, tiene sólo una opción: ponerse a tradear manualmente e intentar obtener beneficio sobre el mercado, usando las cartas que tiene a su disposición.

Otros parámetros del EA

Antes, en este artículo, hemos considerado sólo aquellos parámetros del EA cuyo uso puede aumentar su rentabilidad. Cada uno de estos parámetros contiene alguna idea. Había mucho más ideas que fueron testeadas durante el desarrollo del EA. Lamentablemente, la mayoría de ellas simplemente empeoraban las indicaciones del EA. Por eso, el código de su implementación ha sido eliminado, o los parámetros que controlan la idea han sido marcados con un guión al principio de su nombre.

Ahora, consideraremos en breve estos parámetros, pero como han demostrado las pruebas, la modificación de sus valores no lleva a nada bueno.

Tipo de órdenes limitadas. Por defecto, el EA coloca las órdenes en Long encima del precio actual y las órdenes en Short debajo del precio actual. Estas órdenes se llaman Buy Stop y Sell Stop. Partiendo de eso, el valor predefinido de este parámetro es STOP.

Si este parámetro tiene el valor LIMIT, el EA va a usar las órdenes Buy Limit y Sell Limit. O sea, su comportamiento cambia considerablemente: por encima del precio va a colocar las órdenes Sell, y debajo del precio, las órdenes Buy.

Prácticamente, si antes el EA trabajaba por la tendencia, al cambiar este parámetro, va a trabajar contra la tendencia. Así, también podemos conseguir algunas ganancias. Pero en relación a la reducción, este beneficio va a ser mucho menor.

Aumento de lotes en la serie. Por defecto, todas las órdenes en la cuadrícula tienen el mismo volumen. Pero este parámetro permite hacer que el volumen de cada orden nueva en la cuadrícula sea más grande que el anterior. Se puede hacer el aumento en progresión aritmética o geométrica.

Basándose en las pruebas, eso puede aumentar el beneficio obtenido, pero gracias a la reducción máxima. Así, el factor de recuperación siempre será más bajo que en caso del lote fijo.

Uso del Trailing Stop. Un gran grupo de parámetros permite habilitar el Trailing Stop para cada orden separada. Lamentablemente, las pruebas han demostrado que es mejor no hacerlo.

Fin del artículo

En este artículo hemos analizado otra versión de la cuadrícula. Es mejor que la versión considerada en el artículo anterior. Pero aún así, hemos obtenido una estrategia comercial muy arriesgada, que tarde o temprano llevará a la pérdida del depósito.

¿Entonces que ocurre? ¿es imposible crear un EA funcional en la cuadrícula, que podría tradear con riesgos mínimos de la pérdida del depósito? No tengamos prisa por hacer estas conclusiones, ya que disponemos de otra manera de organizar un EA gradador.

En el siguiente artículo, estudiaremos la última versión del EA gradador. Como siempre, será un EA multiplataforma. Es capaz de mostrar los siguientes resultados en el período de 2010 a 2019 usando lote fijo:

Símbolo
 Drawdown máximo
Beneficio
 Factor de recuperación
 Trades
 USDCAD
 953
 7 328
 7.69
 3 388
 NZDUSD  1 404
 11 288
 8.04  2 795
 SBUX (c 2013 по 2019 год)
 140  1 890
 13.5  442

Traducción del ruso hecha por MetaQuotes Software Corp.
Artículo original: https://www.mql5.com/ru/articles/6954

Archivos adjuntos |
trendmeEA.ex5 (157.19 KB)
trendmeEA.mq5 (140.84 KB)
trendmeEA.ex4 (66.98 KB)
trendmeEA.mq4 (140.84 KB)
SET_files.zip (25.38 KB)
liojel
liojel | 14 ago. 2019 en 19:00
Excelente articulo. Espero que la próxima parte este lista pronto.
Métodos para medir la velocidad del movimiento del precio Métodos para medir la velocidad del movimiento del precio

Existen diferentes enfoques para estudiar y analizar los mercados, pero los principales son dos: técnico y fundamental. En el primer caso, se realiza la recopilación, el procesamiento y el estudio de algunos datos numéricos y de las características relacionadas con el mercado: precio, volúmenes, etc. En el segundo, se realiza el análisis de los eventos y noticias, que, a su vez, influyen directa o indirectamente en los mercados. En el presente artículo, se consideran los métodos para medir la velocidad del movimiento del precio y el estudio de estrategias comerciales basadas en ellos.

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VII): Eventos de activación de órdenes StopLimit, preparación de la funcionalidad para los eventos de modificación de órdenes y posiciones Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VII): Eventos de activación de órdenes StopLimit, preparación de la funcionalidad para los eventos de modificación de órdenes y posiciones

En anteriores artículos comenzamos a crear una gran biblioteca multiplataforma cuyo objetivo es simplificar la creación de programas para las plataformas MetaTrader 5 y MetaTrader 4. En la sexta parte, enseñamos a la biblioteca a trabajar con posiciones en las cuentas de compensación. En esta parte, implementaremos el seguimiento de los eventos de activación de órdenes StopLimit y prepararemos la funcionalidad necesaria para monitorear la modificación de órdenes y posiciones.

Comprendemos la "memoria" del mercado usando la diferenciación y el análisis entrópico Comprendemos la "memoria" del mercado usando la diferenciación y el análisis entrópico

El área de la aplicación de la diferenciación fraccionada es bastante amplia. Por ejemplo, los algoritmos del aprendizaje automático normalmente reciben una serie diferencial en la entrada. El problema es que es necesario mostrar los datos nuevos de acuerdo con la historia existente para que el modelo del aprendizaje automático pueda reconocerlos. En este artículo, se considera un enfoque original en la diferenciación de una serie temporal, además, se muestra el ejemplo de un sistema comercial auto-optimizable a base de una serie diferencial obtenida.

Estudio de técnicas de análisis de velas (Parte IV): Actualizaciones y adiciones a la aplicación Estudio de técnicas de análisis de velas (Parte IV): Actualizaciones y adiciones a la aplicación

En el presente artículo, vamos a presentar la siguiente versión de la aplicación Pattern Analyzer. En esta versión se han corregido algunas imperfecciones y se han añadido nuevas capacidades; además, se ha dado un nuevo enfoque a la comodidad y la actualidad de la interfaz actual. En este caso, además, se han tenido en cuenta las sugerencias reflejadas en los comentarios de los artículos anteriores. Podrá familiarizarse con el resultado leyendo el presente artículo.