AutoPivotIndicator
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «###auto pivot2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 отображает на графике ценовые уровни, рассчитанные по данным дневного, недельного и месячного таймфреймов. Он строит линии Pivot и уровни поддержки/сопротивления (S1-S3, R1-R3) для каждого из выбранных периодов, а также подписи к ним. Пользователь может включать или отключать отображение уровней для каждого таймфрейма независимо.
Индикатор работает в окне графика и использует исторические данные для расчёта уровней. При инициализации и на каждом тике выполняется пересчёт и перерисовка объектов. Уровни отображаются в виде горизонтальных линий с подписями, которые можно смещать по горизонтали с помощью параметров настройки.
Предусмотрена возможность учёта или игнорирования данных воскресного дня при расчёте дневных уровней. Также доступна опция сдвига линий вправо и настройка положения подписей. Индикатор не содержит торговых функций и предназначен исключительно для визуального анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| Use_Sunday_Data | Определяет, учитывать ли данные воскресного дня при расчёте дневных уровней. При отключении используется предыдущий торговый день. |
| Daily | Включает или отключает отображение дневных уровней Pivot и подписи к ним. |
| Daily_SR_Levels | Включает или отключает отображение дневных уровней поддержки и сопротивления (S1-S3, R1-R3). |
| Weekly | Включает или отключает отображение недельных уровней Pivot и подписи к ним. |
| Weekly_SR_Levels | Включает или отключает отображение недельных уровней поддержки и сопротивления (S1-S3, R1-R3). |
| Monthly | Включает или отключает отображение месячных уровней Pivot и подписи к ним. |
| Monthly_SR_Levels | Включает или отключает отображение месячных уровней поддержки и сопротивления (S1-S3, R1-R3). |
| Labels_Adjust | Задаёт горизонтальное смещение подписей уровней относительно текущего бара, выраженное в количестве периодов графика. |
| Lines_Move_to_Right | Определяет, будут ли линии уровней смещены вправо от текущего бара, а не привязаны к предыдущему дню. |
| Lines_Shift | Задаёт величину сдвига линий вправо в количестве периодов графика при включённой опции сдвига. |
Поиск по коду файла
#property indicator_chart_window
extern bool Use_Sunday_Data = true;
extern bool Daily = true;
extern bool Daily_SR_Levels = true;
extern bool Weekly = false;
extern bool Weekly_SR_Levels = false;
extern bool Monthly = false;
extern bool Monthly_SR_Levels = false;
extern int Labels_Adjust = 10;
extern bool Lines_Move_to_Right = false;
extern int Lines_Shift = 0;
double YesterdayHigh;
double YesterdayLow;
double YesterdayClose;
double Day_Price[][6];
double Pivot,S1,S2,S3,R1,R2,R3;
double WeekHigh;
double WeekLow;
double WeekClose;
double Weekly_Price[][6];
double WeekPivot,WS1,WS2,WS3,WR1,WR2,WR3;
double MonthHigh;
double MonthLow;
double MonthClose;
double Month_Price[][6];
double MonthPivot,MS1,MS2,MS3,MR1,MR2,MR3;
datetime endTime=0, startTime=0;
bool PlotFactor=false;
int init()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
switch(reason)
{
case REASON_CHARTCHANGE : break;
case REASON_CHARTCLOSE : break;
case REASON_RECOMPILE : break;
case REASON_CLOSE : break;
default :
{
DeleteObjectsByString("Line",0);
DeleteObjectsByString("Label",0);
}
}
WindowRedraw();
}
int start()
{
// код доступен только после оплаты
}
ArrayCopyRates(Day_Price,(Symbol()), 1440);
YesterdayHigh = Day_Price[1][3];
YesterdayLow = Day_Price[1][2];
YesterdayClose = Day_Price[1][4];
Pivot = ((YesterdayHigh + YesterdayLow + YesterdayClose)/3);
R1 = (2*Pivot)-YesterdayLow;
S1 = (2*Pivot)-YesterdayHigh;
R2 = Pivot+(R1-S1);
S2 = Pivot-(R1-S1);
R3 = (YesterdayHigh + (2*(Pivot-YesterdayLow)));
S3 = (YesterdayLow - (2*(YesterdayHigh-Pivot)));
if (Use_Sunday_Data == false)
{
while (DayOfWeek() == 1)
{
YesterdayHigh = Day_Price[2][3];
YesterdayLow = Day_Price[2][2];
YesterdayClose = Day_Price[2][4];
Pivot = ((YesterdayHigh + YesterdayLow + YesterdayClose)/3);
R1 = (2*Pivot)-YesterdayLow;
S1 = (2*Pivot)-YesterdayHigh;
R2 = Pivot+(R1-S1);
S2 = Pivot-(R1-S1);
R3 = (YesterdayHigh + (2*(Pivot-YesterdayLow)));
S3 = (YesterdayLow - (2*(YesterdayHigh-Pivot)));
break;
}
}
ArrayCopyRates(Weekly_Price, Symbol(), 10080);
WeekHigh = Weekly_Price[1][3];
WeekLow = Weekly_Price[1][2];
WeekClose = Weekly_Price[1][4];
WeekPivot = ((WeekHigh + WeekLow + WeekClose)/3);
WR1 = (2*WeekPivot)-WeekLow;
WS1 = (2*WeekPivot)-WeekHigh;
WR2 = WeekPivot+(WR1-WS1);
WS2 = WeekPivot-(WR1-WS1);
WS3 = (WeekLow - (2*(WeekHigh-WeekPivot)));
WR3 = (WeekHigh + (2*(WeekPivot-WeekLow)));
ArrayCopyRates(Month_Price, Symbol(), 43200);
MonthHigh = Month_Price[1][3];
MonthLow = Month_Price[1][2];
MonthClose = Month_Price[1][4];
MonthPivot = ((MonthHigh + MonthLow + MonthClose)/3);
MR1 = (2*MonthPivot)-MonthLow;
MS1 = (2*MonthPivot)-MonthHigh;
MR2 = MonthPivot+(MR1-MS1);
MS2 = MonthPivot-(MR1-MS1)Показано первые 50% кода (символов: 5012)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.