Errores, fallos, preguntas - página 418

 

Llevo un par de días trabajando con MT5 y me he dado cuenta de que ahora se pueden editar los stops y los beneficios con el ratón, lo cual está bien, pero hay un pequeño fallo: cuando muevo el ratón hacia el stop, su puntero cambia para mostrar que el stop está activo para su edición, pero el puntero también cambia cuando se utiliza la herramienta "Crosshair", lo que significa que si quiero medir la distancia desde el stop, no es muy conveniente, porque el segundo punto está detrás del puntero y no puedo ver a dónde lo estoy llevando. Quería hacer PrintScreen, pero no hace una foto del ratón.

En resumen: no es conveniente medir con "Crosshair" desde el tope.

 
mql5:
El error está solucionado.
Se discutió el "fetch" de la verificación del interruptor y no podemos implementar el control correcto/correcto.
El valor de una expresión de conmutación puede ser cualquier cosa, por ejemplo:

Bien, ya veo. El compilador no puede controlar el valor de la expresión switch en lugar del programador.

Como pregunta al margen, este constructo se utiliza en el ejemplo anterior:

enum EV { v1, v2, };
...
   switch(EV(3))

¿Significa esto que es aceptable manejar datos de un tipo enumerado no sólo con constantes nombradas (v1, v2, etc.) sino también especificando su número ordinal en la enumeración ( EV(n) )?

...Hice tales construcciones para resolver tal cuestión - pero aquí puede ser mucho más simple.

 
Yedelkin:

¿Significa esto que es aceptable referirse a datos de un tipo enumerado no sólo con constantes con nombre (v1, v2, etc.) sino también especificando su número ordinal en una enumeración ( EV(n) )?

En este caso, sólo se aplica la conversión estándar de tipo int a EV. En notación funcional.

Hay dos posibles formas sintácticas de conversión de tipos en mql5 que son equivalentes en el resultado: (Nombre_tipo) Valor y Nombre_tipo(Valor).

Es decir, no es una característica especial relacionada con las enumeraciones, es sólo una conversión de tipo normal.

 
Jhonny:

Llevo un par de días trabajando con MT5 y me he dado cuenta de que ahora se pueden editar los stops y los beneficios con el ratón, lo cual está bien, pero hay un pequeño fallo: cuando muevo el ratón hacia el stop, su puntero cambia para mostrar que el stop está activo para su edición, pero el puntero también cambia cuando se utiliza la herramienta "Crosshair", lo que significa que si quiero medir la distancia desde el stop, no es muy conveniente, porque el segundo punto está detrás del puntero y no puedo ver a dónde lo estoy llevando. Quería hacer PrintScreen, pero no hace una foto del ratón.

Conclusión: no es conveniente medir con "Crosshair" desde el tope.

Estoy de acuerdo, es una buena observación, pero no es un error.

Buenos deseos para MT5

 
MetaDriver:

En este caso, sólo se ha aplicado una conversión estándar de int a EV. En notación funcional.

Hay dos posibles formas sintácticas de conversión de tipos en mql5, que son iguales en el resultado: (Nombre_tipo) Valor y Nombre_tipo(Valor).

Es decir, no es una característica especial relacionada con las enumeraciones, es sólo una conversión de tipo normal.

¡Genial! Intentaré digerirlo. Pero por lo que has dicho, la respuesta a mi pregunta es positiva. ¡Eso es bueno! ¡Gracias!
 

No se puede iniciar la prueba en modo de visualización. El propio visualizador se inicia, pero la prueba no comienza. Esto es lo que dice el registro:

2011.06.16 21:25:47 EURUSD: símbolo sincronizado, 2904 bytes de información del símbolo recibidos
2011.06.16 21:25:47 error de sincronización del símbolo EURUSD
2011.06.16 21:25:47 no se puede obtener el historial EURUSD,M1
2011.06.06.16 21:25:47 archivo de registro "C:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" escrito
2011.06.16 21:25:48 tester agent shutdown

 

Los promotores.

¿Es realmente tan lento el comprobador visual o me estoy imaginando cosas?

 
molotkovsm:

No se puede iniciar la prueba en modo de visualización. El propio visualizador se inicia, pero la prueba no comienza. Esto es lo que está escrito en el registro:

2011.06.16 21:25:47 EURUSD: símbolo sincronizado, 2904 bytes de información del símbolo recibidos
2011.06.16 21:25:47 Error de sincronización de símbolos del EURUSD
2011.06.16 21:25:47 no se puede obtener el historial EURUSD,M1
2011.06.16 21:25:47 archivo de registro "C:{Archivos de programa\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" escrito
2011.06.16 21:25:48 cierre del agente de pruebas

El mismo problema. El registro del agente no se puede abrir a través de la ruta especificada.

2011.06.16 22:40:52     tester agent shutdown
2011.06.16 22:40:52     log file "C:\Program Files\MetaTrader 5 - 64\Tester\Agent-127.0.0.1-3000\logs\20110616.log" written
2011.06.16 22:40:52     cannot get history EURUSD,M1
2011.06.16 22:40:52     symbol EURUSD synchronization error
2011.06.16 22:40:52     EURUSD: symbol synchronized, 2904 bytes of symbol info received
2011.06.16 22:40:51     Pentium Dual-Core  T4300 @ 2.10 GHz, 3001 MB
2011.06.16 22:40:51     13 Kb of total initialization data received
2011.06.16 22:40:51     successfully initialized
2011.06.16 22:40:51     expert file added: Experts\Тест.ex5. 2958 bytes loaded
2011.06.16 22:40:51     346 bytes of selected symbols loaded
2011.06.16 22:40:51     196 bytes of input parameters loaded
2011.06.16 22:40:51     1490 bytes of tester parameters loaded
2011.06.16 22:40:51     3788 bytes of group info loaded
2011.06.16 22:40:51     login (build 468)
2011.06.16 22:40:51     initialization finished
2011.06.16 22:40:51     MetaTester 5 started on 127.0.0.1:3000
2011.06.16 22:40:51     MetaTester 5 x64 build 468 (16 Jun 2011)


 
Por favor, facilite el código.
 
Renat:
Por favor, dame el código.

Buenas noches, me preguntaba si en este código

  if(B >= spred && IND == true && proverka()==true)

después de comprobar B>spred, que es "FALSE", se comprueban el resto de valores

Aumenta el tiempo de ejecución de la prueba, por lo que tengo que modificar el código de la siguiente manera

   if(B >= bar)
    {
     if (IND == true) 
      {
       if (proverka)==true)
        {
         .......

Y el que más tiempo consume en términos de cálculos ( proverka() - copia de los valores del buffer de un indicador)

Lo pongo en último lugar pero no comprueba el último. Me pregunto.

¿Y por qué tanto?

O no comprueba la última:

 if(B >= bar) if (IND == true) if (proverka()==true)