Discusión sobre el artículo "Creando un EA gradador multiplataforma (última parte): la diversificación como método para aumentar la rentabilidad"

 

Artículo publicado Creando un EA gradador multiplataforma (última parte): la diversificación como método para aumentar la rentabilidad:

En los anteriores artículos de la serie, hemos intentado crear de formas distintas un asesor gradador más o menos rentable. En esta ocasión, vamos a tratar de aumentar la rentabilidad del asesor comercial con la ayuda de la diversificación. Nuestro objetivo es el 100% de beneficio anual anhelado por todos, con un 20% de reducción máxima del balance.

Sin intervenir en el propio sistema comercial en el que se basa el asesor, seguramente tenemos otros dos métodos que, teóricamente, pueden aumentar la rentabilidad de nuestro trading.

El primero es la reducción del periodo temporal en el que se realiza la optimización de los parámetros del asesor. Gracias a ello, podremos configurar el asesor con la mayor precisión posible según el ciclo actual en el mercado, sacando también el máximo provecho a su funcionamiento.

Sin embargo, este método tiene una desventaja significativa. Como se suele decir, los beneficios del pasado no garantizan la rentabilidad en el futuro. Y cuanto menor sea el intervalo temporal en el que se realiza la simulación, mayor será el riesgo de que el mercado cambie a una dirección perjudicial para el tráder, y de que el asesor comience a perder el depósito.

El segundo método supone el comercio con varios instrumentos a la vez (diversificación). En este caso, además, el tamaño del lote de cada instrumento disminuye en comparación con el comercio con un solo instrumento. Gracias a ello, incluso si sufrimos una reducción o un stop loss de uno de los instrumentos, la reducción máxima del balance será menor que al comerciar con un solo instrumento. Además, el beneficio de otros instrumentos nos permitirá recuperar el depósito con mayor rapidez.

Autor: Roman Klymenko

Roman Klymenko
Roman Klymenko
  • www.mql5.com
Ha publicado el artículo Creando un EA gradador multiplataforma (Parte III): cuadrícula de correcciones con martingale En este artículo, intentaremos crear el mejor asesor posible de aquellos que funcionan según el principio del gradador. Como siempre, se tratará de un asesor multiplataforma, capaz de funcionar tanto en MetaTrader 4, como en...
 

El problema de las cuadrículas es que el optimizador selecciona los ajustes para llegar a un gráfico desfavorable con un lote mínimo. Esto no ocurre así en la vida. Al principio, las posiciones se acumulan en el mercado medio, a continuación, una parcela muy desagradable viene por un corto tiempo y hola a la llamada de margen.

Se ha demostrado muchas veces que sin un sistema de comercio rentable, las redes y los martins no mejorarán el rendimiento comercial.

 
Intentado ejecutar en EURUSD. No he hecho un solo comercio en el probador de 2 años de historia en M15. No hay errores y advertencias en el registro. Hay un montón de ajustes. Es difícil de entender desde la primera vez que son responsables de lo que y por qué nada funciona.
 
El Asesor Experto no se inicia, sonríe pero no abre operaciones. Me puede decir cómo iniciarlo, o una descripción de los ajustes, conjuntos?
 
Optimizar un año con un número de acuerdos en torno a 50 y pico es un ajuste a la historia.
[Eliminado]  
itanprom:
El Asesor Experto no se inicia, sonríe pero no abre operaciones. ¿Me puede decir cómo iniciarlo, o una descripción de los ajustes, conjuntos?

Necesita introducir un par para sonreír y abrir posiciones.

Instantánea

y hay 11 pares en los ajustes.

 

¿Puede alguien proporcionar un conjunto de ajustes? Estoy ejecutando este EA y ni siquiera está abriendo operaciones normales.... Realmente me gustaría probar esto.


Gracias.

 
Liu Jeff:

¿Alguien puede proporcionar un conjunto de ajustes? Estoy ejecutando este EA y ni siquiera está abriendo operaciones normales.... Realmente quiero probar esto.


Gracias.

No me siento como si pudiera establecer los parámetros, siempre dice temporizador no establecido, ¿alguien puede ayudar?

 

