Отправлено: 13.07.15 21:41. Заголовок: Новый ZigZag
Появился вопрос касательно статьи. Я пишу класс для работы с зиг-загами. Решил для теста воспользоваться индикатором из данной статьи NeoZigZag_Close. В итоге, почему-то он периодически возвращает не как обычно бывает 0 или "не ноль" т.е. значение, а вот такое значение: 2147483647.0. С чем это связано? Мне теперь приходится проверять не только на "не пустое значение", но и не "не 2147483647.0, что не есть логично.
Вот что пишет в журнале у меня возвращаемое значение данного индикатора:
Отправлено: 15.07.15 20:30. Заголовок: hoz пишет: В итоге..
hoz пишет:
цитата:
В итоге, почему-то он периодически возвращает не как обычно бывает 0 или "не ноль" т.е. значение, а вот такое значение: 2147483647.0. С чем это связано?
Если Вы читаете содержимое первого буфера индикатора (индекс 0), то все верно: индикатор указывает на отсутствие экстремума именно значением EMPTY_VALUE (2147483647). В МТ4 индикаторные буфера по умолчанию инициализируются именно значением EMPTY_VALUE. Чтобы изменить умолчательное значение, используемое в качестве пустого, на другое, используют функцию SetIndexEmptyValue(). В стандартном ZigZag именно так и поступили, указав в качестве пустого значения 0.0.
К слову, в МТ5 по умолчанию буферы индикатора инициализируются нулем, а не EMPTY_VALUE, что дает много головной боли при переводе индикаторов с MQL4 на MQL5 и обратно.
Отправлено: 11.12.15 20:49. Заголовок: В том-то и дело, что..
В том-то и дело, что уже не первый месяц им пользуюсь. Тока вот на днях такая фигня началась. А до этого сколько терминалов не ставлю, постоянно при старте терминала исчезают все панели инструментов. Приходится нажимать вид - панель инструментов и выбирать каждую, чтоб появилась. То ли какая-то несовместимость новых билдов недоделанных, то ли что-то ещё. Кроме МТ4 больше, ни с чем граблей не обнаружено в системе...
Если это тебя успокоит, у меня на одном из терминалов такая же фигня. Три терминала установлены на одном компе, а глючит только один с прошлого воскресенья. Вчера переустановил, все устаканилось по умолчанию.
Давайте попробуем путем вспоминания подробностей установить причину. Итак, какой билд терминала используется, на какой ОС, какой брокер, какой тип счета, как была получена история котировок.
Давайте попробуем путем вспоминания подробностей установить причину. Итак, какой билд терминала используется, на какой ОС, какой брокер, какой тип счета, как была получена история котировок.
ОС Win 7 x64. Брокеры Alpari и Oanda. На демке сваливается даже всё. История котировок подкачивается по F2 изначально, а потом сама подкачивается, т.к. запускаю ежедневно.
ОС Win 7 x64. Брокеры Alpari и Oanda. На демке сваливается даже всё. История котировок подкачивается по F2 изначально, а потом сама подкачивается, т.к. запускаю ежедневно.
Хорошая контора, очень консервативная и все подряд билды (этих уе...в, что бы мы им "вылизывали") не ставит.
Была у меня подобная картинка на ЗигЗаге Nena - смотри программную ошибку.
ОС Win 7 x64. Брокеры Alpari и Oanda. На демке сваливается даже всё. История котировок подкачивается по F2 изначально, а потом сама подкачивается, т.к. запускаю ежедневно.
У меня, кстати, все те же самые исходные данные (ОС и компания). Запустил только что индикатор, ничего в нем не переделывая:
Снова все ОК. Скорее всего, в Вашем терминале какая-то проблема с историей котировок. Попробуйте использовать мою версию истории.
Отправлено: 23.12.15 20:56. Заголовок: Игорь, возник попутн..
Игорь, возник попутный вопрос по Вашему индикатору. Как реализовать момент, чтоб следующий экстремум зиг-зага рисовался только тогда, когда между нулевым баром и предыдущим экстремумом было расстояние, например, 5 баров? Т.е. если меньше, то не рисуем? Я что-то пытался, но на выходе не то что-то получается.
Отправлено: 29.12.15 23:07. Заголовок: На данный момент у м..
На данный момент у меня вот такой вариант получился. Если от туда убрать принты, то становится видно что я делал. Принтовал спецом, чтоб отследить что происходит. Тем не менее, наблюдаю, что разница между 0-вым баром и баром с индексом равным индексу бара последнего экстремума не является адекватной. Причину понять не смог...
Отправлено: 30.12.15 21:40. Заголовок: hoz пишет: На данны..
hoz пишет:
цитата:
На данный момент у меня вот такой вариант получился.
В этом варианте слишком много ошибок, чтобы можно было обоснованно продолжать разбор проблемы. Так, сразу бросается в глаза, что объявлен массив, который, видимо, должен использоваться в качестве буфера индикатора - ZZTimeBuf. Но, во-первых, этот массив не может быть буфером, т. к. он объявлен как статический. А, во-вторых, этот массив так и не стал буфером, т. к. не привязан ни к одному из трех предполагаемых буферов (в IndicatorBuffers указано 3).
Ну а в принципе указанная задача может быть решена без ввода дополнительного буфера. Примерный алгоритм таков: 1. Запоминаем дату/время последнего экстремума ZZ. 2. На каждом новом баре определяем, какой индекс бара соответствует сохраненной дате/времени. 3. Сравниваем полученный индекс с заданной величиной (через сколько баров можно регистрировать экстремум) и, если можно регистрировать экстремум по стандартному критерию, то регистрируем новый экстремум ZZ.
Все даты в формате GMT
2 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет