Я в ступоре... Хочу определить несколько последних экстремумов обычного ZigZag'а:
Затем получаю в массив Zig, например, последние 10 ячеек буфера индикатора:
Смотрю полученные данные в массиве и не пойму, то все нули при имеющихся вершинах, то проскакивают вершины, но совсем не последние...
Просто таким же образом нахожу вершины Fractals и проблем нет...
Как образуются данные в буфере ЗигЗага? Что должно появлятся в нулевой ячейке, первой, второй и т.д.?
а код по фракталам можно?
ЗЫ, строятся именно вершины, стало быть в первой ячейке может быть вершина а может быть пусто.
Проще использовать ZigzagColor.
ZigzagPeakBuffer и ZigzagLawnBuffer - High и low. Соответственно, есть значение - экстремум.
Я в ступоре... Хочу определить несколько последних экстремумов обычного ZigZag'а:
Затем получаю в массив Zig, например, последние 10 ячеек буфера индикатора:
Смотрю полученные данные в массиве и не пойму, то все нули при имеющихся вершинах, то проскакивают вершины, но совсем не последние...
Просто таким же образом нахожу вершины Fractals и проблем нет...
Как образуются данные в буфере ЗигЗага? Что должно появлятся в нулевой ячейке, первой, второй и т.д.?
Конструкция которую вы описали запрашивает не 10 последних вершин зигзага, а значение зигзага на 10 последних барах. То есть на всех этих 10 барах он может быть равен 0. Не нулю он равен на том баре где есть вершина. Так вершины и ищут: запрашивают побольше баров, потом перебирают их и смотрят где не 0.
По фракталам вы скорее всего тоже не правильно запрограммировали, там принцип поиска фрактала точно такой же как в зигзаге, но с небольшим уточнением: бар, на котором нет фрактала будет иметь не нулевое значение, а EMPTY_VALUE, (эта такая константа, которой отмечают пустые индикаторные значения(как правило)).
И еще, если вы рассматриваете отсчет баров справа налево то перед записью значений индикаторов в массивы, сами массивы нужно подготовить, а именно
double Zig[]; ArraySetAsSeries(Zig,true);
Я в курсе всего этого, иначе бы мой вопрос был бы в ветке для начинающих...
Вот простой текст:
input int Z1 = 12; input int Z2 = 5; input int Z3 = 3; int HandleZig; double Zig[10]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void OnInit() { HandleZig = iCustom(Symbol(),PERIOD_CURRENT,"Examples\\ZigZag",Z1,Z2,Z3); if(HandleZig < 0) { Print("Ошибка при создании индикатора ZigZag ",Symbol()," - номер ошибки: ",GetLastError()); return; } ArraySetAsSeries(Zig,true); return; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void OnTick() { if(CopyBuffer(HandleZig,0,0,10,Zig) != 10) { Print("CopyBuffer ERROR"); return; }; Comment("Zig[0] = ",Zig[0]," Zig[1] = ",Zig[1]," Zig[9] = ",Zig[9]); return; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Для контроля просматриваю ячейки Zig. Там появляются то нули, то в нулевой ячейке непонятные вершины.
Сами проверьте, не пойму в чём дело...
double Zig[10];
Я же написал как это делается.. Размерность не надо указывать.. просто
double Zig[];
И в итоге получится значение зигзага на 10 барах, а не 10 вершин
- www.mql5.com
Я же написал как это делается.. Размерность не надо указывать.. просто
И в итоге получится значение зигзага на 10 барах, а не 10 вершин
Отправте скрин графика с зигзагом, и то что отображается в инфе
...Там появляются то нули, то в нулевой ячейке непонятные вершины...
Вообще, когда этой темой занимался, пришел к выводу, что зигзаг вытаскивает значения вершин из буфера каким-то алгоритмом в коде,
т. е., значения буфера - это не конечный результат, а промежуточный, для расчетов, собственно экстремумов.
Я тоже так думаю. Как тогда использовать стандартный Зигзаг в эксперте?
Может подскажите другой Зигзаг, где экстремумы нормально выводятся в буфер, подобно фракталам...
Я тоже так думаю. Как тогда использовать стандартный Зигзаг в эксперте?
Может подскажите другой Зигзаг, где экстремумы нормально выводятся в буфер, подобно фракталам...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я в ступоре... Хочу определить несколько последних экстремумов обычного ZigZag'а:
Затем получаю в массив Zig, например, последние 10 ячеек буфера индикатора:
Смотрю полученные данные в массиве и не пойму, то все нули при имеющихся вершинах, то проскакивают вершины, но совсем не последние...
Просто таким же образом нахожу вершины Fractals и проблем нет...
Как образуются данные в буфере ЗигЗага? Что должно появлятся в нулевой ячейке, первой, второй и т.д.?