void OnStart() { //--- string my_gann="OBJ_GANNFAN object"; if(ObjectFind(0,my_gann)<0)// Objekt nicht gefunden { //--- melden wir Missefolg an Print("Object ",my_gann," not found. Error code = ",GetLastError()); //--- wir erhalten maximalen Preis des Charts double chart_max_price=ChartGetDouble(0,CHART_PRICE_MAX,0); //--- wir erhalten minimalen Preis des Charts double chart_min_price=ChartGetDouble(0,CHART_PRICE_MIN,0); //--- wieviel Bars auf dem Chart gezeigt? int bars_on_chart=ChartGetInteger(0,CHART_VISIBLE_BARS); //--- erzeugen wir Feld, wo wir die Eroeffnungszeit jeder Bar schreiben datetime Time[]; //--- organisieren wir Zugang zum Feld wie in Timeserie ArraySetAsSeries(Time,true); //--- Jetzt kopieren wir darin Daten für die auf dem Chart sichtbaren Bars int times=CopyTime(NULL,0,0,bars_on_chart,Time); if(times<=0) { Print("Kopieren des Feldes mit Eroeffnungszeit fehler!"); return; } //--- Vorbereitungen werden abgeschlossen //--- Index der Zentralbar auf dem Chart int center_bar=bars_on_chart/2; //--- Chartäquator - zwischen Maximum und Minimum double mean=(chart_max_price+chart_min_price)/2.0; //--- stellen wir Koordinaten des ersten Snappunktes ins Zentrum fest ObjectCreate(0,my_gann,OBJ_GANNFAN,0,Time[center_bar],mean, //--- der zweite Snappunkt ist recsht Time[center_bar/2],(mean+chart_min_price)/2.0); Print("Time[center_bar]/="+(string)Time[center_bar]+" Time[center_bar/2]="+(string)Time[center_bar/2]); //Print("Time[center_bar]/="+Time[center_bar]+" Time[center_bar/2]="+Time[center_bar/2]); //--- stellen wir Massstab in Einheiten Pips/Bar ObjectSetDouble(0,my_gann,OBJPROP_SCALE,10); //--- stellen wir Liniendicke fest ObjectSetInteger(0,my_gann,OBJPROP_DIRECTION,GANN_UP_TREND); //--- stellen wir Liniendicke fest ObjectSetInteger(0,my_gann,OBJPROP_WIDTH,1); //--- Legen wir Linienstil ObjectSetInteger(0,my_gann,OBJPROP_STYLE,STYLE_DASHDOT); //--- und Linienfarbe fest ObjectSetInteger(0,my_gann,OBJPROP_COLOR,clrYellowGreen); //--- erlauben wir dem Benutzer, Objekt hervorzuheben ObjectSetInteger(0,my_gann,OBJPROP_SELECTABLE,true); //--- herben wir es selbst hervor ObjectSetInteger(0,my_gann,OBJPROP_SELECTED,true); //--- zeichnen wir auf dem Chart ChartRedraw(0); } } |