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
Lo tienes todo resuelto. Utiliza una constante NULL.
Déjame contarte un secreto, ya está implementado. Tienes que hacer clic en la rueda del ratón y aparecerá una cruz.
Puedes hacerlo hace mucho tiempo. Desde el navegador se arrastra el indicador a la ventana con el indicador ya adjunto.
En mi opinión, no es lo más necesario.
Tienes un navegador, tienes favoritos, tienes plantillas, tienes perfiles. Todo se puede configurar. Lee la ayuda para el terminal, ¡descubrirás muchas cosas!
Las enumeraciones se utilizan para hacer el código más legible, para eliminar las constantes y sustituirlas por entidades conocidas por el hombre.
Por ejemplo, los valores de la enumeración ENUM_DAY_OF_WEEK pueden utilizarse para comparar con el valor day_of_week de la estructura MqlDateTime. Es decir, se puede escribir así
O puedes escribirlo de otra manera:
SUNDAY es una constante con nombre de tipo int con valor 0.
¡Genial! ¡Gracias por el navegador! No le presté mucha atención. Suelo apagarlo para que no ocupe demasiado espacio. La ayuda, aunque sea a simple vista, la he leído. No me dice nada de arrastrar un indirecto en la ventana de gráficos y encima de otro. Aunque, podría haberlo adivinado e intentado....))
Gracias por explicar la naturaleza de las enumeraciones. Los leí muy rápido, MQL es mayormente derivado de C++, y hay muchos docks para él. Pero un montón de erratas en la ayuda y artículos incompletos no es bueno.
Resultados: ¡una ayuda correctamente redactada puede evitar muchas preguntas estúpidas de los tontos del foro!
En lo que respecta a NULL, es cero: se utiliza mucho. Pero los valores máximos de las variables son extremadamente raros, casi nunca. Por ejemplo, una variable almacena tres estados después de analizar los indicadores: COMPRA, VENTA o NULO. Si utilizamos las constantes ya hechas POSITION_TYPE_BUY, POSITION_TYPE_SELL, una de ellas es cero. Estoy seguro de que EMPTY_VALUE será más popular que NULL si se generaliza a todos los tipos).
Hay otra aplicación infinitamente útil. Por ejemplo:
Y el usuario obtiene una lista desplegable con una selección de 4 elementos de lo que ha escrito allí en los comentarios - "Sólo comprar", "Sólo vender", etc. Muy útil para listar un conjunto de indicadores, plazos, conjunto de condiciones, etc. en la ventana de configuración del usuario
La parte NULL es cero, y se utiliza a menudo. Por ejemplo, la variable almacena tres estados después de analizar los indicadores: COMPRA, VENTA o NULO. Si utilizamos las constantes listas POSITION_TYPE_BUY, POSITION_TYPE_SELL, una de ellas es NULL.
No hay problema, puedes hacerlo así:
Y ponlo donde quieras.
No hay problema, puedes hacerlo así:
Y ponlo donde quieras.
Todo esto está claro. No me refiero a eso.
Entonces, ¿explica lo que quiere decir? ¿Una única constante para todos los tipos de datos predefinidos? Es poco probable que se aplique algo así.
Desgraciadamente, sólo los programadores experimentados comprenden la utilidad e importancia de esta advertencia.
Bueno, recomiendo a todos los demás que se alegren de este nivel de ayuda del compilador y que arreglen sus propios errores. Estos son lugares reales de errores potenciales y es exactamente para los desarrolladores novatos que es críticamente importante aprender.
El tema de los "métodos puramente virtuales" ya se planteó en el foro hace unos años.
Es decir, en el concepto de C++, métodos virtuales sin cuerpo que DEBEN ser sobrescritos en los descendientes:
Además, una clase que contenga estos métodos se convierte automáticamente en abstracta. El compilador también hace un seguimiento de esto. (Bueno, es solo para apegarse a los estándares, aunque puedes ocultar el constructor en un ámbito protegido).
Actualmente nos falta mucho comportamiento de los "métodos virtuales puros". Sin esa funcionalidad, no se puede preparar adecuadamente una biblioteca o un framework para externalizarla: se crea una clase hija propia (que no está para nada, sino que se incrusta como un engranaje en otras clases) y se tiene la amabilidad de implementar toda la interfaz. Ahora, heredas, no pones una implementación de método, el compilador se lo traga, no funciona nada. ¿Revisar el código fuente de la clase principal?
El concepto de interfaz es uno de los fundamentos de la POO. Por lo tanto, me gustaría ver la implementación de tal cosa en 5, y no en MQL6
Por cierto, en la documentación sobre las funciones virtuales, hay un error
Ejemplo:
La función virtualFunc1 no tiene cuerpo ejecutable (y ni siquiera devuelve un valor), pero compila sin errores.
El tema de los "métodos puramente virtuales" ya se planteó en el foro hace unos años.
Es decir, en el concepto de C++, los métodos virtuales sin cuerpo, que deben ser DEBIDOS de anular en los descendientes:
Además, una clase que contenga estos métodos se convierte automáticamente en abstracta. El compilador también hace un seguimiento de esto. (Bueno, es solo para apegarse a los estándares, aunque puedes ocultar el constructor en un ámbito protegido).
Actualmente nos falta mucho comportamiento de los "métodos virtuales puros". Sin esa funcionalidad, no se puede preparar adecuadamente una biblioteca o un framework para externalizarla: se crea una clase hija propia (que no está para nada, sino que se incrusta como un engranaje en otras clases) y se tiene la amabilidad de implementar toda la interfaz. Ahora, heredas, no pones una implementación de método, el compilador se lo traga, no funciona nada. ¿Revisar el código fuente de la clase principal?
El concepto de interfaz es uno de los fundamentos de la POO. Por lo tanto, me gustaría ver la implementación de tal cosa en 5, y no en MQL6
Por cierto, en la documentación sobre las funciones virtuales, hay un error
Ejemplo:
La función virtualFunc1 no tiene cuerpo ejecutable (y ni siquiera devuelve un valor), pero compila sin errores.
1. Pronto se añadirán funciones virtuales puras
2. ¿En qué parte de su ejemplo se encuentra la llamada Func1? No hay llamada - no hay control del cuerpo.
1. Pronto se añadirán funciones virtuales puras
2. ¿Dónde está la llamada Func1 en tu ejemplo? No hay llamada - tampoco hay control del cuerpo.
VS 2015 dijo lo siguiente
Severidad Código Descripción Proyecto Archivo Línea Estado de supresión
Error LNK2001 símbolo externo no resuelto "public: virtual int __thiscall Base::Func1(void)" (?Func1@Base@UAEHXZ) TestCPPCode C:\MyP\AvForex\trunk\TestCPPCode.obj 1
Error LNK1120 1 externos no resueltos TestCPPCode C:\MyP\AvForex\trunk\MQL4FilesForFormatting2015\Debug\TestCPPCode.exe 1
VS 2015 dijo lo siguiente
Severidad Código Descripción Proyecto Archivo Línea Estado de supresión
Error LNK2001 símbolo externo no resuelto "public: virtual int __thiscall Base::Func1(void)" (?Func1@Base@UAEHXZ) TestCPPCode C:\MyP\AvForex\trunk\TestCPPCode.obj 1
Error LNK1120 1 externos no resueltos TestCPPCode C:\MyP\AvForex\trunk\MQL4FilesForFormatting2015\Debug\TestCPPCode.exe 1