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); } } |