Preguntas para principiantes en MQL5. Los profesionales no pasan de largo. - página 7

 
Artyom Trishkin:

DRAW_NONE == 0

DRAW_LINE == 1

Así que tienes algo más en alguna parte. Se supone que también funciona para ti.

Todavía no puedo decir lo que es, pero no siempre funciona.
 
Los comentarios no relacionados con este tema han sido trasladados a "Preguntas de los principiantes de MQL4 MT4 MetaTrader 4".
 
Artyom Trishkin:

No, no es necesario. Todo se hace una vez en el límite>1. Esta es la primera ejecución y la carga del historial. Y si tiene period_sm=10 de alisamiento, entonces el límite en este caso debe ser menor en 10. Así es:

if(limit>1)
  {
   limit=rates_total-period_sm-1;
   ArrayInitialize(Buffer,InitValue);
  }

InitValue - valor para inicializar el buffer - 0 o EMPTY_VALUE - según sea el caso. O -100500 ...

como sugieres en tu ejemplo -- no es la forma correcta de hacerlo -- o, si no te entiendes, da una explicación detallada.

La decisión de lo que se llama "Esta es la primera carrera y la historia de la carga" - se hace por prev_calculated

límite (no está claro cuál es el límite en su caso) - si es el número de barra, a partir de la cual se inicia el recálculo - entonces el límite aquí puede ser más de 1, por ejemplo, 5 minutos de no conexión - en la aparición de la conexión en M1 límite=5, y no hay necesidad de volver a calcular el indicador desde el principio

puedes ver en los ejemplos de la terminal estándar cómo usar todo.

ejemplos del indicador "Osos":

MQL4 (numeración de los compases desde el principio hasta el final):

   int limit=rates_total-prev_calculated;
//---
   if(rates_total<=InpBearsPeriod)
      return(0);
//---
   if(prev_calculated>0)
      limit++;
   for(int i=0; i<limit; i++)

MQL5 (numeración de los compases desde el final hasta el principio):

   if(prev_calculated<InpBearsPeriod)
      limit=InpBearsPeriod;
   else limit=prev_calculated-1;
//--- the main loop of calculations
   for(i=limit;i<rates_total && !IsStopped();i++)
 

Hola a todos. Solía tener una cuenta demo en MT-5. He perdido mi contraseña de acceso a MT-5 después de reinstalar mi Windows. Ahora lo he registrado en el terminal web

Mi cuenta demo MT-5. Todo bien. Puse un nuevo nombre de usuario y una nueva contraseña en el terminal doméstico de la MT-5. Todo funciona, sólo al abrir la nueva orden F9,

en una ventana de nueva orden - los botones Comprar y Vender no están activos. No puedo hacer un pedido. Por favor, ¿qué debo hacer?

Lo siento, tengo que preguntar.

No tengo órdenes. Gracias.

 
Shara1:

Hola a todos. Solía tener una cuenta demo en MT-5. He perdido mi contraseña de acceso a MT-5 después de reinstalar mi Windows. Ahora lo he registrado en el terminal web

Mi cuenta demo MT-5. Todo bien. Puse un nuevo nombre de usuario y una nueva contraseña en el terminal doméstico de la MT-5. Todo funciona, sólo al abrir la nueva orden F9,

en una ventana de nueva orden - los botones Comprar y Vender no están activos. No puedo hacer un pedido. Por favor, ¿qué debo hacer?

Lo siento, tengo que preguntar.

Gracias.

He comprendido el problema. Tenía 0,00 en la ventana de nueva orden F9 y el volumen era 0,00. He puesto 0,01 y ha funcionado.

 

Hola, por favor, asesora, hay estas cadenas en algunos Asesores Expertos.

  double highest=DBL_MIN,lowest=DBL_MAX;

Pregunta - ¿Para qué sirven las variables equiparadas a estas constantes DBL_MIN, DBL_MAX?

 
refounder83:

Hola, por favor, asesora, hay estas cadenas en algunos Asesores Expertos.

Mi pregunta es: ¿por qué equiparan las variables a estas constantes DBL_MIN y DBL_MAX?

Para compararlos con los datos reales, que obviamente son menores que DBL_MAX y obviamente mayores que DBL_MIN.

Por ejemplo:

double x=DBL_MIN;
int total=ArraySize(array);
for(int i=0; i<total; i++)
  {
   double y=array[i];  
   if(y>x) x=y;
  }
Print("x=",DoubleToString(x,Digits()));
 
Gracias, ya veo).
 

¿Se realiza este procedimiento para convertir la hora del servidor en segundos?

datetime time=TimeTradeServer()+60*60*24;
   
  
 
refounder83:

¿Se realiza este procedimiento para convertir la hora del servidor en segundos?

Es la "hora del servidor" más un día (60 segundos * 60 minutos * 24 horas)

Puede utilizar PeriodSeconds()

Print("PeriodSeconds(PERIOD_D1)=",PeriodSeconds(PERIOD_D1),", PeriodSeconds(PERIOD_H1)*24=",PeriodSeconds(PERIOD_H1)*24,", 60*60*24=",60*60*24);
Razón de la queja: