Errores, fallos, preguntas - página 1326

 
Alexander Laur:

Karputov Vladimir y Vladimir Zubov ¿acaso leen lo que comentan? O lo principal para ti es expresar tu respeto. Si no ha entendido el problema en cuestión, apártese, quizá aprenda algo útil para usted.

Mi conversación con Renat sobre ¡¡¡Trabajo incorrecto de las funciones!!!

¿Por qué la función RIGHT (return(true)) devuelve CERO?

¿Cómo puede el valor de una garrapata ser igual a cero? ¿Dónde toma SymbolInfoDouble() los datos sobre el valor del tick, si devuelve el valor cero del tick?

Al menos deberías entender lo que comentas.

Probablemente no tengas razón sobre cómo funcionan las funciones. La función:

  1. Devuelve el resultado de su ejecución correctamente. Utilizando la tienda de comestibles como ejemplo. La tarea de la función es buscar lo que hay en la caja 5. Si la función ha ido al almacén, ha encontrado la caja nº 5 y ha sacado lo que hay en su bolsa, entonces la función devolverá "Tarea completada con éxito".
  2. A la función no le importa realmente lo que tiene en su bolsa. Ese es su problema ahora. Analizar exactamente lo que la función trajo en la bolsa.

Así que tu trabajo como programador es comprobar dos resultados: si la función se completó con éxito y lo que la función devolvió. Y no hace falta que exijas al terminal lo que quieres ver. Basta con hacer lo correcto.

 

Resultado ambiguo

void OnStart()
{
        A a( 10 );
        {
                A a( a.c );             //здесь = не 10
                Print( a.c );
        }
        {
                A a = a.c;              //здесь = 10
                Print( a.c );
        }
}

En un caso el resultado es: 10 y en el otro: no 10. ¿Cuál es la diferencia?

 
A100:

Resultado ambiguo

En un caso el resultado es: 10 y en el otro: no 10. ¿Cuál es la diferencia?

estaño :) ¿qué hay en los propios métodos?
 
Konstantin Karpov:
tinny :) ¿qué hay en los propios métodos?

se me olvidó añadir :)

class A {
public:
        A( int b ) : c( b ) {} 
        int c;
};
 
Alexander Laur:

Estás escribiendo tonterías. Las funciones se crean para procesar datos y obtener los resultados de ese procesamiento. Crear una función sólo para que funcione. Me he quedado sin palabras.

Me retiro de la discusión.

+

Estoy escribiendo un Expert Advisor multidivisa con la necesidad de sincronizar herramientas y me he encontrado con tales problemas que se me ponen los pelos de punta.

Por el momento, tengo que decir que simplemente no hay una forma fiable de obtener datos de mercado y, al mismo tiempo, saber claramente que los datos están actualizados.

Lo más gracioso, y a la vez chocante, fue que incluso las banderas en las propiedades del símbolo como

SERIE_SINCRONIZADA

no ofrece ninguna garantía.

 
A100:

Resultado ambiguo

En un caso el resultado es: 10 y en el otro: no 10. ¿Cuál es la diferencia?

Gracias por el mensaje, lo comprobaremos/corregiremos.
Por cierto, en MSVC el resultado es el contrario.
 

¿Alguien sabe que SymbolsTotal(true) y sus derivados no muestran información de Market Watch en absoluto?

Bueno, deberían haberlo dicho en la ayuda, pero no, es un misterio...

 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Lista de cambios en las compilaciones del terminal de cliente de MetaTrader 5

kogriv, 2015.07.18 10:44

Algún consejo sobre qué hacer. Había un archivo - un script en mql5, los últimos cambios fueron en marzo del 15. No he tocado el archivo y el meta-editor durante mucho tiempo después de marzo. El otro día he iniciado metatrader, lo he actualizado y de alguna manera el archivo de script (fuente) se cambió a una versión anterior. El archivo ejecutable sigue siendo la última versión. ¿Hay alguna manera de restaurar el archivo de origen?

 

Deberías usar MQL5 Storage para guardar diferentes versiones.

Lo más probable es que se refiera a la modificación de archivos del conjunto estándar de scripts de terminal. Siempre se sobrescriben durante las actualizaciones, así que no los modifique usted mismo. Tienes que hacer una copia con otro nombre y modificarla.

 
Renat Fatkhullin:

Deberías usar MQL5 Storage para guardar diferentes versiones.

Lo más probable es que se refiera a la modificación de archivos del conjunto estándar de scripts de terminal. Siempre se sobrescriben durante las actualizaciones, así que no los modifique usted mismo. Tienes que hacer una copia con otro nombre y modificarla.

No. El archivo no ha sido modificado respecto a la entrega estándar y no se ha utilizado MQL5 Storage. Probablemente, el usuario entró en una "Carpeta de datos" diferente, al menos esa es la versión más viable hasta el momento.