gartley reversal auto.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «gartley reversal auto.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор анализирует структуру цены, используя точки разворота, обнаруженные через встроенный индикатор ZigZag. На основе найденных ключевых точек рассчитываются и отображаются горизонтальные уровни — границы диапазона разворота, потенциальные точки разворота и целевые уровни. Каждый уровень отрисовывается на графике в виде горизонтальной линии с текстовой меткой, показывающей числовое значение.
Параметры позволяют настроить количество анализируемых баров, чувствительность ZigZag, размер шрифта меток и поведение удаления графических объектов при деинициализации индикатора. Переключатель maf определяет, используется ли дополнительная логика поиска точек разворота.
Индикатор работает в окне графика MetaTrader 4 и выводит результат не в виде буферов на цене, а через графические объекты (горизонтальные линии и текстовые аннотации), что делает его удобным для визуального анализа ключевых ценовых уровней.
Настройки программы
| Настройка | Описание |
|---|---|
| BarsCount | Количество баров — Количество баров, анализируемых при поиске точек разворота. |
| depth | Глубина ZigZag — Параметр depth для индикатора ZigZag, задающий минимальную глубину разворота. |
| deviation | Отклонение ZigZag — Параметр deviation для индикатора ZigZag, задающий допустимое отклонение в пунктах. |
| backstep | Backstep ZigZag — Параметр backstep для индикатора ZigZag, задающий количество баров для пропуска при поиске разворотов. |
| maf | Режим поиска точек — Переключатель логики поиска точек разворота: 0 — без дополнительного условия, 1 — с использованием дополнительной проверки. |
| info | Информация — Параметр информационного вывода. |
| FontSize | Размер шрифта — Размер шрифта текстовых меток на графике. |
| DeleteType | Тип удаления объектов — Режим удаления графических объектов при деинициализации: 0 — удалить все объекты, 1 — оставить все, 2 — оставить целевые уровни, 3 — оставить целевые и разворотные уровни. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
extern int BarsCount=300;
extern int depth=16;
extern int deviation=5;
extern int backstep=3;
extern int maf=1;
extern int info=0;
extern int FontSize=8;
extern int DeleteType=0; /*0-delete all objects, 1-keet all*, 2-keep targets, 3-keep targets and reverses*/
double PointX=0;
double PointA=0;
double PointB=0;
double PointC=0;
double PointD=0;
double ReversalRangeMax=0;
double ReversalRangeMin=0;
double D_Revers1=0;
double D_Revers3=0;
double D_Revers2=0;
double Target1=0;
double Target3=0;
double Target2=0;
double zz=0;
double zzp=0;
int shift=0, Bars_=200, k=0, cnt=0;
bool ft=true;
bool ftp=true;
double RevPoint[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if (DeleteType==0)
{
ObjectDelete("D_Revers1");
ObjectDelete("D_Revers2");
ObjectDelete("D_Revers3");
ObjectDelete("D_Revers1_txt");
ObjectDelete("D_Revers2_txt");
ObjectDelete("D_Revers3_txt");
ObjectDelete("ReversalRangeMax");
ObjectDelete("ReversalRangeMin");
ObjectDelete("ReversalRangeMax_txt");
ObjectDelete("ReversalRangeMin_txt");
ObjectDelete("Target1");
ObjectDelete("Target2");
ObjectDelete("Target3");
ObjectDelete("Target1_txt");
ObjectDelete("Target2_txt");
ObjectDelete("Target3_txt");
}
if (DeleteType==2)
{
ObjectDelete("D_Revers1");
ObjectDelete("D_Revers2");
ObjectDelete("D_Revers3");
ObjectDelete("D_Revers1_txt");
ObjectDelete("D_Revers2_txt");
ObjectDelete("D_Revers3_txt");
ObjectDelete("ReversalRangeMax");
ObjectDelete("ReversalRangeMin");
ObjectDelete("ReversalRangeMax_txt");
ObjectDelete("ReversalRangeMin_txt");
}
if (DeleteType==3)
{
ObjectDelete("D_Revers1");
ObjectDelete("D_Revers2");
ObjectDelete("D_Revers3");
ObjectDelete("D_Revers1_txt");
ObjectDelete("D_Revers2_txt");
ObjectDelete("D_Revers3_txt");
}
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int limit; // ???????????? ????????
if (counted_bars==0) limit=Bars-1; // ??????????? ????? ??? ???, ????? ??????? ? ?????? ??????
if (counted_bars>0) limit=Bars-counted_bars-1; // ?????? ?? ????? ????????? ????? ??????????
if (ftp) {Comment(" "); ftp=false; }
for(shift=limit; shift>0; shift--)
{
if (maf==0) {PointX=0;}
zz=iCustom(NULL, 0, "ZigZag",depth,deviation,backstep,0,shift);
if ((ft) || (zz!=0))
{
k=0;
for(cnt = shift; cnt<BarsCount; cnt++)
{
zzp=iCustom(NULL, 0, "ZigZagE",depth,deviation,backstep,0,cnt);
if ((zzp!=0) && (k==4) && (maf==1)) {PointX=zzp;RevPoint[cnt]=zzp;break;}
if ((zzp!=0) && (k==3)) {k=k+1;PointA=zzp;RevPoint[cnt]=zzp;}
if ((zzp!=0) && (k==2)) {k=k+1;PointB=zzp;RevPoint[cnt]=zzp;}
if ((zzp!=0) && (k==1)) {k=k+1;PointC=zzp;RevPoint[cnt]=zzp;}
if ((zzp!=0) && (k==0)) {k=k+1;PointD=zzp;RevPoint[cnt]=zzp;}
}
}
}
ReversalRangeMax=NormalizeDouble(PointA+(PointX-PointA)*0.786,4);
ReversalRangeMin=NormalizeDouble(PointA+(PointX-PointA)*0.618,4);
D_Revers1=NormalizeDouble(PointC+(PointB-PointA),4);
D_Revers3=NormalizeDouble(PointC+(PointB-PointC)*1.618,4);
D_Revers2=NormalizeDouble(PointC+(PointB-PointC)*1.272,4);
Target1=NormalizeDouble(PointD-(PointD-PointC)*0.618,4);
Target3=PointD-(PointB-PointC);
Target2=NormalizeDouble(PointD-(PointD-PointC)*0.786,4);
if ((zz!=0) || (ft))
{
if (ObjectFind("ReversalRangeMax") != 0)
{
ObjectCreate("ReversalRangeMax",OBJ_HLINE,0,Time[25],ReversalRangeMax,Time[1],ReversalRangeMax);
ObjectCreate("ReversalRangeMax_txt",OBJ_TEXT,0,Time[40],ReversalRangeMax,Time[1],ReversalRangeMax);
ObjectSet("ReversalRangeMax",OBJPROP_COLOR,Red);
ObjectSet("ReversalRangeMax",OBJPROP_WIDTH,1);
ObjectSet("ReversalRangeMax",OBJPROP_STYLE,STYLE_SOLID);
ObjectSetText("ReversalRangeMax_txt", "ReversalRangeMax "+DoubleToStr(ReversalRangeMax,4), FontSize, "Tahoma", Red);
}
else
{
ObjectMove("ReversalRangeMax", 0,Time[1],ReversalRangeMax);
ObjectMove("ReversalRangeMax_txt", 0,Time[40],ReversalRangeMax);
}
if (ObjectFind("ReversalRangeMin") != 0)
{
ObjectCreate("ReversalRangeMin",OBJ_HLINE,0,Time[25],ReversalRangeMin,Time[1],ReversalRangeMin);
ObjectCreate("ReversalRangeMin_txt",OBJ_TEXT,0,Time[40Показано первые 50% кода (символов: 7475)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.