//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- вспомогательные массивы
double high[],low[],price1,price2;
datetime time[],time1,time2;
//--- скопируем цены открытия - 100 последних баров хватит
int copied=CopyHigh(Symbol(),0,0,100,high);
if(copied<=0)
{
Print("Не удалось скопировать значения ценовой серии High");
return;
}
//--- скопируем цены закрытия - 100 последних баров хватит
copied=CopyLow(Symbol(),0,0,100,low);
if(copied<=0)
{
Print("Не удалось скопировать значения ценовой серии Low");
return;
}
//--- скопируем время открытия для 100 последних баров
copied=CopyTime(Symbol(),0,0,100,time);
if(copied<=0)
{
Print("Не удалось скопировать значения ценовой серии Time");
return;
}
//--- организуем доступ к скопированным данным как к таймсериям - задом наперед
ArraySetAsSeries(high,true);
ArraySetAsSeries(low,true);
ArraySetAsSeries(time,true);
//--- координаты первой точки привязки Фибо-объекта
price1=high[70];
time1=time[70];
//--- координаты первой точки привязки Фибо-объекта
price2=low[50];
time2=time[50];
//--- пора создать и сам Фибо-объект
bool created=ObjectCreate(0,"Fibo",OBJ_FIBO,0,time1,price1,time2,price2);
if(created) // если объект создан удачно
{
//--- установим цвет Фибо0уровней
ObjectSetInteger(0,"Fibo",OBJPROP_LEVELCOLOR,Blue);
//--- кстати, а сколько у нас Фибо-уровней ?
int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
Print("Fibo levels before = ",levels);
//---выведем в Журнал=> номер уровня:значения описание_уровня
for(int i=0;i<levels;i++)
{
Print(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
" ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
}
//--- попробуем увеличить количество уровней на единицу
bool modified=ObjectSetInteger(0,"Fibo",OBJPROP_LEVELS,levels+1);
if(!modified) // не удалось количество уровней изменить
{
Print("Не удалось изменить количество уровней в Фибо, ошибка ",GetLastError());
}