hoz:
...
...
bool asSeries = ArrayIsSeries(ZZBuf);...
Этим вы проверяете является ли массив таймсерией. А разве ZZBuf - таймсерия? Нет - это индикаторный буфер.
Проверять направление его индексации нужно этой функцией: ArrayGetAsSeries()
Ведь очень же просто поставить курсор в редакторе на название функции и нажать F1 - всё сразу и разрешится.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сам я индикатопы не писал, т.к. мне это не нужно было. На данный момент, нужно было кое-что, и, что бы не изобретать велосипед я взял индикатор одного мною уважаемого программиста известного и здесь на этом форуме. Но не в этом суть. Индикатор писался ещё пару лет назад так точно. Я его перелопатил под себя и собирался дорабатывать под свои нужны. По умолчанию индикатор, кстати, работает. Но, если добавить:
То код перестаёт работать. Да, я вижу место, где кроется касяк. Хотел понять в чём суть. Начал принтовать и... как-бы это сказать более удачно.. очередной раз удивился. Если добавить строку в код индикатора:
Терминал убивается напрочь. Он просто зависает на неограниченное время с концами. Если в другой среде разработки при запуске приложения можно производить отладку и увидеть касяк или хотя бы даже как-то вывести в файл или на экран причину касяка, то как в терминалом МТ4 это сделать вопрос... Это как-то можно вообще сделать? Как понять почему терминал подвис? Есть может какие-то средства для этого? В папке терминала, кстати, MQL4\Logs\ нет пишется в лог актуального дня ничего в процессе подвисания.
Индикатор рабочий прилагаю ZigZagHighLow.mq4. Если к нему добавить обе строки, которые я привёл выше получится вариант ZigZagHighLow(Scriptong).mq4 (там ещё пару комментарием есть т.к. версия в процессе доработки) терминал убивается в конец. Вопрос актуален очень.