A la consideración de los profesionales. - página 3

 
khorosh:
¿El objetivo de tu post es mostrar cómo contar correctamente la detracción? Gracias por el EA. Sólo me parece que tu código, si se incluye en un EA real, determinará el drawdown para una o varias operaciones abiertas desde el momento de la apertura hasta el cierre de las mismas, pero no busca el drawdown máximo de todo el tiempo que el EA esté funcionando. ¿O me he equivocado? ¿Puede criticar mi código? ¿Realiza correctamente su tarea de encontrar la reducción máxima?


Este (mi) código guarda exactamente el drawdown máximo durante todo el tiempo de trabajo del Asesor Experto, es decir, no restablece las variables max y min al cerrar una(s) operación(es), cuando la equidad es igual al balance y no hay min para todo el tiempo.

Lo escribí puramente como un ejemplo y para mantenerlo simple - como una comparación con un probador.

Sobre su código no está claro por qué utilizarlo aquí:

  if(AccountEquity()>MaxEquity) 
    {MaxEquity=AccountEquity();MinEquity=AccountEquity();}

Se restablece la minicapitalidad.

MinEquity=AccountEquity();

Si en una situación en la que AccountEquity() > MaxEquity no hay posibilidad de cerrar o abrir una orden (u órdenes) por diversas razones, y mucho menos de restablecer MinEquity=AccountEquity();

En general, se puede programar la misma cosa de diferentes maneras, lo principal es el algoritmo correcto.

Si quieres insertar la variable en un EA real, es mejor escribir las variables en archivos (con verificación).

En mi opinión, la reducción máxima y la reducción relativa no se tienen en cuenta en el probador; antes he dado un enlace de ejemplo.

 
serferrer:


Este (mi) código guarda exactamente el drawdown máximo durante todo el tiempo del EA, es decir, no restablece las variables max y min al cerrar una(s) operación(es), cuando la equidad es igual al balance y no hay min para todo el tiempo.

Lo escribí puramente como un ejemplo y para mantenerlo simple - como una comparación con un probador.

Sobre su código no está claro por qué utilizarlo aquí:

Se restablece la minicapitalidad.

Si en una situación en la que AccountEquity() > MaxEquity no hay posibilidad de cerrar o abrir una orden (u órdenes) por diversas razones, y mucho menos de restablecer MinEquity=AccountEquity();

En general, se puede programar la misma cosa de diferentes maneras, lo principal es el algoritmo correcto.

Si quieres insertar la variable en un EA real, es mejor escribir las variables en archivos (con verificación).

En mi opinión, el probador tiene en cuenta erróneamente la reducción máxima y la reducción relativa, el enlace con el ejemplo que he dado antes.

MinEquity se reinicia en el momento en que se actualiza un nuevo máximo, lo que significa que se pasa el mínimo anterior y después de que se forme el nuevo máximo es necesario encontrar un nuevo mínimo que pueda dar la reducción mayor que la reducción encontrada anteriormente en relación con el nuevo máximo. Tenga en cuenta que debemos calcular la reducción relativa al último máximo por el mínimo formado después de este máximo y seleccionar el máximo entre ellos. Véase la confirmación en los posts de Integer, que también piensa que esto es correcto. Creo que esta es la razón por la que tienes una discrepancia con el probador.

 
Serferrer, su variante mostrará una reducción incorrecta, en caso de una sucesión de órdenes perdedoras. Puedes tener 10 órdenes perdedoras seguidas con una pérdida de 100 cada una, y entonces perderás 1000 y el drawdown máximo será sólo de 100, lo cual es incorrecto.
 
Integer:
Serferrer, su variante mostrará una reducción incorrecta en caso de una serie de órdenes perdedoras. Puedes tener 10 órdenes perdedoras seguidas con una pérdida de 100 cada una y drenar 1000, mientras que el drawdown máximo será sólo de 100, lo cual es incorrecto.


Repito - lo escribí puramente como un ejemplo y más simple (para la claridad) - como una comparación con el probador.

Y no es en absoluto definitivo.

Si haces el código final, tienes que añadirle muchas otras características.

 
serferrer:


Repito - lo escribí puramente como un ejemplo y para la simplicidad - como una comparación con el probador.

Y no es en absoluto definitivo.

