Visibilidad de objetos

La combinación de banderas de la visibilidad de objeto determina los períodos de tiempo del gráfico en los que se muestra el objeto. Para definir/obtener los valores de la propiedad OBJPROP_TIMEFRAMES podemos usar las funciones ObjectSetInteger()/ObjectGetInteger().

Constante

Valor

Descripción

OBJ_NO_PERIODS

0

El objeto no se muestra en ninguno de los períodos

OBJ_PERIOD_M1

0x00000001

El objeto se dibuja en los gráficos de 1 minuto

OBJ_PERIOD_M2

0x00000002

El objeto se dibuja en los gráficos de 2 minutos

OBJ_PERIOD_M3

0x00000004

El objeto se dibuja en los gráficos de 3 minutos

OBJ_PERIOD_M4

0x00000008

El objeto se dibuja en los gráficos de 4 minutos

OBJ_PERIOD_M5

0x00000010

El objeto se dibuja en los gráficos de 5 minutos

OBJ_PERIOD_M6

0x00000020

El objeto se dibuja en los gráficos de 6 minutos

OBJ_PERIOD_M10

0x00000040

El objeto se dibuja en los gráficos de 10 minutos

OBJ_PERIOD_M12

0x00000080

El objeto se dibuja en los gráficos de 12 minutos

OBJ_PERIOD_M15

0x00000100

El objeto se dibuja en los gráficos de 15 minutos

OBJ_PERIOD_M20

0x00000200

El objeto se dibuja en los gráficos de 20 minutos

OBJ_PERIOD_M30

0x00000400

El objeto se dibuja en los gráficos de 30 minutos

OBJ_PERIOD_H1

0x00000800

El objeto se dibuja en los gráficos de 1 hora

OBJ_PERIOD_H2

0x00001000

El objeto se dibuja en los gráficos de 2 horas

OBJ_PERIOD_H3

0x00002000

El objeto se dibuja en los gráficos de 3 horas

OBJ_PERIOD_H4

0x00004000

El objeto se dibuja en los gráficos de 4 horas

OBJ_PERIOD_H6

0x00008000

El objeto se dibuja en los gráficos de 6 horas

OBJ_PERIOD_H8

0x00010000

El objeto se dibuja en los gráficos de 8 horas

OBJ_PERIOD_H12

0x00020000

El objeto se dibuja en los gráficos de 12 horas

OBJ_PERIOD_D1

0x00040000

El objeto se dibuja en los gráficos de un día

OBJ_PERIOD_W1

0x00080000

El objeto se dibuja en los gráficos semanales

OBJ_PERIOD_MN1

0x00100000

El objeto se dibuja en los gráficos mensuales

OBJ_ALL_PERIODS

0x001fffff

El objeto se dibuja en todos los períodos de tiempo

Las banderas de la visibilidad se puede combinar mediante el símbolo "|", por ejemplo, la combinación de banderas OBJ_PERIOD_M10|OBJ_PERIOD_H4 significa que el objeto será mostrado en los períodos de 10 minutos y 4 horas.

Ejemplo:

void OnStart()
  {
//---
   string highlevel="PreviousDayHigh";
   string lowlevel="PreviousDayLow";
   double prevHigh;           // High del día anterior
   double prevLow;            // Low del día anterior
   double highs[],lows[];     // matrices para recibir High y Low
 
//--- ponemos el último error a cero
   ResetLastError();
//--- obtenemos 2 últimos valores High en período de tiempo diurno
   int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
   if(highsgot>0) // si el copiado ha sido con éxito
     {
      Print("Precios High de los últimos 2 días han sido recibidos con éxito");
      prevHigh=highs[0]; // High del día anterior
      Print("prevHigh = ",prevHigh);
      if(ObjectFind(0,highlevel)<0) // objeto con el nombre highlevel no ha sido encontrado
        {
         ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // creamos el objeto Línea Horizontal
        }
      //--- definimos el nivel de precio para la línea highlevel
      ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
      //--- establecemos la visibilidad sólo para PERIOD_M10 y PERIOD_H4
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else
     {
      Print("Fallo al recibir los precios High de los últimos 2 días, Error = ",GetLastError());
     }
 
//--- ponemos el último error a cero
   ResetLastError();
//--- obtenemos 2 últimos valores Low en período de tiempo diurno
   int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
   if(lowsgot>0) // si el copiado ha sido con éxito
     {
      Print("Precios Low de los últimos 2 días han sido recibidos con éxito");
      prevLow=lows[0]; // Low del día anterior
      Print("prevLow = ",prevLow);
      if(ObjectFind(0,lowlevel)<0) // objeto con el nombre lowlevel no ha sido encontrado
        {
         ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // creamos el objeto Línea Horizontal
        }
      //--- definimos el nivel de precio para la línea lowlevel
      ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
      //--- establecemos la visibilidad sólo para  PERIOD_M10 y PERIOD_H4
      ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else Print("Fallo al recibir los precios Low de los últimos 2 días, Error = ",GetLastError());
 
   ChartRedraw(0); // redibujamos el gráfico por vía forzada
  }

Véase también

PeriodSeconds, Period, Períodos de gráficos, Fecha y hora