Autoaprendizaje del lenguaje MQL5 desde cero - página 78

 
Alexey Viktorov:

Yo haría esto.

El caso es que es una función de mi EA, y es multiinstrumental. Es cuando añades símbolos y comprueba todos los símbolos disponibles. Si se encuentra, se añade al informe de mercado para su posterior utilización. Y, por supuesto, el nombre correcto del instrumento se escribe en la variable local.

 
Vitaly Muzichenko:

Alexey, el código es bastante normal. Lo que no es normal es introducir varios caracteres en el parámetro, lo que es poco probable que lo haga nadie.

Tengo más o menos la misma implementación en mi producto de trabajo.

Esta implementación funciona con éxito en una solución multidivisa, lo que no puede decirse de otros códigos, es decir, el código es universal.

En la pregunta no hay ni una pizca de solución multidivisa. Por eso dice que el código no cumple el requisito.

 

Y sólo para que conste. Por qué comprobar ambas cosas

StringFind(symbol, s, 0) >= 0 || StringFind(s, symbol, 0) >= 0

A prueba de tontos. Una vez tuve un cliente que se quejaba de que había introducido un símbolo pero no funcionaba. Resulta que su terminal mostraba un símbolo puro pero lo introducía con aditivos. He añadido la segunda dirección de comprobación sin pensarlo mucho )))

 
Luego habrá un tercer tipo, que se indignará por el hecho de que introdujo el nombre del símbolo sin aditivos, y el gráfico tiene aditivos, pero por alguna razón el Asesor Experto funcionó. Por lo tanto, haga una comparación exacta, y si no coincide, muestre un mensaje - "el gráfico tiene tal y tal símbolo, y usted introduce tal y tal" y deje que la carga de la responsabilidad recaiga en el usuario.
 
Dmitry Fedoseev:
Entonces tendremos un tercer tipo que se quejará de que ha introducido el nombre del símbolo sin aditivos, mientras que el gráfico tiene aditivos, pero el Asesor Experto ha funcionado por alguna razón. Por lo tanto, haga una comparación exacta, y si no coincide, muestre un mensaje - "el gráfico tiene tal y tal símbolo, y usted introduce tal y tal" y deje que la carga de la responsabilidad recaiga en el usuario.

No es una opción, por supuesto. Una persona se siente cómoda introduciendo puros caracteres. Y dejar que el código añada los sufijos/prefijos por sí mismo. Por pura comodidad. A mí tampoco me gusta desenterrar el nombre completo de un personaje.
Incluso puede limitarse a copiar el archivo del juego y ejecutar el programa. No es necesario sobrescribir nada. Si hay símbolos, se engancharán automáticamente.

 
Konstantin Nikitin:

No es una opción, por supuesto. Una persona se siente cómoda introduciendo puros caracteres. Y dejar que el código añada los sufijos/prefijos por sí mismo. Por pura comodidad. A mí no me gusta desenterrar el nombre completo de un personaje.

La prueba de tontos nunca es conveniente)

 
Valeriy Yastremskiy:

La prueba de tontos nunca es conveniente)

No es tanto la prueba de tontos. Se trata más bien de la comodidad de copiar un archivo establecido. Ya me he acostumbrado (uno se acostumbra rápido a lo bueno) y no noto cuando transfiero la configuración. Bastante útil.
Aunque la segunda dirección y añadido de tontos )))

 
 MrBrooklin:

Hola Alexey!

Con el fin de mejorar sus conocimientos en el lenguaje de programación MQL5, por favor explique por qué no hay diferencia entre void &array y void& array?

Atentamente, Vladimir.

No lo sé. He comprobado por experiencia que void & array funciona igual. Esto & significa que la variable se pasa por referencia y nada más. Un array como parámetro de entrada a una función se pasa sólo por referencia.
 
Alexey Viktorov:
No lo sé. He aprendido por experiencia que void & array funciona de todas formas. Esto & significa que la variable se pasa por referencia y nada más. Un array como parámetro de entrada a una función se pasa sólo por referencia.

Gracias, Alexey. Lo tendré en cuenta para el futuro.

¡Feliz Navidad!

Sinceramente, Vladimir.

 
MrBrooklin:

Gracias, Alexey. Lo tendré en cuenta para el futuro.

¡Feliz Navidad!

Sinceramente, Vladimir.

Artem Trishkin me respondió la misma pregunta, porque es un enlace (mayúscula), por lo que puede estar en cualquier lugar. debería probar sin espacios por la pureza del experimento.

Razón de la queja: