Discusión sobre el artículo "Control de la pendiente de la curva de balance durante el funcionamiento de un Expert Advisor" - página 4

 

solandr:

Realicé el siguiente experimento. Configuré el contador para activar un lote reducido para cada par de divisas. Y probé todas las combinaciones de pruebas en M1 OHLC. Aquí está el resultado.

35 0 0 - prueba sólo en el primer par

0 36 0 - prueba sólo en el segundo par

0 0 0 168 - prueba sólo en el tercer par.

36 35 0 0 - prueba en el primer y segundo par

0 35 162 - pruebas en el segundo y tercer par

35 35 166 - prueba en los tres pares

Aunque debería ser 35 36 168 cuando se prueban los tres pares.

Mañana intentaré ejecutar el EA en todos los ticks para comparar.

Si he entendido bien, ¿el número de operaciones es diferente? Entonces, ¿cómo puede afectar el tamaño del lote?

 
Dima_S:

Si he entendido bien, - ¿el número de transacciones difiere? Entonces, ¿cómo puede afectar el tamaño del lote?

No, el número total de operaciones en 3 pares de divisas al mismo tiempo corresponde a la suma de operaciones en ejecuciones separadas.

Los resultados muestran el número de órdenes abiertas con un lote reducido.

Todavía estoy ejecutando el Asesor Experto. Estoy tratando de entender lo que cambia los resultados de la ejecución total. Voy a escribir un mensaje más tarde.

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 
solandr:

No, el número total de operaciones en 3 pares de divisas al mismo tiempo corresponde a la suma de operaciones en series separadas.

Los resultados muestran el número de órdenes abiertas con un lote reducido.

Todavía estoy ejecutando el Asesor Experto. Estoy tratando de entender lo que cambia los resultados en la ejecución total. Voy a escribir un mensaje más tarde.

Probablemente, debido a algunas condiciones cambiantes, el beneficio / pérdida de las operaciones cambia ligeramente de ejecución a ejecución - como resultado, en algunos puntos de la curva de balance el cambio de lote puede (o no) ocurrir.

Es algo así

 
Dima_S:

Es posible que, debido a algunas condiciones cambiantes, los beneficios/pérdidas de las operaciones varíen ligeramente de una ejecución a otra, por lo que en algunos puntos de la curva de balance puede producirse (o no) un cambio de lote.

Algo así.

En principio, la idea es buena. En MT4 incluso utilizo un programa especial Spread Changer, que permite fijar el spread para las pruebas de forma arbitraria. y los resultados no flotan.

Todavía no he encontrado un programa así para MT5 (quizás no lo he buscado bien). Sería genial si en futuras versiones de la terminal los desarrolladores construyeran una función de este tipo en el probador para aquellos que lo deseen.

 
solandr:

En principio, la idea es buena. Bajo MT4 incluso utilizo un programa especial Spread Changer, que le permite establecer el diferencial para la prueba de forma arbitraria. y los resultados no flotan.

Todavía no he encontrado un programa así para MT5 (quizás no lo he buscado bien). Sería estupendo que en futuras versiones de la terminal los desarrolladores incorporasen una función de este tipo en el probador para aquellos que lo deseen.

Idealmente, una simple importación de csv-archivo de cotizaciones para la prueba sería útil. Pero, el ideal no es alcanzable todavía)))
 

Ejecuté el EA en todos los ticks. Obtuve los siguientes resultados:

Con la gestión de saldo desactivada beneficio en las ejecuciones:

0 0 0 0 6702,44 primer par

0 0 0 0 5735,78 segundo par

0 0 0 0 3461,48 tercer par

0 0 0 0 15901,66 los tres pares - Deberían haber sido 15899,7. La diferencia es de 1,96.

Con la gestión de lotes activada el beneficio en las ejecuciones:

35 0 0 = 6550,94

0 36 0 = 6956,95

0 0 184 = 3386.44

35 36 179 = 15991,56 - Deberían haber sido 16894,33. La diferencia es de 902,77

Como puede ver, con el autobalanceo desactivado también hay una diferencia, pero suele ser microscópica. Cuando el control de lotes está activado, la diferencia es bastante notable, del 5,3% (debido al diferente número de disparos del lote reducido). ¿Cómo optimizar los parámetros en este caso? ¿Qué salida se puede inventar?

Cada ejecución de todos los ticks tarda unos 20-30 minutos.

Voy a establecer un experimento. Tome algún Asesor Experto simple, añádale un sistema de control de lote y vea la diferencia en las ejecuciones.

 

Por cierto, al compilar el archivo mqh del artículo, me aparecen estos mensajes:

possibleloss of data due to type conversion BalanceSlopeControl.mqh 117 25
possible loss of data due to type conversion BalanceSlopeControl.mqh 118 21
la declaración de 'current_slope' oculta la declaración de miembro en la línea 682 BalanceSlopeControl.mqh 909 9
0 error(es), 3 warning(s) 1 4

Los he corregido al principio. Los dos primeros - especifiqué el tipo de conversión. Y corregí el tercer mensaje corrigiendo el nombre de ccurrent_slope en la línea 909 y la corrección correspondiente más adelante en double TBalanceSlopeControl::CalcTradeLots( double _min_lots, double _max_lots ).

¿Quizás es aquí donde está enterrado el perro? En cualquier caso, sería posible publicar el archivo corregido por el propio autor, ya que mis cambios pueden ser ideológicamente erróneos.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
solandr:

Ejecuté el EA en todos los ticks. Obtuve los siguientes resultados:

...

Como puede ver, cuando el balance automático está desactivado, también hay una diferencia, pero suele ser microscópica.

Consiga resultados idénticos en todos los modos cuando realice pruebas en cualquier símbolo.

Para ello, trabaje por ticks de todos los símbolos, o por temporizador. y controle la aparición de una nueva barra en todos los instrumentos.

El balance no debe divergir ni un céntimo.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
solandr:

Por cierto, al compilar el archivo mqh del artículo, me salen estos mensajes:

possibleloss of data due to type conversion BalanceSlopeControl.mqh 117 25
possible loss of data due to type conversion BalanceSlopeControl.mqh 118 21
la declaración de 'current_slope' oculta la declaración de miembro en la línea 682 BalanceSlopeControl.mqh 909 9
0 error(es), 3 warning(s) 1 4

Los he corregido al principio. Los dos primeros - especifiqué el tipo de conversión. Y corregí el tercer mensaje corrigiendo el nombre de ccurrent_slope en la línea 909 y la corrección correspondiente en double TBalanceSlopeControl::CalcTradeLots( double _min_lots, double _max_lots ).

¿Quizás es aquí donde está enterrado el perro? En cualquier caso, sería posible publicar el archivo corregido por el propio autor, ya que mis cambios pueden ser ideológicamente erróneos.

No es probable que aquí. Recuerdo algo reglas, pero lo que - no me acuerdo))) Aquí está mi archivo actual.

Archivos adjuntos:
 
Dima_S:

No creo que aquí. Recuerdo algo reglas, pero lo que - no me acuerdo))) Aquí está mi archivo actual.

¡Gracias por la nueva versión del archivo!

Comparando el contenido del archivo con el archivo del artículo muestra algunas diferencias en el nuevo archivo en las líneas 37, 115, 116, 907, 966.

Veamos cuánto pueden afectar estos cambios al Asesor Experto