multiplepivotsv2.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multiplepivotsv2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для отображения различных типов точек поворота (пивотов) на графике цены. Он рассчитывает уровни на основе данных дневных максимумов, минимумов и закрытий, а затем отрисовывает горизонтальные линии и текстовые метки на графике.
Поддерживает несколько методов расчёта пивотов: стандартные, Камарила, Фибоначчи и средние пивоты. Каждый метод может быть включён или отключён отдельно через настройки.
Индикатор работает на таймфреймах вплоть до дневного и корректирует сдвиг по Гринвичу для корректного определения торговых дней. Обрабатывает особенности перехода выходных дней (воскресенье/понедельник).
Настройки программы
| Настройка | Описание |
|---|---|
| GMTshift | Сдвиг часового пояса — Сдвиг часового пояса в часах для корректного определения торговых дней |
| LabelShift | Сдвиг меток — Сдвиг в барах для позиции текстовых меток на графике |
| LineShift | Сдвиг линий — Сдвиг в барах для позиции горизонтальных линий на графике |
| Pivot | Основной пивот — Включает или отключает отображение основного пивота |
| PivotColor | Цвет линии пивота — Цвет горизонтальной линии основного пивота |
| PivotFontColor | Цвет шрифта пивота — Цвет шрифта метки основного пивота |
| PivotFontSize | Размер шрифта пивота — Размер шрифта метки основного пивота |
| CamarillaPivots | Пивоты Камарила — Включает или отключает отображение пивотов Камарила |
| UseH1H2L1L2 | Уровни H1/H2/L1/L2 — Включает или отключает отображение дополнительных уровней H1, H2, L1, L2 у пивотов Камарила |
| CamFontColor | Цвет шрифта Камарила — Цвет шрифта меток пивотов Камарила |
| CamFontSize | Размер шрифта Камарила — Размер шрифта меток пивотов Камарила |
| FibPivots | Пивоты Фибоначчи — Включает или отключает отображение пивотов Фибоначчи |
| FibColor | Цвет линий Фибоначчи — Цвет горизонтальных линий пивотов Фибоначчи |
| FibFontColor | Цвет шрифта Фибоначчи — Цвет шрифта меток пивотов Фибоначчи |
| FibFontSize | Размер шрифта Фибоначчи — Размер шрифта меток пивотов Фибоначчи |
| StandardPivots | Стандартные пивоты — Включает или отключает отображение стандартных пивотов |
| StandardFontColor | Цвет шрифта стандартных пивотов — Цвет шрифта меток стандартных пивотов |
| StandardFontSize | Размер шрифта стандартных пивотов — Размер шрифта меток стандартных пивотов |
| SupportColor | Цвет линий поддержки — Цвет линий поддержки в стандартных пивотах |
| ResistanceColor | Цвет линий сопротивления — Цвет линий сопротивления в стандартных пивотах |
| MidPivots | Средние пивоты — Включает или отключает отображение средних пивотов |
| MidPivotColor | Цвет средних пивотов — Цвет линий и меток средних пивотов |
| MidFontSize | Размер шрифта средних пивотов — Размер шрифта меток средних пивотов |
Поиск по коду файла
#property indicator_chart_window
extern int GMTshift=0;
extern int LabelShift=20;
extern int LineShift = 40;
extern bool Pivot = true;
extern color PivotColor = Yellow;
extern color PivotFontColor = White;
extern int PivotFontSize = 8;
extern bool CamarillaPivots = false;
extern bool UseH1H2L1L2 = false;
extern color CamFontColor = White;
extern int CamFontSize = 10;
extern bool FibPivots = false;
extern color FibColor = Sienna;
extern color FibFontColor = White;
extern int FibFontSize = 8;
extern bool StandardPivots = true;
extern color StandardFontColor = White;
extern int StandardFontSize = 8;
extern color SupportColor = White;
extern color ResistanceColor = FireBrick;
extern bool MidPivots = false;
extern color MidPivotColor = White;
extern int MidFontSize = 8;
datetime LabelShiftTime, LineShiftTime;
double P, H1, H2, H3, H4, H5;
double L1, L2, L3, L4, L5;
double LastHigh,LastLow,x;
double day_high;
double day_low;
double yesterday_open;
double today_open;
double cur_day;
double prev_day;
double D1=0.091667;
double D2=0.183333;
double D3=0.2750;
double D4=0.55;
double yesterday_high=0;
double yesterday_low=0;
double yesterday_close=0;
double r3=0;
double r2=0;
double r1=0;
double p=0;
double s1=0;
double s2=0;
double s3=0;
double R;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if (CamarillaPivots)
{
ObjectDelete("H5 Label");
ObjectDelete("H5 Line");
ObjectDelete("H4 Label");
ObjectDelete("H4 Line");
ObjectDelete("H3 Label");
ObjectDelete("H3 Line");
if (UseH1H2L1L2)
{
ObjectDelete("H2 Label");
ObjectDelete("H2 Line");
ObjectDelete("H1 Label");
ObjectDelete("H1 Line");
ObjectDelete("L1 Label");
ObjectDelete("L1 Line");
ObjectDelete("L2 Label");
ObjectDelete("L2 Line");
}
ObjectDelete("L3 Label");
ObjectDelete("L3 Line");
ObjectDelete("L4 Label");
ObjectDelete("L4 Line");
ObjectDelete("L5 Label");
ObjectDelete("L5 Line");
}
if (FibPivots)
{
ObjectDelete("FibR1 Label");
ObjectDelete("FibR1 Line");
ObjectDelete("FibR2 Label");
ObjectDelete("FibR2 Line");
ObjectDelete("FibR3 Label");
ObjectDelete("FibR3 Line");
ObjectDelete("FibS1 Label");
ObjectDelete("FibS1 Line");
ObjectDelete("FibS2 Label");
ObjectDelete("FibS2 Line");
ObjectDelete("FibS3 Label");
ObjectDelete("FibS3 Line");
}
if (Pivot)
{
ObjectDelete("P Label");
ObjectDelete("P Line");
}
if (StandardPivots)
{
ObjectDelete("R1 Label");
ObjectDelete("R1 Line");
ObjectDelete("R2 Label");
ObjectDelete("R2 Line");
ObjectDelete("R3 Label");
ObjectDelete("R3 Line");
ObjectDelete("S1 Label");
ObjectDelete("S1 Line");
ObjectDelete("S2 Label");
ObjectDelete("S2 Line");
ObjectDelete("S3 Label");
ObjectDelete("S3 Line");
}
if (MidPivots)
{
ObjectDelete("M5 Label");
ObjectDelete("M5 Line");
ObjectDelete("M4 Label");
ObjectDelete("M4 Line");
ObjectDelete("M3 Label");
ObjectDelete("M3 Line");
ObjectDelete("M2 Label");
ObjectDelete("M2 Line");
ObjectDelete("M1 Label");
ObjectDelete("M1 Line");
ObjectDelete("M0 Label");
ObjectDelete("M0 Line");
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
double Q=0,S=0,R=0,M2=0,M3=0,S1=0,R1=0,M1=0,M4=0,S2=0,R2=0,M0=0,M5=0,S3=0,R3=0,nQ=0,nD=0,D=0;
int cnt=720;
if(Period() > 1440)
{
Print("Error - Chart period is greater than 1 day.");
return(-1); // then exit
}
day_high=0;
day_low=0;
yesterday_open=0;
today_open=0;
cur_day=0;
prev_day=0;
while (cnt!= 0)
{
if (TimeDayOfWeek(Time[cnt]) == 0)
{
cur_day = prev_day;
}
else
{
cur_day = TimeDay(Time[cnt]- (GMTshift*3600));
}
if (prev_day != cur_day)
{
yesterday_close = Close[cnt+1];
today_open = Open[cnt];
yesterday_high = day_high;
yesterday_low = day_low;
day_high = High[cnt];
day_low = Low[cnt];
prev_day = cur_day;
}
if (High[cnt]>day_high)
{
day_high = High[cnt];
}
if (Low[cnt]<day_low)
{
day_low = Low[cnt];
}
cnt--;
}
D = (day_high - day_low);
Q = (yesterday_high - yesterday_low);
P = (yesterday_high + yesterday_low + yesterday_close)/3;//Pivot
if (CamarillaPivots)
{
H5 = (yesterday_high/yesterday_low)*yesterday_close;
H4 = ((yesterday_high - yesterday_low)* D4) + yesterday_close;
H3 = ((yesterday_high - yesterday_low)* D3) + yesterday_close;
H2 = ((yesterday_high - yesterday_low) * D2) + yesterday_close;
H1 = ((yesterday_high - yesterday_low) * D1) + yesterday_close;
L1 = yesterday_close - ((yesterday_high - yesterday_low)*(D1));
L2 = yesterday_close - ((yesterday_high - yesterday_low)*(D2));
L3 = yesterday_close - ((yesterday_high - yesterday_low)*(D3));
L4 = yesterday_close - ((yesterday_high - yesterday_low)*(D4));
L5 = yesterday_close - (H5 - yesterday_close);
}
if (FibPivots)
{
R = yesterday_high - yesterday_low;//range
r1 = P + (R * 0.38);
r2 = P + (R * 0.62);
r3 = P + (R * 0.99);
s1 = P - (R * 0.38);
s2 = P - (R * 0.62);
s3 = P - (R * 0.99);
}
if (StandardPivots)
{
R1 = (2*P)-yesterday_low;
S1 = (2*P)-yesterday_high;
R2 = P-S1+R1;
S2 = P-R1+S1;
R3 = (2*P)+(yesterday_high-(2*yesterday_low));
S3 = (2*P)-((2* yesterday_high)-yesterday_low);
}
if (MidPivots && StandardPivots)
{
M0 = (S2+S3)/2;
M1 = (S1+S2)/2;
M2 = (P+S1)/2;
M3 = (P+R1)/2;
M4 = (R1+R2)/2;
M5 = (R2+R3)/2;
}
if (Q > 5)
{
nQ = Q;
}
else
{
nQ = Q*10000;
}
if (D > 5)
{
nD = D;
}
else
{
nD = D*10000;
}
if (StringSubstr(Symbol(),3,3)=="JPY")
{
nQ=nQ/100;
nD=nD/100;
}
Comment("High= ",yesterday_high," Previous Days Range= ",nQ,"\nLow= ",yesterday_low," Current Days Range= ",nD,"\nClose= ",yesterday_close);
LabelShiftTime = Time[LabelShift];
LineShiftTime = Time[LineShift];
if (Pivot)
{
if(ObjectFind("P label") != 0)
{
ObjectCreate("P label", OBJ_TEXT, 0, LabelShiftTime, P);
ObjectSetText("P label", "Pivot", PivotFontSize, "Arial", PivotFontColor);
}
else
{
ObjectMove("P label", 0, LabelShiftTime, P);
}
if(ObjectFind("P line") != 0)
{
ObjectCreate("P line", OBJ_HLINE, 0, LineShiftTime, P);
ObjectSet("P line", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("P line", OBJPROP_COLOR, PivotColor);
}
else
{
ObjectMove("P line", 0, LineShiftTime, P);
}
}
if (StandardPivots)
{
if(ObjectFind("R1 label") != 0)
{
ObjectCreate("R1 label", OBJ_TEXT, 0, LabelShiftTime, R1);
ObjectSetText("R1 label", " R1", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("R1 label", 0, LabelShiftTime, R1);
}
if(ObjectFind("R2 label") != 0)
{
ObjectCreate("R2 label", OBJ_TEXT, 0, LabelShiftTime, R2);
ObjectSetText("R2 label", " R2", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("R2 label", 0, LabelShiftTime, R2);
}
if(ObjectFind("R3 label") != 0)
{
ObjectCreate("R3 label", OBJ_TEXT, 0, LabelShiftTime, R3);
ObjectSetText("R3 label", " R3", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("R3 label", 0, LabelShiftTime, R3);
}
if(ObjectFind("S1 label") != 0)
{
ObjectCreate("S1 label", OBJ_TEXT, 0, LabelShiftTime, S1);
ObjectSetText("S1 label", "S1", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("S1 label", 0, LabelShiftTime, S1);
}
if(ObjectFind("S2 label") != 0)
{
ObjectCreate("S2 label", OBJ_TEXT, 0, LabelShiftTime, S2);
ObjectSetText("S2 label", "S2", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("S2 label", 0, LabelShiftTime, S2);
}
if(ObjectFind("S3 label") != 0)
{
ObjectCreate("S3 label", OBJ_TEXT, 0, LabelShiftTime, S3);
ObjectSetText("S3 label", "S3", StandardFontSize, "Arial", StandardFontColor);
}
else
{
ObjectMove("S3 label", 0, LabelShiftTime, S3);
}
if(ObjectFind("S1 line") != 0)
{
ObjectCreate("S1 line", OBJ_HLINE, 0, LineShiftTime, S1);
ObjectSet("S1 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("S1 line", OBJPROP_COLOR, SupportColor);
}
else
{
ObjectMove("S1 line", 0, LineShiftTime, S1);
}
if(ObjectFind("S2 line") != 0)
{
ObjectCreate("S2 line", OBJ_HLINE, 0, LineShiftTime, S2);
ObjectSet("S2 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("S2 line", OBJPROP_COLOR, SupportColor);
}
else
{
ObjectMove("S2 line", 0, LineShiftTime, S2);
}
if(ObjectFind("S3 line") != 0)
{
ObjectCreate("S3 line", OBJ_HLINE, 0, LineShiftTime, S3);
ObjectSet("S3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("S3 line", OBJPROP_COLOR, SupportColor);
}
else
{
ObjectMove("S3 line", 0, LineShiftTime, S3);
}
if(ObjectFind("R1 line") != 0)
{
ObjectCreate("R1 line", OBJ_HLINE, 0, LineShiftTime, R1);
ObjectSet("R1 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("R1 line", OBJPROP_COLOR, ResistanceColor);
}
else
{
ObjectMove("R1 line", 0, LineShiftTime, R1);
}
if(ObjectFind("R2 line") != 0)
{
ObjectCreate("R2 line", OBJ_HLINE, 0, LineShiftTime, R2);
ObjectSet("R2 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("R2 line", OBJPROP_COLOR, ResistanceColor);
}
else
{
ObjectMove("R2 line", 0, LineShiftTime, R2);
}
if(ObjectFind("R3 line") != 0)
{
ObjectCreate("R3 line", OBJ_HLINE, 0, LineShiftTime, R3);
ObjectSet("R3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet("R3 line", OBJPROP_COLOR, ResistanceColor);
}
else
{
ObjectMove("R3 line", 0, LineShiftTime, R3);
}
}
if (MidPivots && StandardPivots)
{
if(ObjectFind("M5 label") != 0)
{
ObjectCreate("M5 label", OBJ_TEXT, 0, LabelShiftTime, M5);
ObjectSetText("M5 label", " M5", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M5 label", 0, LabelShiftTime, M5);
}
if(ObjectFind("M4 label") != 0)
{
ObjectCreate("M4 label", OBJ_TEXT, 0, LabelShiftTime, M4);
ObjectSetText("M4 label", " M4", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M4 label", 0, LabelShiftTime, M4);
}
if(ObjectFind("M3 label") != 0)
{
ObjectCreate("M3 label", OBJ_TEXT, 0, LabelShiftTime, M3);
ObjectSetText("M3 label", " M3", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M3 label", 0, LabelShiftTime, M3);
}
if(ObjectFind("M2 label") != 0)
{
ObjectCreate("M2 label", OBJ_TEXT, 0, LabelShiftTime, M2);
ObjectSetText("M2 label", " M2", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M2 label", 0, LabelShiftTime, M2);
}
if(ObjectFind("M1 label") != 0)
{
ObjectCreate("M1 label", OBJ_TEXT, 0, LabelShiftTime, M1);
ObjectSetText("M1 label", " M1", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M1 label", 0, LabelShiftTime, M1);
}
if(ObjectFind("M0 label") != 0)
{
ObjectCreate("M0 label", OBJ_TEXT, 0, LabelShiftTime, M0);
ObjectSetText("M0 label", " M0", MidFontSize, "Arial", MidPivotColor);
}
else
{
ObjectMove("M0 label", 0, LabelShiftTime, M0);
}
if(ObjectFind("M5 line") != 0)
{
ObjectCreate("M5 line", OBJ_HLINE, 0, LineShiftTime, M5);
Показано первые 50% кода (символов: 17503)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.