Errores, fallos, preguntas - página 1178

 
svds75:
No, tengo que configurarlo manualmente y comprobarlo mediante programación.
Entonces tengo que leer la bandera de visibilidad y hacer un & lógico con la constante.
 

Así:

   long cf=ObjectGetInteger(0,"name",OBJPROP_TIMEFRAMES);
   Alert(((cf&OBJ_PERIOD_H1)==OBJ_PERIOD_H1) || cf==0);
Si el indicador de visibilidad de H1 está activado, será verdadero.
 
Integer:
Luego hay que leer la bandera de visibilidad y hacer un & lógico con la constante.

Si te refieres a:

ObjectGetInteger(0,"line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_W1&OBJ_PERIOD_MN1,res);

O

ObjectGetInteger(0,"line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_W1&&OBJ_PERIOD_MN1,res);
Lo mismo.
 
svds75:

Si te refieres a:

O

Lo mismo.
No. No hay necesidad de hacer conseguir con la enumeración. Sólo tiene que obtener, y luego comprobar si la bandera de tiempo requerido se establece. Arriba hay un ejemplo.
 
svds75:

Si te refieres a:

O

Lo mismo.

Su error aquí es bool(res), ya que res es siempre mayor que 1 en cualquier mapeo, ver lo que se devuelve en res, por lo tanto bool(res) sólo devolverá 0 o falso cuando res=0

Está utilizando la conversión y la comparación de tipos de forma desatendida

OBJ_NO_PERIODS

0

El objeto no se muestra en ningún momento

OBJ_PERIOD_M1

0x00000001

El objeto se traza en gráficos de 1 minuto

OBJ_PERIOD_M2

0x00000002

El objeto se traza en gráficos de 2 minutos

OBJ_PERIOD_M3

0x00000004

El objeto se traza en gráficos de 3 minutos

OBJ_PERIOD_M4

0x00000008

El objeto se traza en gráficos de 4 minutos

OBJ_PERIOD_M5

0x00000010

El objeto se traza en gráficos de 5 minutos

OBJ_PERIOD_M6

0x00000020

El objeto se traza en gráficos de 6 minutos

OBJ_PERIOD_M10

0x00000040

El objeto se traza en gráficos de 10 minutos

OBJ_PERIOD_M12

0x00000080

El objeto se traza en gráficos de 12 minutos

OBJ_PERIOD_M15

0x00000100

El objeto se traza en gráficos de 15 minutos

OBJ_PERIOD_M20

0x00000200

El objeto se traza en gráficos de 20 minutos

OBJ_PERIOD_M30

0x00000400

El objeto se traza en gráficos de 30 minutos

OBJ_PERIOD_H1

0x00000800

El objeto se traza en gráficos de 1 hora

OBJ_PERIOD_H2

0x00001000

El objeto se traza en gráficos de 2 horas

OBJ_PERIOD_H3

0x00002000

El objeto se traza en gráficos de 3 horas

OBJ_PERIOD_H4

0x00004000

El objeto se traza en gráficos de 4 horas

OBJ_PERIOD_H6

0x00008000

El objeto se traza en gráficos de 6 horas

OBJ_PERIOD_H8

0x00010000

El objeto se traza en gráficos de 8 horas

OBJ_PERIOD_H12

0x00020000

El objeto se traza en gráficos de 12 horas

OBJ_PERIOD_D1

0x00040000

El objeto se traza en gráficos diarios

OBJ_PERIOD_W1

0x00080000

El objeto se traza en gráficos semanales

OBJ_PERIOD_MN1

0x00100000

El objeto se traza en gráficos mensuales

OBJ_ALL_PERIODS

0x001fffff

El objeto se traza en todos los marcos temporales

 
Integer:

Ahí lo tienes:

Si el indicador de visibilidad de H1 está activado, será verdadero.
Está funcionando, gracias.
 
meat:

Como continuación de mi anterior post, he conseguido encontrar el área problemática que causaba el fallo utilizando el método científico.

Tenemos una biblioteca con esta función:

Aquí está el archivo principal:

El Asesor Experto resultante no funciona y muestra en el registro: "EX5 loading failed".

Gracias por el post, ya está arreglado.
 

Hola. He bloqueado el EA en la función OnInit y parece que cuando apago el EA y cambio de timeframe el terminal se cuelga (el timeframe no cambia después de los frenos). Así que mi pregunta es: ¿se debe a los cuelgues? Si es así, ¿se corrige si muevo el algoritmo a OnTick? Si no, ¿qué ayudaría?

PD: El bucle tiene una función Sleep, para no sobrecargar el terminal. Los campos de entrada se leen en el bucle.

 
king20:

Hola. He bloqueado el EA en la función OnInit y probablemente debido a esto el terminal se cuelga cuando apago el EA y cambio el timeframe (el timeframe no cambia después de los frenos). Así que mi pregunta es: ¿se debe a los cuelgues? Si es así, ¿se corrige si muevo el algoritmo a OnTick? Si no, ¿qué ayudaría?

PD: El bucle tiene una función Sleep, para no sobrecargar el terminal. Los campos de entrada se leen en el bucle.

Formatear el disco duro.
 
king20:

Hola. He bloqueado el Expert Advisor en la función OnInit y parece que cuando apago el EA y cambio de timeframe el terminal se cuelga (el timeframe no cambia después de los frenos). Así que mi pregunta es: ¿se debe a los cuelgues? Si es así, ¿se corrige si muevo el algoritmo a OnTick? Si no, ¿qué ayudaría?

PD: El bucle tiene una función Sleep, para no sobrecargar el terminal. Los campos de entrada se leen en el bucle.

OnInit - sirve sólo para la inicialización. Todos los cálculos deben hacerse más adelante: OnTick, OnTimer, etc.

Si necesita conocer el cambio en el campo de entrada, existe una biblioteca estándar para ello: https://www.mql5.com/ru/docs/standardlibrary/controls/cedit

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