Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Está claro que la puesta a cero se hizo por compatibilidad, pero no está claro por qué cuando se inicializa correctamente el enum = WRONG_VALUE no funciona correctamente. Este enfoque carece de portabilidad y aumenta significativamente la probabilidad de errores ocultos.
¿Recuerdas esta regla?
Regla: Si a una constante con nombre - miembro de una enumeración no se le asigna explícitamente un valor específico, su valor se generará automáticamente. Si es el primer miembro de la enumeración, se asignará el valor 0. Para todos los miembros posteriores, los valores se calcularán en base al valor del miembro anterior sumando uno.
Lo más probable es que la comprobación de la corrección de los campos de consulta asuma que el valor de un miembro de la enumeración no puede ser negativo. No se tiene en cuenta la posibilidad de asignar WRONG_VALUE a un miembro de la enumeración.
Sin embargo, no se tiene en cuenta la posibilidad de asignar WRONG_VALUE a un miembro de la enumeración.
Creo que este es exactamente el error aquí. Si no se utiliza un enum concreto, es lógico que su valor sea WRONG_VALUE en lugar de, por ejemplo, ORDER_TYPE_BUY que en realidad es = 0.
y lo más importante - nada le impide cambiar la lógica de OrderCheck() y OrderSend() manteniendo la compatibilidad
y lo más importante, nada le impide cambiar la lógica de OrderCheck() y OrderSend() manteniendo la compatibilidad
He descubierto un extraño "bug".
Estoy usando este código en mi EA:
Una sola ejecución en el probador pasa sin problemas, pero en cuanto elijo parámetros con búsqueda completa, el probador empieza a funcionar diez o diez veces más lento. No entiendo por qué la velocidad es adecuada durante una ejecución y cae notablemente durante la optimización. Además, desciende geométricamente. Puedes ver por el porcentaje que todo está bien al principio, pero hacia el final la velocidad sigue bajando cada vez más. Busqué problemas en mi código y busqué bucles o algo así, pero no los encontré. Después de eso, reemplacé el código mencionado anteriormente con mi propio algoritmo y ¡oh, Dios mío! La optimización se ejecuta ahora a una velocidad normal y uniforme. Esto me lleva a la conclusión de que el problema está dentro de MQL5, en algún lugar del cuerpo de la función OnTradeTransaction. Pediré a los desarrolladores que presten atención a esto.
p.d. No puedo publicar el código del Asesor Experto. Intente utilizar el código anterior en cualquiera de sus EAs y observe la velocidad de optimización en OHLC M5 para el período comprendido entre el año 2000 y hoy.
He descubierto un extraño "bug".
Estoy usando este código en mi EA:
Una sola ejecución en el probador pasa sin problemas, pero en cuanto elijo parámetros con búsqueda completa, el probador empieza a funcionar diez o diez veces más lento. No entiendo por qué la velocidad es adecuada durante una ejecución y cae notablemente durante la optimización. Además, desciende geométricamente. Puedes ver por el porcentaje que todo va bien al principio, pero la velocidad disminuye a medida que la carrera termina. Busqué problemas en mi código y busqué bucles o algo así, pero no los encontré. Después de eso, reemplacé el código mencionado anteriormente con mi propio algoritmo y ¡oh, Dios mío! La optimización se ejecuta ahora a una velocidad normal y uniforme. Esto me lleva a la conclusión de que el problema está dentro de MQL5, en algún lugar del cuerpo de la función OnTradeTransaction. Pediré a los desarrolladores que presten atención a esto.
p.d. No puedo publicar el código del Asesor Experto. Intente utilizar el código anterior en cualquiera de sus EAs y observe la velocidad de optimización en OHLC M5 para el período comprendido entre el año 2000 y hoy.
Para diferentes parámetros, el EA puede funcionar durante diferentes períodos de tiempo
Después de sustituir el código anterior por su algoritmo
Es decir, ¿han renunciado a utilizar OnTradeTransaction() ? - entonces es lógico que la velocidad haya aumentado - se llama en cada ocasión
¿Qué le impide hacer un caso de prueba mínimo e informar al servicio de atención al cliente?