Gracias por sus artículos, he estudiado a fondo su código y he tomado prestadas algunas ideas para mi robot. Me gustaría desearle que trate su código con más cuidado, al menos que piense en nombres claros y lógicos para las variables, de modo que uno pueda entender inmediatamente por qué se necesita una variable. Especialmente si pones tu código a la vista del público. Y deberías comentar más el código.

Escribieron sobre el pequeño número de operaciones y el ajuste a la historia - He optimizado su robot en el marco de tiempo M1, que dio de 4 mil operaciones durante 3 años, las mejores instancias dieron resultados bastante estables.

Es absolutamente inconveniente para trabajar con la cantidad absoluta de dinero como los objetivos del Asesor Experto, sería mil veces mejor si se opta por establecer el número de pips como objetivos, y además de un lote estático, como una opción - un porcentaje del lote máximo permitido. De lo contrario, incluso sólo pasar de un presupuesto en el probador a otro es un gran problema, hay que reiniciar la optimización.

Por cierto, en algún lugar se escribió sobre el aumento gradual del lote - no he encontrado nada al respecto en el código, probablemente no la última versión.

También estaba muy confundido por la estrategia de entrar por MA, que por lo general considera el aumento o la disminución del valor de MA. En el código se ve así:

if (buf0[0] > buf0[6]) {
   //--- MA crece
} else if (buf0[0] < buf0[6]) {
   //--- MA cae
}

¿Por qué se compara el valor de la séptima barra con la barra actual? ¿Dónde está la lógica? ¿Y si es un plano y entre la primera y la séptima barra la MA subía y bajaba? Parece que no te ha importado mucho este punto, quizás querías acabar rápido el artículo. En mi opinión, es necesario considerar un crecimiento estable durante varias barras seguidas para confirmarlo. He escrito un código para capturar reversiones confirmadas o crecimiento/descenso estable de los valores del array durante varias barras y lo comparto contigo:

//+------------------------------------------------------------------+
//| Captura de la inversión del indicador|
//+------------------------------------------------------------------+
bool getReverse(double & object [], string direction, int repeatsIn, int repeatsOut) {
   bool reverseCorrect = true;
   
   if (direction == "up") {
      if (repeatsOut > 0) {
         for(int i = 0; i <= (repeatsOut - 1); i++) {
            if (!(object[i] > object[i+1])) reverseCorrect = false;
         }
      }
      
      if (repeatsIn > 0) {
         for(int i = repeatsIn; i <= (repeatsIn + repeatsOut - 1); i++) {
            if (!(object[i] < object[i+1])) reverseCorrect = false;
         }
      }   
   } else {
      if (repeatsOut > 0) {
         for(int i = 0; i <= (repeatsOut - 1); i++) {
            if (!(object[i] < object[i+1])) reverseCorrect = false;
         }
      }
      
      if (repeatsIn > 0) {
         for(int i = repeatsIn; i <= (repeatsIn + repeatsOut - 1); i++) {
            if (!(object[i] > object[i+1])) reverseCorrect = false;
         }
      }
   }
      
   return reverseCorrect;
}

Úsalo así:

getReverse(MA1Val, "up", 0, 7);

En este ejemplo, la función devolverá true si el valor MA1 ha estado subiendo durante 7 barras consecutivas. Si sustituyes 0 por, por ejemplo, 3, buscará un patrón en el que MA primero cayó 3 barras seguidas y luego subió durante 7 barras seguidas.

No haré comentarios sobre otros indicadores, también hay algo en lo que pensar. Incluso cuando se utilizan indicadores estándar se puede añadir más lógica.

Buena suerte.

 
No hay ningún procedimiento de facturación en el código, sólo un procedimiento de nivelación, un montón de parámetros y procedimientos repetitivos, errores de apreciación y creación de objetos inútiles, ¡es el código más basura que he visto nunca!
 

gsc:
代码里没有开单程序,只有平单程序,大量重复的参数和程序,毫无用处的错误判断和创建物件,这是我见过的最垃圾的


¿Puede ayudar a escribir un ea gracias