ChartSetDouble

Spécifie la valeur de la propriété correspondante du graphique indiqué. La propriété du graphique doit être du type double. La commande est ajoutée à la queue des messages du graphique et sera exécutée après le traitement de toutes les commandes précédentes.

bool  ChartSetDouble(
   long                           chart_id,     // identificateur du graphique
   ENUM_CHART_PROPERTY_DOUBLE     prop_id,      // identificateur de la propriété
   double                         value         // valeur 
   );

Paramètres

chart_id

[in]  L'identificateur du graphique. 0 signifie le graphique courant.

prop_id

[in]  L'identificateur de lapropriété du graphique. La valeur peut être l'une des valeurs de l'énumération ENUM_CHART_PROPERTY_DOUBLE (sauf les propriétés en lecture seule).

value

[in]  La valeur de lapropriété.

Valeur de Retour

Retourne true si la commande a bien été ajoutée à la queue de messages du graphique, sinon false. Pour obtenir plus d'informations sur l'erreur, appeler la fonction GetLastError().

Note

La fonction est asynchrone, ce qui signifie que la fonction n'attends pas l'exécution de la commande qui a été ajoutée avec succès dans la queue d'évènements du graphique spécifié. Au lieu de cela, elle retourne le contrôle immédiatement. La propriété ne sera changée qu'après la gestion de la commande correspondante de la queue du graphique. Pour exécuter immédiatement les commandes de la file d'attente du graphique, appelez la fonction ChartRedraw.

Si vous souhaitez changer immédiatement plusieurs propriétés d'un graphique en une seule fois, les fonctions correspondantes (ChartSetString, ChartSetDouble, ChartSetString) doivent être exécutées en un seul bloc de code, après lequel vous devrez appeler ChartRedraw une seule fois.

Pour vérifier le résultat de l'exécution de la commande, vous pouvez utiliser une fonction qui retourne la propriété correspondante du graphique (ChartGetInteger, ChartGetDouble, ChartSetString). Notez cependant que ces fonctions sont synchrone et attendent le résultat de l'exécution.

Exemple :

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- récupère l'identifiant du graphique actuel
   long chart_id = ChartID();
   
//--- enregistre le décalage initial de la barre zéro par rapport au bord droit en pourcentage et l'indicateur de défilement automatique
   double shift = ChartGetDouble(chart_idCHART_SHIFT_SIZE);
   bool   scrollChartGetInteger(chart_id,CHART_AUTOSCROLL);
   
//--- réinitialise l'indicateur du défilement automatique du graphique
   ChartSetInteger(chart_idCHART_AUTOSCROLLtrue);
   PrintFormat("Initial chart shift size: %.2f"shift);
 
//--- dans une boucle de 2.0% à 50.0% avec un pas de 0.5%
   for(int i=20i<=500i+=5)
     {
      //--- définit la taille du décalage égal à i/10 et imprime la valeur spécifiée dans le journal
      ChartSetDouble(chart_idCHART_SHIFT_SIZEi/10.0);
      PrintFormat("Set chart shift size to %.1f%%"i/10.0);
      
      //--- conserve la barre zéro du graphique à la distance de décalage spécifiée
      ChartNavigate(chart_idCHART_END0);
      
      //--- attente
      Sleep(16);
     }
 
//--- définit le décalage initial du graphique et le défilement automatique
   Print("Set the chart shift size to the initial value of "shift);
   ChartSetDouble(ChartID(), CHART_SHIFT_SIZEshift);
   ChartSetInteger(chart_idCHART_AUTOSCROLLscroll);
  }