Visibilidade de Objetos

A combinação de flags de visibilidade de objeto determina as janelas de tempo de gráfico, onde o objeto é visível. Para definir/obter o valor da propriedade OBJPROP_TIMEFRAMES, você pode usar as funções ObjectSetInteger()/ObjectGetInteger().

ID

Valor

Descrição

OBJ_NO_PERIODS

0

O objeto não desenhado em nenhuma janela de tempo

OBJ_PERIOD_M1

0x00000001

O objeto é desenhado em gráficos de 1 minuto

OBJ_PERIOD_M2

0x00000002

O objeto é desenhado em gráficos de 2 minutos

OBJ_PERIOD_M3

0x00000004

O objeto é desenhado em gráficos de 3 minutos

OBJ_PERIOD_M4

0x00000008

O objeto é desenhado em gráficos de 4 minutos

OBJ_PERIOD_M5

0x00000010

O objeto é desenhado em gráficos de 5 minutos

OBJ_PERIOD_M6

0x00000020

O objeto é desenhado em gráficos de 6 minutos

OBJ_PERIOD_M10

0x00000040

O objeto é desenhado em gráficos de 10 minutos

OBJ_PERIOD_M12

0x00000080

O objeto é desenhado em gráficos de 12 minutos

OBJ_PERIOD_M15

0x00000100

O objeto é desenhado em gráficos de 15 minutos

OBJ_PERIOD_M20

0x00000200

O objeto é desenhado em gráficos de 20 minutos

OBJ_PERIOD_M30

0x00000400

O objeto é desenhado em gráficos de 30 minutos

OBJ_PERIOD_H1

0x00000800

O objeto é desenhado em gráficos de 1 hora

OBJ_PERIOD_H2

0x00001000

O objeto é desenhado em gráficos de 2 horas

OBJ_PERIOD_H3

0x00002000

O objeto é desenhado em gráficos de 3 horas

OBJ_PERIOD_H4

0x00004000

O objeto é desenhado em gráficos de 4 horas

OBJ_PERIOD_H6

0x00008000

O objeto é desenhado em gráficos de 6 horas

OBJ_PERIOD_H8

0x00010000

O objeto é desenhado em gráficos de 8 horas

OBJ_PERIOD_H12

0x00020000

O objeto é desenhado em gráficos de 12 horas

OBJ_PERIOD_D1

0x00040000

O objeto é desenhado em gráficos diários

OBJ_PERIOD_W1

0x00080000

O objeto é desenhado em gráficos semanais

OBJ_PERIOD_MN1

0x00100000

O objeto é desenhado em gráficos mensais

OBJ_ALL_PERIODS

0x001fffff

O objeto é desenhado em todas das janelas de tempo

Os flags de visibilidade podem ser combinados usando o símbolo "|", por exemplo, a combinação de flags OBJ_PERIOD_M10|OBJ_PERIOD_H4 significa que o objeto será visível nas janelas de tempo de 10-minutos e 4-horas.

Exemplo:

void OnStart()
  {
//---
   string highlevel="PreviousDayHigh";
   string lowlevel="PreviousDayLow";
   double prevHigh;           // O Máxima do dia anterior
   double prevLow;            // O Mínimo do dia anterior
   double highs[],lows[];     // Arrays de Máximo e Mínimo
 
//--- redefine o código de erro
   ResetLastError();
//--- Obtém os 2 últimos valores de Máximo na janela de tempo diária
   int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
   if(highsgot>0) // Se cópia foi bem sucedida
     {
      Print("Os preços em alta dos últimos dois dias foram obtidos com sucesso");
      prevHigh=highs[0]; // O Máximo do dia anterior
      Print("prevHigh = ",prevHigh);
      if(ObjectFind(0,highlevel)<0) // Objeto com o mesmo highlevel não encontrado
        {
         ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // Cria o objeto de linha Horizontal
        }
      //--- Define valor para nível de preço para a linha highlevel
      ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
      //--- Define a visibilidade apenas para PERIOD_M10 e PERIOD_H4
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else
     {
      Print("Não foi possível obter preços em lata nos últimos dois dias, Erro = ",GetLastError());
     }
 
//--- redefine o código de erro
   ResetLastError();
//--- Obtém os 2 últimos valores de Mínimo na janela de tempo diária
   int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
   if(lowsgot>0) // Se cópia foi bem sucedida
     {
      Print("Os preços em baixa dos últimos dois dias foram obtidos com sucesso");
      prevLow=lows[0]; // O Mínimo do dia anterior
      Print("prevLow = ",prevLow);
      if(ObjectFind(0,lowlevel)<0) // Objeto com o mesmo lowlevel não encontrado
        {
         ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // Cria o objeto linha Horizontal
        }
      //--- Define valor para o nível de preço para a linha lowlevel
      ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
      //--- Define a visibilidade apenas para PERIOD_M10 e PERIOD_H4
      ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else Print("Não foi possível obter preços em baixa nos últimos dois dias, Erro = ",GetLastError());
 
   ChartRedraw(0); // redesenha o gráfico de forma forçada
  }

Também Veja

PeriodSeconds, Period, Janela de Tempo de Gráfico, Data e Hora