Visibilità degli oggetti

La combinazione dei flag di visibilità degli oggetti determina i timeframes del grafico, in cui l'oggetto è visibile. Per impostare/ottenere il valore della proprietà OBJPROP_TIMEFRAMES, è possibile utilizzare le funzioni ObjectSetInteger()/ObjectGetInteger().

ID

Valore

Descrizione

OBJ_NO_PERIODS

0

L'oggetto non viene disegnato in tutti i timeframes

OBJ_PERIOD_M1

0x00000001

L'oggetto viene disegnato nel grafico 1-minuto

OBJ_PERIOD_M2

0x00000002

L'oggetto viene disegnato nel grafico 2-minuti

OBJ_PERIOD_M3

0x00000004

L'oggetto viene disegnato nel grafico 3-minuti

OBJ_PERIOD_M4

0x00000008

L'oggetto viene disegnato nel grafico 4-minuti

OBJ_PERIOD_M5

0x00000010

L'oggetto viene disegnato nel grafico 5-minuti

OBJ_PERIOD_M6

0x00000020

L'oggetto viene disegnato nel grafico 6-minuti

OBJ_PERIOD_M10

0x00000040

L'oggetto viene disegnato nel grafico 10-minuti

OBJ_PERIOD_M12

0x00000080

L'oggetto viene disegnato nel grafico 12-minuti

OBJ_PERIOD_M15

0x00000100

L'oggetto viene disegnato nel grafico 2-minuti

OBJ_PERIOD_M20

0x00000200

L'oggetto viene disegnato nel grafico 20-minuti

OBJ_PERIOD_M30

0x00000400

L'oggetto viene disegnato nel grafico 30-minuti

OBJ_PERIOD_H1

0x00000800

L'oggetto viene disegnato nel grafico 1-ora

OBJ_PERIOD_H2

0x00001000

L'oggetto viene disegnato nel grafico 2-ore

OBJ_PERIOD_H3

0x00002000

L'oggetto viene disegnato nel grafico 3-ore

OBJ_PERIOD_H4

0x00004000

L'oggetto viene disegnato nel grafico 4-ore

OBJ_PERIOD_H6

0x00008000

L'oggetto viene disegnato nel grafico 6-ore

OBJ_PERIOD_H8

0x00010000

L'oggetto viene disegnato nel grafico 8-ore

OBJ_PERIOD_H12

0x00020000

L'oggetto viene disegnato nel grafico 12-ore

OBJ_PERIOD_D1

0x00040000

L'oggetto viene disegnato nel grafico giornaliero

OBJ_PERIOD_W1

0x00080000

L'oggetto viene disegnato nel grafico settimanale

OBJ_PERIOD_MN1

0x00100000

L'oggetto viene disegnato nel grafico mensile

OBJ_ALL_PERIODS

0x001fffff

L'oggetto viene disegnato in tutti i timeframes

La visibilità delle flags può essere combinata con il simbolo "|", per esempio, la combinazione di flag OBJ_PERIOD_M10 | OBJ_PERIOD_H4 significa che l'oggetto sarà visibile sui timeframes a 10-minuti e 4-ore.

Esempio:

voidOnStart()
  {
//---
   string highlevel="PreviousDayHigh";
   string lowlevel="PreviousDayLow";
   double prevHigh;           // Il Massimo(High) del giorno precedente
   double prevLow;            // Il Minimo(Low) del giorno precedente
   double highs[],lows[];     // Array per Massimo e Minimo
 
//--- Resetta l'ultimo errore
   ResetLastError();
//--- Riceve gli ultimi 2 valori Massimi sul timeframe giornaliero
   int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
   if(highsgot>0) // Se la copia ha avuto successo
     {
      Print("I prezzi Massimi per gli ultimi 2 giorni sono stati ottenuti con successo");
      prevHigh=highs[0]; // Il Massimo(High) del giorno precedente
      Print("prevHigh = ",prevHigh);
      if(ObjectFind(0,highlevel)<0) // Oggetto con il nome highlevel non trovato
        {
         ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // Crea l'oggetto Linea Orizzontale
        }
      //--- Imposta il valore per il livello del prezzo per la linea highlevel
      ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
      //--- Imposta la visibilità solo per PERIOD_M10 e PERIOD_H4
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else
     {
      Print("Non posso ottenere i prezzi Massimi(High) per gli ultimi 2 giorni, Errore = ",GetLastError());
     }
 
//--- Resetta l'ultimo errore
   ResetLastError();
//--- Ottiene i valori Minimi(Low) di 2 giorni sul timeframe giornaliero
   int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
   if(lowsgot>0) // Se la copia ha avuto successo
     {
      Print("I prezzi Minimi(Low) per gli ultimi 2 giorni sono stati ottenuti con successo");
      prevLow=lows[0]; // Il Minimo del giorno precedente
      Print("prevLow = ",prevLow);
      if(ObjectFind(0,lowlevel)<0) // Oggetto con il nome lowlevel non trovato
        {
         ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // Crea l'oggetto Linea Orizzontale
        }
      //--- Imposta il valore per il livello del prezzo per la linea lowlevel
      ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
      //--- Imposta la visibilità solo per PERIOD_M10 e PERIOD_H4
      ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
     }
   else Print("Non posso ottenere i prezzi Minimi(Low) per gli ultimi 2 giorni, Errore = ",GetLastError());
 
   ChartRedraw(0); // aggiorna il grafico forzatamente
  }

Vedi anche

PeriodSeconds, Period, Timeframes dei Grafici, Data ed Ora