Objets de Gann

Pour les objets Eventail de Fan (OBJ_GANNFAN) et Grille de Gann (OBJ_GANNGRID), vous pouvez spécifier deux valeurs de l'énumération ENUM_GANN_DIRECTION qui définissent la direction de la tendance.

ENUM_GANN_DIRECTION

Identifiant

Description

GANN_UP_TREND

Ligne correspondant à une ligne de tendance haussière

GANN_DOWN_TREND

Ligne correspondant à une ligne de tendance baissière

Pour définir l'échelle de la ligne principale à 1x1, utilisez la fonction ObjectSetDouble(chart_handle, gann_object_name, OBJPROP_SCALE, scale), où :

  • chart_handle — fenêtre du graphique où l'objet est situé ;
  • gann_object_name — nom de l'objet ;
  • OBJPROP_SCALE — identifiant de la propriété "Echelle" ;
  • scale — échelle désirée en Pips/Barre.

Paramètres de l'objet Eventail de Gann

Exemple de création d'un Eventail de Gann :

void OnStart()
  {
//---
   string my_gann="OBJ_GANNFAN object";
   if(ObjectFind(0,my_gann)<0)// Objet non trouvé
     {
      //--- Information sur l'échec
      Print("Objet ",my_gann," non trouvé. Code d'erreur = ",GetLastError());
      //--- Récupère le prix maximal du graphique
      double chart_max_price=ChartGetDouble(0,CHART_PRICE_MAX,0);
      //--- Récupère le prix minimal du graphique
      double chart_min_price=ChartGetDouble(0,CHART_PRICE_MIN,0);
      //--- Combien de barres sont affichées sur le graphique ?
      int bars_on_chart=ChartGetInteger(0,CHART_VISIBLE_BARS);
      //--- Crée un tableau pour écrire l'heure d'ouverture de chaque barre
      datetime Time[];
      //--- Définit le tableau en tant que timeseries
      ArraySetAsSeries(Time,true);
      //--- Copie maintenant les données des barres visibles dans le graphique dans ce tableau
      int times=CopyTime(NULL,0,0,bars_on_chart,Time);
      if(times<=0)
        {
         Print("Impossible de copier le tableau des heures d'ouverture !");
         return;
        }
      //--- Fin des préparations préliminaires
 
      //--- Indice de la barre centrale du graphique
      int center_bar=bars_on_chart/2;
      //--- Equateur du graphique - entre le maximum et le minimum
      double mean=(chart_max_price+chart_min_price)/2.0;
      //--- Définit les coordonnées du premier point d'ancrage au centre
      ObjectCreate(0,my_gann,OBJ_GANNFAN,0,Time[center_bar],mean,
                   //--- Deuxième point d'ancrage à droite
                   Time[center_bar/2],(mean+chart_min_price)/2.0);
      Print("Heure[center_bar] = "+(string)Time[center_bar]+"  Heure[center_bar/2] = "+(string)Time[center_bar/2]);
      //Print("Heure[center_bar]/="+Time[center_bar]+"  HEure[center_bar/2]="+Time[center_bar/2]);
      //--- Définit l'échelle en Pips / Barre
      ObjectSetDouble(0,my_gann,OBJPROP_SCALE,10);
      //--- Définit la ligne de tendance
      ObjectSetInteger(0,my_gann,OBJPROP_DIRECTION,GANN_UP_TREND);
      //--- Définit la largeur de ligne
      ObjectSetInteger(0,my_gann,OBJPROP_WIDTH,1);
      //--- Définit le style de ligne
      ObjectSetInteger(0,my_gann,OBJPROP_STYLE,STYLE_DASHDOT);
      //--- Définit la couleur de ligne
      ObjectSetInteger(0,my_gann,OBJPROP_COLOR,clrYellowGreen);
      //--- Permet à l'utilisateur de sélectionner un objet
      ObjectSetInteger(0,my_gann,OBJPROP_SELECTABLE,true);
      //--- Le sélectionne
      ObjectSetInteger(0,my_gann,OBJPROP_SELECTED,true);
      //--- Le dessine sur le graphique
      ChartRedraw(0);
     }
  }