ChartSetDouble

Imposta un valore per la corrispondente proprietà del grafico specificato. La proprietà del chart dev' essere di tipo double. Il comando viene aggiunto alla coda dei messaggi del chart e verrà eseguito dopo l'elaborazione di tutti i comandi precedenti.

bool  ChartSetDouble(
   long                           chart_id,     // ID del Grafico
   ENUM_CHART_PROPERTY_DOUBLE     prop_id,      // ID della Proprietà
   double                         value         // Valore
   );

Parametri

chart_id

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

prop_id

[in]  ID proprietà del Grafico. Puo essere uno dei valori ENUM_CHART_PROPERTY_DOUBLE (eccetto le proprietà di sola-lettura).

valore

[in] Valore proprietà.

Valore restituito

Restituisce true se il comando è stato aggiunto alla coda del chart, altrimenti false. Per avere informazioni sull' errore, Chiamare la funzione GetLastError().

Note

La funzione è asincrona, il che significa che la funzione non attende l'esecuzione del comando, che è stato correttamente aggiunto alla coda di specifica del chart. Invece, restituisce immediatamente il controllo. La proprietà cambierà solo dopo la gestione del comando appropriato dalla coda del chart. Per eseguire immediatamente i comandi dalla coda del chart, chiamare la funzione ChartRedraw.

Se si desidera modificare immediatamente più proprietà del chart contemporaneamente, allora le funzioni corrispondenti (ChartSetString, ChartSetDouble, ChartSetString) devono essere eseguite in un blocco di codice, dopo il quale è necessario chiamare ChartRedraw una volta.

Per verificare il risultato dell'esecuzione del comando, è possibile utilizzare una funzione che richiede la proprietà del chart specificata (ChartGetInteger, ChartGetDouble, ChartSetString). Tuttavia, notare che queste funzioni sono sincrone e attendere i risultati dell'esecuzione.

Esempio:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ottenere l'ID del grafico corrente
   long chart_id = ChartID();
   
//--- salvare la distanza iniziale della barra zero dal bordo destro in percentuale e il flag di scorrimento automatico
   double shift = ChartGetDouble(chart_idCHART_SHIFT_SIZE);
   bool   scrollChartGetInteger(chart_id,CHART_AUTOSCROLL);
   
//--- reimposta il flag del grafico a scorrimento automatico
   ChartSetInteger(chart_idCHART_AUTOSCROLLtrue);
   PrintFormat("Initial chart shift size: %.2f"shift);
 
//--- in un ciclo dal 2,0% al 50,0% con il passo dello 0,5%
   for(int i=20i<=500i+=5)
     {
 //--- impostare la dimensione dello slittamento come i / 10 e stampare il valore specificato nel journal
      ChartSetDouble(chart_idCHART_SHIFT_SIZEi/10.0);
      PrintFormat("Set chart shift size to %.1f%%"i/10.0);
      
 //--- mantenere la barra zero del grafico alla distanza di slittamento specificata
      ChartNavigate(chart_idCHART_END0);
      
 //--- attendere un attimo
      Sleep(16);
     }
 
//--- impostare lo slittamento iniziale del grafico e la scorrimento automatico
   Print("Set the chart shift size to the initial value of "shift);
   ChartSetDouble(ChartID(), CHART_SHIFT_SIZEshift);
   ChartSetInteger(chart_idCHART_AUTOSCROLLscroll);
  }