Características del lenguaje mql5, sutilezas y técnicas - página 122
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
Resultado
La tercera opción (interruptor) es constantemente más lenta que la segunda (punteros de función). ¿Cuál es la razón de esto?
ZS Despacio. El tercer interruptor es más rápido que el segundo. Todo está bien.
Por lo tanto, si tienes un array inmutable de punteros a funciones, será más rápido si lo sustituyes por switch.
Así, si tenemos un array inmutable de punteros a funciones, es más rápido si lo sustituimos por switch.
Bueno, en este caso es lógico, porque el array se ha rellenado dinámicamente, lo que implica comprobaciones constantes de la validez del puntero. Aunque se podría optimizar, claro...
Pero si MQL soportara la inicialización de arrays mediante punteros constantes, probablemente sería lo mismo.
p.d. Tu código no es legible en absoluto. Por supuesto, comprendo que todos estos entresijos con las macros te resulten cómodos, ya que las has escrito tú mismo, así que sabes lo que hacen. Pero para un lector externo, es sólo un rompecabezas. Creo que es poco probable que usted mismo entienda lo que ha hecho aquí en seis meses ) Al menos haga un comentario o algo ...
p.d. Su código es completamente ilegible. Por supuesto, entiendo que te sientas cómodo con todos estos artificios con las macros, porque tú mismo las escribiste, así que sabes lo que hacen. Pero para un lector externo - es sólo un rompecabezas. Creo que es poco probable que usted mismo entienda lo que hizo allí en seis meses ) Al menos haga un comentario o algo ...
De lo contrario, serías un desastre. Además, estaba experimentando con el número de transiciones. Sin las macros habría sido difícil. En cuanto a los comentarios adicionales, los tendré en cuenta en el futuro.
De lo contrario, habría sido un desastre. Además, experimenté con el número de transiciones. Sin las macros habría sido difícil. En cuanto a los comentarios adicionales, los tendré en cuenta en el futuro.
A veces es mucho más fácil desmontar un desorden comprensible que empezar a desmontar un puzzle compacto y abandonar inmediatamente esta actividad inútil.
A veces es mucho más fácil descifrar un escrito comprensible que empezar a descifrar un rompecabezas compacto y abandonar inmediatamente la inútil tarea que tenemos entre manos.
Además de lo anterior, una de las causas más comunes de las ejecuciones erróneas en el probador es la inicialización defectuosa o la falta de ella.
Si la inicialización de las variables es sencilla, con los arrays es un poco más complicado. Lo más frecuente es encontrar situaciones en las que el número de elementos de una matriz aumenta, lo que puede indicar un lugar problemático.
Para detectar estos posibles problemas, puede insertar estas cadenas al principio del Asesor Experto
Si se detecta la situación, se escribirá la información detallada en el registro y se detendrá la ejecución.
SZZ Ejemplo de aplicación.
Lo entiendo, yo mismo utilizo a menudo este método, pero ¿qué pasa con la inicialización? ¿Cómo puede ser inválido?
Por ejemplo, ArrayResize y ArrayInitialize se confunden. O, por ejemplo, el indicador realiza ArrayInitialize del buffer en OnInit, pensando erróneamente que el buffer está inicializado.
Por ejemplo, ArrayResize y ArrayInitialize se confunden.
Es un error muy infantil. ¿Vale la pena tanto esfuerzo para encontrarlo?
Es un error infantil. ¿Merece la pena el esfuerzo de encontrarlo?
Encontrar cualquier error requiere un esfuerzo. Especialmente cuando el código es grande y no es propio.