Errores, fallos, preguntas - página 750

 
En los indicadores de gráficos en vivo de varios marcos temporales, el probador, por supuesto, se vuelve loco... Todo está cada vez más apretado.
 
x100intraday:
En los indicadores de gráficos en vivo de varios marcos temporales, el probador, por supuesto, se vuelve loco... Todo es cónico.
¿Puedo darle un ejemplo? Me pregunto qué aspecto tiene, porque no queda nada claro en la explicación.
 
tol64:
¿Puedo darle un ejemplo? Me pregunto cómo es, porque de la explicación no se desprende nada.

Por supuesto que sí. En cuanto lo termine, lo pondré a disposición del público... pero mientras tanto...

La cosa es que según mis sospechas el probador nunca ha pensado en funcionar sin problemas en todos los plazos preestablecidos, sigue adecuadamente sólo el plazo seleccionado para la prueba. Pero esto es sólo una sensación, no tengo ni idea de cómo funciona en la realidad.

Por cierto, tendré que dedicar mucho tiempo a arreglarlo sin una ejecución adecuada en el probador porque tendré que probarlo todo en tiempo real sin ningún tipo de aceleración.

 

A los desarrolladores

No entiendo la lógica de ChartIndicatorDelete. ¿Cuál es el truco para trabajar con nombres cortos?

Añadir por asa y eliminar por nombre corto, ¿es lógico?

Supongo que debería cambiar el parámetro de nombre a mango, o añadir un duplicado de la función con mango.

 

A los desarrolladores de

¿Puede alguien explicar por qué este código funciona en el terminal sin errores, pero en el probador con errores?

  if((FirstStart)&&(Handle_JRSX==INVALID_HANDLE))
  {
  Handle_JRSX = iCustom(NULL,PERIOD_D1,"3c_JRSX_H",20,240);
  
    if(Handle_JRSX==INVALID_HANDLE)ChartIndicatorAdd(0,1,Handle_JRSX);
  
  }

En el probadorChartIndicatorAdd devuelve false y se muestra el error 4014.

Al mismo tiempo, elmodo visual en el probador muestra que el indicador está en el gráfico y se representa normalmente.

 
victorg:

Por favor, ayúdenme a entender.

En el proceso de mis cálculos obtengo números cuyo significado no me queda claro.

Asigno dicho número a la variable a y lo imprimo:

Resultado:

Pero según la documentación, el tipo doble no puede tener potencias inferiores a -308. ¿Quién sabe qué tipo de números son?

Es un bosque oscuro...

Estoy tratando de ponerlo a una potencia

     double x,z;
     int y;
     x=-7.56414503782948460000;
     y=MathPow(
     10,         // основание 
     321      // показатель степени
     );
     z=x*y;
     Print("z = ",z);

Me sale

2012.06.11 09:55:30     dbl (EURUSD,M4) z = 16243877779.83916

pero

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

parece correcto, desbordamiento y

2012.06.11 09:55:30     dbl (EURUSD,M4) b = 0

uniéndose a la pregunta.

 

¿Existe alguna funcionalidad que permita establecer/cambiar la altura del gráfico?

Si no existe esta funcionalidad, me gustaría conseguirla.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Silent:

Bosque oscuro...

Por lo que he entendido de la norma IEEE 754, el valor más pequeño de número positivo para el doble es aproximadamente 2,3-10-308. Pero este valor corresponde a los números normalizados, es decir, los que tienen mantisa al menos igual a uno. Sin embargo, también hay números no normalizados, números cuya mantisa es menor que uno. Para estos números, el número positivo más pequeño para el doble es aproximadamente 5,0-10-324. El apoyo a los números no normalizados siempre plantea muchas preguntas. Parece que MQL5 soporta operaciones con númerosno normalizados, aunque el manual no dice nada al respecto. Así que surge la pregunta, ¿cómo debería reaccionar la función MathIsValidNumber() ante tales números?

Podemos asegurarnos de que MQL5 no considera los números no normalizados iguales a cero

double a=-7.56414503782948460000 e-321;
PrintFormat("a = %.18e",a);
if(a==0.0)Print("a == 0.0");
else Print("a != 0.0");

consiga

  a != 0.0
  a = -7.564145037829484600 e-321
En cuanto asu ejemplo

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

El número a es mucho menor que uno en valor absoluto, por lo que el número entero b también es igual a cero. Eso es probablemente correcto.

 
Interesting:

A los desarrolladores

No entiendo la lógica de ChartIndicatorDelete. ¿Cuál es el truco para trabajar con nombres cortos?

Añadir por asa y eliminar por nombre corto, ¿es lógico?

Supongo que debería cambiar el parámetro de nombre a mango, o añadir un duplicado de la función con mango.

Toda la funcionalidad necesaria ya está ahí, véase el ejemplo de IndicatorParameters()
 
Interesting:

¿Existe alguna funcionalidad que permita establecer/cambiar la altura del gráfico?

Si no existe esta funcionalidad, me gustaría conseguirla.

Ver EA_OBJPROP_CHART_ID