ObjectSetDouble

La funzione imposta il valore della proprietà dell'oggetto corrispondente. La proprietà dell' oggetto deve essere di tipo double. Ci sono due varianti della funzione.

Imposta il valore della proprietà, senza modificatore

bool  ObjectSetDouble(
   long                            chart_id,          // identificatore del grafico
   string                          name,              // nome dell'oggetto
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // proprietà
   double                          prop_value         // valore 
   );

Imposta un valore di proprietà che indica il modificatore

bool  ObjectSetDouble(
   long                            chart_id,          // identificatore del grafico
   string                          name,              // nome dell'oggetto
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // proprietà
   int                             prop_modifier,     // modificatore
   double                          prop_value         // valore 
   );

Parametri

chart_id

[in] Identificatore del Grafico. 0 significa il grafico corrente.

name

[in] Nome dell'oggetto.

prop_id

[in] ID della proprietà dell'oggetto. Il valore può essere uno dei valori dell'enumerazione ENUM_OBJECT_PROPERTY_DOUBLE.

prop_modifier

[in] Modificatore della proprietà specificata. Denota il numero del livello negli Strumenti di Fibonacci e nell'oggetto grafico Forche di Andrew's. La numerazione dei livelli parte da zero.

prop_value

[in] Il valore della proprietà.

Valore restituito

La funzione restituisce true solo se il comando per modificare le proprietà di un oggetto grafico sono state inviate con successo ad un grafico. In caso contrario, restituisce false. Per saperne di più sull' errore chiamare GetLastError().

Note

La funzione utilizza una chiamata asincrona, il che significa che la funzione non attende l'esecuzione del comando che è stato aggiunto alla coda del grafico specificato. Invece, restituisce immediatamente il controllo.

Per verificare il risultato di esecuzione del comando, è possibile utilizzare una funzione che richiede la proprietà dell'oggetto specificato. Tuttavia, è necessario tenere presente che tali funzioni vengono aggiunte alla fine della coda di quel chart, ed aspettano il risultato dell'esecuzione, e quindi possono richiedere molto tempo. Questa funzione deve essere presa in considerazione quando si lavora con un gran numero di oggetti su un chart.

Esempio di creazione di un oggetto Fibonacci e l'aggiunta di un nuovo livello in esso

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//--- array ausiliari
   double high[],low[],price1,price2;
   datetime time[],time1,time2;
//--- Copia i prezzi di apertura - le ultime 100 barre sono sufficienti
   int copied=CopyHigh(Symbol(),0,0,100,high);
   if(copied<=0)
     {
      Print("Fallimento nel tentativo di copiare i valori della serie prezzi High");
      return;
     }
//--- Copia il prezzo vicino - le ultime 100 barre sono sufficienti
   copied=CopyLow(Symbol(),0,0,100,low);
   if(copied<=0)
     {
      Print("Impossibile copiare i valori della serie prezzo High");
      return;
     }
//--- Copia il tempo di apertura per lei ultime 100 barre
   copied=CopyTime(Symbol(),0,0,100,time);
   if(copied<=0)
     {
      Print("Impossibile copiare i valori della serie prezzo Tempo");
      return;
     }
//--- Organizza l'accesso ai dati copiati come per le timeseries - indietro
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
 
//--- Coordinate del primo punto di ancoraggio dell'oggetto Fibo
   price1=high[70];
   time1=time[70];
//--- Coordinate del secondo punto di ancoraggio dell'oggetto Fibo
   price2=low[50];
   time2=time[50];
 
//--- Tempo per creare l'oggetto Fibo
   bool created=ObjectCreate(0,"Fibo",OBJ_FIBO,0,time1,price1,time2,price2);
   if(created) // Se l'oggetto è stato creato con successo
     {
      //--- imposta i colori dei livelli Fibo
      ObjectSetInteger(0,"Fibo",OBJPROP_LEVELCOLOR,Blue);
      //--- d'altro canto, quanti livelli di Fibo abbiamo?
      int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
      Print("Fibo levels before = ",levels);
      //---output al Journal => numero di livellol:valore descrizione_livello
      for(int i=0;i<levels;i++)
        {
         Print(i,": ",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
               "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
        }
      //--- Prova ad incrementare il numero di livelli per unità
      bool modified=ObjectSetInteger(0,"Fibo",OBJPROP_LEVELS,levels+1);
      if(!modified) // fallimento nel cambiamento del numero di livelli
        {
         Print("Fallimento nel cambiamento del numero di livelli di Fibo, errore ",GetLastError());
        }
      //--- giusto per informare
      Print("Fibo levels after = ",ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS));
      //--- imposta un valore per un nuovo livello creato
      bool added=ObjectSetDouble(0,"Fibo",OBJPROP_LEVELVALUE,levels,133);
      if(added) // gestito per impostare il valore per un livello
        {
         Print("Successivamente imposta uno o più livelli Fibo");
         //--- Anche non dimenticare di impostare la descrizione del livello
         ObjectSetString(0,"Fibo",OBJPROP_LEVELTEXT,levels,"my level");
         ChartRedraw(0);
         //--- Ottiene il valore attuale del numero dei livelli nell'oggetto Fibo
         levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
         Print("Livelli fibo dopo l'aggiunta = ",levels);
         //--- ancora una volta da in output tutti i livelli - giusto per assicurarsi
         for(int i=0;i<levels;i++)
           {
            Print(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
                  "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
           }
        }
      else // Fallimento se si prova ad incrementare il numero dei livelli nell' oggetto Fibo
        {
         Print("Fallimento ad impostare uno o più livelli Fibo. Error ",GetLastError());
        }
     }
  }

Vedi anche

Object Types, Proprietà Oggetto