Si haces el código final, tienes que añadirle muchas otras características.


Para un ejemplo de qué y comparación con qué en el probador? Su código no calcula la reducción de la cuenta y no puede utilizarse como ejemplo para calcular la reducción de la cuenta y, por lo tanto, no puede utilizarse para comparar los cálculos de reducción de la cuenta en el probador.
 
khorosh:

MinEquity se reinicia en el momento en que se actualiza un nuevo máximo, lo que significa que se pasa el mínimo anterior y después de que se forme el nuevo máximo es necesario encontrar un nuevo mínimo que pueda dar la reducción mayor que la reducción encontrada anteriormente en relación con el nuevo máximo . Tenga en cuenta que debemos calcular la reducción relativa al último máximo por el mínimo formado después de este máximo y seleccionar el máximo entre ellos. Véase la confirmación en los posts de Integer, que también piensa que esto es correcto. Creo que esta es la razón por la que tienes una discrepancia con el probador.


Esta es tu opinión, la entiendo y yo mismo pienso que no es correcta y que el drawdown debería calcularse en base al precio de la(s) orden(es) abierta(s ) y no al máximo de la renta variable, repito:

Si, por ejemplo, en una situación en la que AccountEquity()>MaxEquity no hay posibilidad de cerrar o abrir una(s) orden(es), por diversas razones.

 
Integer:

¿Para un ejemplo de qué y una comparación con qué en el probador? Su código no calcula la reducción de la cuenta, por lo que no puede utilizarse como ejemplo para calcular la reducción de la cuenta y, por lo tanto, no puede utilizarse para comparar los cálculos de reducción de la cuenta en el probador.


A modo de comparación y de ejemplo claro, para que quede claro incluso para los no programadores que el probador no calcula correctamente la detracción.

Reducción absoluta: reducción del saldo inicial que muestra cuánto ha disminuido el saldo en relación con el valor inicial;
Reducción máxima: la reducción que muestra la reducción máxima fijada en términos monetarios (la diferencia entre el último máximo y el mínimo actual); puede superar la Reducción absoluta, mostrando la cantidad de pérdida posible incluso si la operación es positiva;
Reducción relativa - reducción relativa, muestra el porcentaje máximo de reducción en relación con el depósito inicial;

http://www.onix-trade.net/forum/index.php?showtopic=82146&st=0&p=342915&#entry342915

Entero:

¿Está de acuerdo en que en mi ejemplo - Reducción máxima 1013,00 (50,85%) Reducción relativa 50,85% (1013,00) y esto es correcto?

 
serferrer:


A modo de comparación y ejemplo ilustrativo, incluso los no programadores entienden que el probador no calcula correctamente.

Reducción absoluta: reducción del saldo inicial, que muestra cuánto ha disminuido el saldo en relación con el valor inicial;
Reducción máxima: la reducción que muestra la reducción máxima fijada en términos monetarios (la diferencia entre el último máximo y el mínimo actual); puede superar la Reducción absoluta, mostrando la cantidad de pérdida posible incluso si la operación es positiva;
Reducción relativa - reducción relativa, muestra el porcentaje máximo de reducción en relación con el depósito inicial;

http://www.onix-trade.net/forum/index.php?showtopic=82146&st=0&p=342915&#entry342915

Entero:

¿Está de acuerdo en que en mi ejemplo - Reducción máxima 1013,00 (50,85%) Reducción relativa 50,85% (1013,00) y esto es correcto?


No, no estoy de acuerdo contigo en nada ni en nada.
 
khorosh:

Explique dónde ha encontrado ese parámetro de reducción mínima, en qué informe. Creo que la caída máxima de la equidad encontrada durante la ejecución de la prueba puede repetirse en el comercio real, por lo que creo que es correcto contarla a partir del máximo.

Perdón por la reducción mínima - mi error. Corregido el post. ¿Por qué no tiene sentido calcular la reducción máxima de capital en una orden abierta en vuelo libre?
 
Reshetov:

Si no lo necesitas o no entiendes para qué sirve, ¿por qué unirte a la conversación e incluso imponer tu opinión?
Lee con atención. He preguntado por qué lo necesitan los demás, no yo. No estoy imponiendo mi opinión, sólo he explicado la lógica.
Razón de la queja: