Если программно не получается, поищите вручную ))
Ну а по сути: "общий экстремум" - это максимум и минимум на одном баре? Насколько я помню, в ZigZag такое невозможно. Покажите на скрине пример такого "общего экстремума".
Если программно не получается, поищите вручную ))
Ну а по сути: "общий экстремум" - это максимум и минимум на одном баре? Насколько я помню, в ZigZag такое невозможно. Покажите на скрине пример такого "общего экстремума".
нет, у меня два ZZ, два индикатора.. Два пика имел ввиду на одном баре или две впадины и присваивать экстремум в переменную double и время в datetime переменную
для меня ZZ самый непривычный индикатор, в цикле i = № это номер узла, где 0 незавершенный, а 1 это не прошлый бар, а прошлый сформированный уже узел, но мне нужен 0, но сходящий оба пика или дна в одном экстремуме
для меня ZZ самый непривычный индикатор, в цикле i = № это номер узла, где 0 незавершенный, а 1 это не прошлый бар, а прошлый сформированный уже узел, но мне нужен 0, но сходящий оба пика или дна в одном экстремуме
Как раз наоборот. В цикле производится перебор именно баров по индексам. Причем экстремум будет не на каждом баре. Поэтому задача сводится к тому, чтобы перебрать в цикле бары и узнать, на каких из них есть экстремумы ZZ. Когда экстремум найден, определяется его тип: максимум или минимум. Это если стандартный ZZ. А вот с ZZColor даже немного проще, т. к. там для максимумов и минимумов определены отдельные буферы. Но для программного поиска ZZColor - излишен, достаточно стандартного ZZ.
Если нужно найти два совпадающих экстремума от копий индикатора с разными параметрами, то реализация та же самая: ведем поиск по барам до тех пор, пока не найдем одинаковый тип экстремума от двух ZZ на одном баре.
Как раз наоборот. В цикле производится перебор именно баров по индексам. Причем экстремум будет не на каждом баре. Поэтому задача сводится к тому, чтобы перебрать в цикле бары и узнать, на каких из них есть экстремумы ZZ. Когда экстремум найден, определяется его тип: максимум или минимум. Это если стандартный ZZ. А вот с ZZColor даже немного проще, т. к. там для максимумов и минимумов определены отдельные буферы. Но для программного поиска ZZColor - излишен, достаточно стандартного ZZ.
Если нужно найти два совпадающих экстремума от копий индикатора с разными параметрами, то реализация та же самая: ведем поиск по барам до тех пор, пока не найдем одинаковый тип экстремума от двух ZZ на одном баре.
Спасибо, я видимо совсем попутал все с этим ZZ )
Простите за наглость, однако, не могли бы вы подсказать, как реализовать этот момент в онтик ?
Спасибо, я видимо совсем попутал все с этим ZZ )
Простите за наглость, однако, не могли бы вы подсказать, как реализовать этот момент в онтик ?
Я так понял, Вы уже пытались это делать. Можете привести отрывок кода, в котором производите поиск двух одинаковых экстремумов? По коду и будет понятно, что делаете не так.
если стандартный ZZ. А вот с ZZColor даже немного проще, т. к. там для максимумов и минимумов определены отдельные буферы
Практика показала, что оба "зигзага" не вполне зигзаги. У ZZ могут встретится две вершины на одном баре но в разных буферах;
у обоих вершина может не быть экстремумом (например быть выше предыдущей и ниже следующей, эдак посередине)
вручную это просто вызывает эмоции, а для робота это смерть
Я так понял, Вы уже пытались это делать. Можете привести отрывок кода, в котором производите поиск двух одинаковых экстремумов? По коду и будет понятно, что делаете не так.
Я с психу стер, не могу именно тот код восстановить Ctrl+Z. Да функция у меня на новом баре вызывалась просто в onTick(), но функция была простой, там просто использовались 4 глобальные переменные 2 ценовые переменные статические и 2 временные статические переменные. и в цикле искал с for( i = 0; i < 30; i++) { поиск пиков на одном баре, ниже поиск впадин на одном баре и записывал это в переменные}.. А, ну и в начале перед циклом копирование заданние массива как временного ряда и копирование буферов
Что-то вроде такого (подразумевается, что в OnInit получены хендлы на каждый из ZZ, в коде они названы nHandleZZ1 и nHandleZZ2):
int nTotal = iBars(NULL, PERIOD_CURRENT); double arrfZZ1[1], arrfZZ2[1]; double fDelta = Point() / 10.0; for (int i = 0; i < nTotal; ++i) { if (CopyBuffer(nHandleZZ1, 0, i, 1, arrfZZ1) <= 0) { // ошибка } if (arrfZZ1[0] == 0.0) continue; if (CopyBuffer(nHandleZZ2, 0, i, 1, arrfZZ2) <= 0) { // ошибка } if (arrfZZ2[0] == 0.0) continue; if (fabs(arrfZZ1[0] - arrfZZ2[0]) < fDelta) { Print("Общий экстремум ", arrfZZ1[0], ", время: ", iTime(NULL, PERIOD_CURRENT, i)); break; } }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, товарищи разработчики и трейдеры. Использую в советнике стандартный индикатор ZigzagColor
Я не могу найти программно в функции поиск общего экстремума на одном баре (0 экстремум - "висячий").
Помогите, пожалуйста.