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