![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет всем,
Я тоже искал ответ, как получить эти высокие и низкие значения из индикатора ZigZag. Поскольку я не нашел решения, я запрограммировал его сам, и я делюсь им, чтобы другие люди, которые находят ту же проблему, уже имели решение.
Первая проблема заключается в том, что индикатор ZigZag перерисовывается, поэтому получение последнего максимума или минимума требует небольшой хитрости.
Чтобы получить другие значения, нужно добавить этот код в советник.
Обратите внимание, что цикл начинается с i=2, 10000 - это количество максимумов или минимумов, которое вам нужно, 10.000 - это просто пример.
Значения будут сохранены в массиве temp, в котором
Позиция 0 сохраняет последний максимум или минимум, построенный на графике, позиция 1 сохраняет предыдущий максимум или минимум и так далее...
for(int i=2;i<10000;i++)
{
zo=iCustom(Symbol(),PERIOD_M15, "ZigZag",0,i);
if(zo!=0) // пока ZigZag не достиг более высокого максимума, или пока не выполнены условия deapth, deviation, etc, индикатор ZigZag равен нулю, поэтому нам нужно отфильтровать эти пустые значения.
{
temp[k]=zo; // максимумы и минимумы сохраняются в массиве temp[]
k++;
}
Теперь, чтобы получить значение последней волны, нужно просто использовать текущую цену, сравнивая ее со значением, сохраненным в позиции 0,
if (Ask>temp[0]) означает, что последнее значение было низким, поэтому для получения расстояния нужно просто сделать last_wave=Ask-temp[0]
иначе означает, что последнее значение было высоким, чтобы получить расстояние, сделайте last_wave= temp[0]-Ask
если вам не нужно знать, было ли это низкое или высокое значение, и вам просто нужно расстояние, то вы просто делаете last_wave= MathAbs(Ask-temp[0]) (расстояние всегда положительно, не так ли? ;) )
вот и все, надеюсь, помогло.
удачи в программировании!
Привет всем,
Я тоже искал ответ, как получить эти высокие и низкие значения из индикатора ZigZag. Поскольку я не нашел решения, я запрограммировал его сам, и я делюсь им, чтобы другие люди, которые находят ту же проблему, уже имели решение.
Первая проблема заключается в том, что индикатор ZigZag перерисовывается, поэтому получение последнего максимума или минимума требует небольшой хитрости.
Чтобы получить другие значения, нужно добавить этот код в советник.
Обратите внимание, что цикл начинается с i=2, 10000 - это количество максимумов или минимумов, которое вам нужно, 10.000 - это просто пример.
Значения будут сохранены в массиве temp, в котором
Позиция 0 сохраняет последний максимум или минимум, построенный на графике, позиция 1 сохраняет предыдущий максимум или минимум и так далее...
<КОД УДАЛЕН>
Пожалуйста, прочитайте другие сообщения, прежде чем писать. ... .
Пожалуйста, отредактируйте ваше сообщение ... пожалуйста, используйте кнопкуSRC для размещения кода:Как использовать кнопку SRC.
Пожалуйста, прочитайте другие сообщения, прежде чем писать... .
Пожалуйста, отредактируйте свое сообщение ... пожалуйста, используйте кнопкуSRC для размещения кода:Как использовать кнопку SRC.
Уважаемый Raptor,
Я действительно прочитал другие сообщения, хотя они предоставили решение, это было просто лучшим для меня, так как мы создаем объекты и удаляем их, где, по моему мнению, и имеет код совместного показывает, нет необходимости.
Но если вы не считаете мое сообщение полезным, вы всегда можете удалить его, вы же модератор, верно? ;)
Уважаемый Raptor,
Я прочитал другие сообщения, хотя там и было предложено решение, для меня оно было просто лучшим, так как мы создаем объекты и удаляем их там, где, по моему мнению, и показывает код, которым поделился, нет необходимости.
Уважаемый Raptor,
Я прочитал другие сообщения, хотя там и было предложено решение, просто для меня оно было лучшим, так как мы создаем объекты и удаляем их там, где, по моему мнению, и показывает код, которым я поделился, нет необходимости.
Но если вы не считаете мой пост полезным, вы всегда можете удалить его, вы же модератор, верно? ;)
Смотрите https://www.mql5.com/en/code/10920
то же самое, что и ZigZag
первый буфер обычный ZigZag
с последними двумя буферами у вас есть максимумы и минимумы.
Спасибо Raptor, действительно пропустил этот пост, это даже облегчает задачу!
Здравствуйте, gjol,
подскажите пожалуйста, как получить стохастическое значение из зигзагообразной цены p0,p1,p2,p3,p4,p5?
а если я хочу узнать три последних значения?
Тогда читайте дальше, чтобы узнать следующие два значения.