void OnStart()
{
//---
string my_gann="OBJ_GANNFAN object";
if(ObjectFind(0,my_gann)<0)// объект не найден
{
//--- сообщим о неудаче
Print("Object ",my_gann," not found. Error code = ",GetLastError());
//--- получим максимальную цену графика
double chart_max_price=ChartGetDouble(0,CHART_PRICE_MAX,0);
//--- получим минимальную цену графика
double chart_min_price=ChartGetDouble(0,CHART_PRICE_MIN,0);
//--- сколько баров на графике показано?
int bars_on_chart=int(ChartGetInteger(0,CHART_VISIBLE_BARS));
//--- создадим массив, куда запишем время открытия каждого бара
datetime Times[];
//--- организуем доступ к массиву как в таймсерии
ArraySetAsSeries(Times,true);
//--- теперь скопируем в него данные для видимых на графике баров
int times=CopyTime(NULL,0,0,bars_on_chart,Times);
if(times<=0)
{
Print("Не удалось скопировать массив со временем открытия!");
return;
}
//--- предварительные приготовления закончены
//--- индекс центрального бара на графике
int center_bar=bars_on_chart/2;
//--- экватор графика - между максимумом и минимумом
double mean=(chart_max_price+chart_min_price)/2.0;
//--- установим координаты первой точки привязки в центр
ObjectCreate(0,my_gann,OBJ_GANNFAN,0,Times[center_bar],mean,
//--- вторая точки привязки справа
Times[center_bar/2],(mean+chart_min_price)/2.0);
Print("Times[center_bar] = "+(string)Times[center_bar]+" Times[center_bar/2] = "+(string)Times[center_bar/2]);
//Print("Times[center_bar]/="+Times[center_bar]+" Times[center_bar/2]="+Times[center_bar/2]);
//--- установим масштаб в единицах Pips/Bar
ObjectSetDouble(0,my_gann,OBJPROP_SCALE,10);
//--- установим направление тренда
ObjectSetInteger(0,my_gann,OBJPROP_DIRECTION,GANN_UP_TREND);
//--- установим толщину линий
ObjectSetInteger(0,my_gann,OBJPROP_WIDTH,1);
//--- зададим стиль линий
ObjectSetInteger(0,my_gann,OBJPROP_STYLE,STYLE_DASHDOT);
//--- и цвет линий
ObjectSetInteger(0,my_gann,OBJPROP_COLOR,clrYellowGreen);
//--- разрешим пользователю выделять объект
ObjectSetInteger(0,my_gann,OBJPROP_SELECTABLE,true);
//--- выделим его сами
ObjectSetInteger(0,my_gann,OBJPROP_SELECTED,true);
//--- отрисуем на графике
ChartRedraw(0);
}
} |