![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте,
Это мое первое сообщение здесь, так как я не смог найти это с помощью быстрого поиска.
Я использую индикатор ZigZag на нескольких таймфреймах. Я установил параметры так, чтобы он отслеживал нужные максимумы/минимумы, но я хотел бы, чтобы значения максимумов/минимумов отображались на графике в виде текста.
Я сделал скриншот того, что я хочу (после ручного добавления текста, чтобы показать, что я ищу).
Возможно ли, чтобы текст P1, P2, P3 и соответствующие им значения максимума/минимума EUR/USD выводились на график таким образом?
Я понимаю, что значение P3 будет меняться в реальном времени, так как цена продолжает двигаться вверх или вниз.
Мне нужны только последние 3 значения, более старые значения не важны.
Спасибо за любой совет или предложение. Я не очень разбираюсь в коде, но, возможно, я смогу заставить это работать, если это не слишком сложная работа!Вам необходимо опубликовать код, который вы используете
Я использую стандартный индикатор ZigZag. Однако я размещаю код, как просили:
//+------------------------------------------------------------------+
//| Zigzag.mq4 |
//| Copyright ฉ 2005-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
//---- indicator buffers
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
int level=3; // recounting's depth
bool downloadhistory=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);
//---- indicator short name
IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars = IndicatorCounted();
int limit,counterZ,whatlookfor;
int shift,back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;
if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-ExtDepth;
downloadhistory=true;
}
if (counted_bars>0)
{
while (counterZ<level && i<100)
{
res=ZigzagBuffer;
if (res!=0) counterZ++;
i++;
}
i--;
limit=i;
if (LowMapBuffer!=0)
{
curlow=LowMapBuffer;
whatlookfor=1;
}
else
{
curhigh=HighMapBuffer;
whatlookfor=-1;
}
for (i=limit-1;i>=0;i--)
{
ZigzagBuffer=0.0;
LowMapBuffer=0.0;
HighMapBuffer=0.0;
}
}
for(shift=limit; shift>=0; shift--)
{
val=Low;
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=LowMapBuffer[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;
//--- high
val=High;
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=HighMapBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;
}
// final cutting
if (whatlookfor==0)
{
lastlow=0;
lasthigh=0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for (shift=limit;shift>=0;shift--)
{
res=0.0;
switch(whatlookfor)
{
case 0: // look for peak or lawn
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=High[shift];
lasthighpos=shift;
whatlookfor=-1;
ZigzagBuffer[shift]=lasthigh;
res=1;
}
if (LowMapBuffer[shift]!=0)
{
lastlow=Low[shift];
lastlowpos=shift;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;
res=1;
}
}
break;
case 1: // look for peak
if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=shift;
lastlow=LowMapBuffer[shift];
ZigzagBuffer[shift]=lastlow;
res=1;
}
if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=HighMapBuffer[shift];
lasthighpos=shift;
ZigzagBuffer[shift]=lasthigh;
whatlookfor=-1;
res=1;
}
break;
case -1: // look for lawn
if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lasthighpos]=0.0;
lasthighpos=shift;
lasthigh=HighMapBuffer[shift];
ZigzagBuffer[shift]=lasthigh;
}
if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=LowMapBuffer[shift];
lastlowpos=shift;
ZigzagBuffer[shift]=lastlow;
whatlookfor=1;
}
break;
default: return;
}
}
return(0);
}
//+------------------------------------------------------------------+
зигзаг фибо (нет алерта или алерт настроен на true или false)
Некоторые другие индикаторы зигзага https://www.mql5.com/en/forum/178335/page14
Здесь действительно проводится большая работа, и я очень благодарен всем ребятам, которые так или иначе вносят свой вклад в работу форума. Я здесь всего несколько дней, и я доволен тем, что я видел до сих пор.
Просто за помощью,
1) есть ли зигзаг с индикатором уровня Фибоначчи (без предупреждения или предупреждение может быть ложным или
истинным)?
2) серьезно ищу любой индикатор, который будет показывать точную или приблизительную точку разворота всякий раз, когда стохастический осцилятор находится в области перекупленности/перепроданности. То есть, когда стохастик по любому параметру входит в область перекупленности/перепроданности на любом таймфрейме, что-то другое (другой индикатор) будет указывать на уровень, на котором рынок/цена, скорее всего, развернется.
Буду рад за помощь.
Здесь действительно проводится большая работа, и я очень благодарен всем ребятам, которые так или иначе вносят свой вклад в работу форума. Я здесь всего несколько дней, и я доволен тем, что я видел до сих пор.
Просто за помощью,
1) существует ли индикатор зигзаг с уровнем фибоначчи (без предупреждения или предупреждение может быть ложным или
истинным)?
2) серьезно ищу любой индикатор, который будет показывать точную или приблизительную точку разворота каждый раз, когда стохастический осцилятор находится в области перекупленности/перепроданности. То есть, когда стохастик любого параметра входит в область перекупленности/перепроданности на любом таймфрейме, что-то другое (другой индикатор) будет указывать на уровень, на котором рынок/цена, скорее всего, развернется.
Я буду рад помощи.Возможно, что-то из этой темы может вам понравиться
https://www.mql5.com/en/forum/173172
https://www.mql5.com/en/forum/173439
https://www.mql5.com/en/forum/173588
Здесь действительно проводится большая работа, и я очень благодарен всем ребятам, которые так или иначе вносят свой вклад в работу форума. Я здесь всего несколько дней, и я доволен тем, что я видел до сих пор.
Просто за помощью,
1) существует ли индикатор зигзаг с уровнем фибоначчи (без предупреждения или предупреждение может быть ложным или
истинным)?
2) серьезно ищу любой индикатор, который будет показывать точную или приблизительную точку разворота каждый раз, когда стохастический осцилятор находится в области перекупленности/перепроданности. То есть, когда стохастик любого параметра входит в область перекупленности/перепроданности на любом таймфрейме, что-то другое (другой индикатор) будет указывать на уровень, на котором рынок/цена, скорее всего, развернется.
Я буду рад помощи.Я нашел только один, который всегда верен, но, к сожалению, медленный.
Здравствуйте, я видел здесь один индикатор, но он не полный. У меня есть полный, но я не знаю некоторых слов в нем, не мог бы кто-нибудь оказать мне услугу и перевести его на английский язык в целом. Большая благодарность!!!!!
Здравствуйте
см. страницу 1 этой темы
Спасибо всем за размещение всех индикаторов зигзага, суммируя все, кажется, что есть в основном 3 типа зигзага вокруг
1. Индикаторы, основанные на оригинальном зигзаге
2. Индикаторы, основанные на зигзаге Динаполи, т.е. High/Low зигзаг
3. Зигзаг без запаздывания, индикаторы ганна и свинга - своего рода компромисс между ними.
Все индикаторы, основанные на зигзаге, перерисовываются, и вы можете их заметить, потому что все они содержат оригинальную кодовую базу, включающую все указатели зигзага, зигзаг в точках разворота.
Индикаторы на основе dinapoli обычно включают оператор 'Barn' как внешний int. Эти индикаторы не перерисовываются и очень надежны, проблема в том, что они работают на истории и очень медленно формируют следующую ногу.
Non lag gann и swing кажутся зигзагом с некоторыми вариациями кода типа Dinapoli, они в основном не перерисовываются, но иногда перерисовываются.
Что ж, для меня это все еще возвращение к чертежной доске, и я уверен, что еще не все потеряно.
или сформулировать это следующим образом
существует три типа zz:
1. основанный на оригинальном zz
2. основанный на не оригинальном
3.другой
вот еще один:
или выразить это следующим образом
существует три типа zz:
1. на основе оригинального zz
2. основанный на неоригинальном
3.другой
![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
вот еще:Это лаконично![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
вот еще один: zz с каналом
Здравствуйте, обратитесь к странице 1 этой темы
Спасибо! Я знаю это, но тот был не полностью, некоторая часть кода каким-то образом исчезла! То, что я хочу, это интегрированный один