void OnStart()
{
//---
string highlevel="PreviousDayHigh";
string lowlevel="PreviousDayLow";
double prevHigh; // High предыдущего дня
double prevLow; // Low предыдущего дня
double highs[],lows[]; // массивы для получения High и Low
//--- сбросим значение последней ошибки
ResetLastError();
//--- получим 2 последних значения High на дневном таймфрейме
int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
if(highsgot>0) // если копирование прошло успешно
{
Print("Цены High за последние 2 дня получены успешно");
prevHigh=highs[0]; // High предыдущего дня
Print("prevHigh = ",prevHigh);
if(ObjectFind(0,highlevel)<0) // объект с именем highlevel не найден
{
ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // создадим объект гор. линия
}
//--- зададим ценовой уровень для линии highlevel
ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
//--- установим видимость только для PERIOD_M15 и PERIOD_H1
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M15|OBJ_PERIOD_H1);
}
else
{
Print("Не удалось получить цены High за последние 2 дня, Error = ",GetLastError());
}
//--- сбросим значение последней ошибки
ResetLastError();
//--- получим 2 последних значения Low на дневном таймфрейме
int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
if(lowsgot>0) // если копирование прошло успешно
{
Print("Цены Low за последние 2 дня получены успешно");
prevLow=lows[0]; // Low предыдущего дня
Print("prevLow = ",prevLow);
if(ObjectFind(0,lowlevel)<0) // объект с именем lowlevel не найден
{
ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // создадим объект гор. линия
}
//--- зададим ценовой уровень для линии lowlevel
ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
//--- установим видимость только для PERIOD_M15 и PERIOD_H1
ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M15|OBJ_PERIOD_H1);
}
else Print("Не удалось получить цены Low за последние 2 дня, Error = ",GetLastError());
ChartRedraw(0); // перерисуем график принудительно
} |