Errores, fallos, preguntas - página 2747
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
Buenas tardes, el registro de MT5 muestra este mensaje: 2020.05.21 05:49:44.364 Virtual Hosting failed to get list of virtual hosts (www.mql5.com:443 send request failed [12002])
¿Pueden ustedes decirme qué significa y qué hacer al respecto?
Gracias.
Mi depurador se niega a funcionar en uno de mis proyectos. Además, su comportamiento es difícil de predecir. A veces simplemente se niega a entrar en los puntos de interrupción. También se niega a entrar en algunas funciones. Al principio pensé que el motivo eran las actualizaciones (tal vez algo salió mal en la depuración). Pero en otros programas más sencillos todo parece funcionar. Sin embargo, no lo he revisado mucho porque estoy trabajando en mi proyecto principal. Es bastante complejo e incluye 15 módulos sólo de mi propio diseño (no he contado el número de módulos estándar). El módulo principal contiene hasta 2000 líneas. Pensé que tal vez se trate de la complejidad del proyecto... Además, en algunos lugares utilizo macros para fragmentos de código repetitivos. También utilizo elementos de interfaz de usuario estándar, como CAppDialog, CCheckGroup, CComboBox, CButton, etc. que reescribí para la funcionalidad de mi programa. Quizá la depuración no funcione por culpa de ellos... Por ejemplo, el método CCheckGroup::itemCheckState(const string item) que escribí específicamente no depura. El método encuentra el elemento de la casilla de verificación y comprueba si está seleccionado (su Estado):
Este es el tipo de UI con el que terminé:
Algunos de los elementos de la interfaz de usuario están clasificados temporalmente. Y aquí hay una rama donde describo cómo he anulado los métodos Show() y Hide() del elemento CAppDialog:https://www.mql5.com/ru/forum/338301 El compilador se quejó en ese momento y se produjo un error crítico.
Al final el proyecto compila normalmente, el compilador no genera ningún error. Pero la depuración falla y simplemente no muestra la ejecución de algunos fragmentos de código, funciones, métodos y demás.
Según tengo entendido, puede haber varias razones para ello.
Información sobre la construcción y el sistema:
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
En el método CCheckGroup::itemCheckState (en el que el depurador no puede entrar) pongo algo así:
Y recibí el siguiente mensaje:
2020.05.21 13:20:44.229 CCheckGroup::itemCheckState item: 39 state: 32
https://www.mql5.com/ru/forum/1111/page2746#comment_16481481
Si el depurador no funciona correctamente, el proyecto puede retrasarse durante mucho tiempo. Me gustaría que los desarrolladores prestaran atención a este error, probablemente relacionado con el depurador.
Es mucho texto, no lo he leído todo.
Pero si algo funciona en la versión de depuración y no funciona en la versión de lanzamiento, o viceversa, compruebe si todas las variables y campos, especialmente en la clase/estructura, fueron inicializados.
#define GETCURRENTTICK GetCurrentTick1(Tick)
#define GETCURRENTTICK GetCurrentTick2(Tick, !i)
#define GETCURRENTTICK GetCurrentTick3(Tick)
Sobre el tema de que las funciones de SymbolInfo sean gratuitas.
tal vez el método sea inline, entonces no es problema del depurador, sino del compilador para el modo de depuración
Exactamente, el proyecto resultó estar desbordado de macros, tanto mías como de módulos estándar. Quizá por eso el depurador no siempre consigue hacer coincidir los comandos del archivo de depuración *.ex5 con las líneas del archivo fuente *.mq5 y otros módulos...
Las funciones de SymbolInfo son gratuitas.
por lo que es el coste de la función en sí, no el coste de pasar la cadena por valor, ¡no por referencia!
Tu versión con la caché es toda una solución, si es que la ejecución de esta función toma un porcentaje significativo del tiempo de ejecución del EA (cosa que realmente no creo)
Exactamente, el proyecto resultó estar desbordado de macros, tanto mías como de módulos estándar. Quizá por eso el depurador no siempre consigue hacer coincidir los comandos del archivo de depuración *.ex5 con las líneas del archivo fuente *.mq5 y otros módulos...
es el coste de la función en sí, no el coste de pasar la cadena por valor, ¡no por referencia!
Eso es lo que me llevó inicialmente.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Errores, fallos, preguntas
fxsaber, 2020.05.20 13:24
Es mejor tener
En el optimizador estas funciones son llamadas decenas de miles de millones de veces.
Por otra parte, tu variante con la caché es toda una solución, si la ejecución de esta función ocupa un porcentaje importante del tiempo de ejecución de un EA (cosa que realmente no creo)
En una determinada etapa, no sólo la parte relativa del tiempo empleado se vuelve importante, sino también la parte absoluta.