АвторСообщение





Сообщение: 40
Зарегистрирован: 30.05.13
Репутация: 0
ссылка на сообщение  Отправлено: 13.07.15 21:41. Заголовок: Новый ZigZag


Появился вопрос касательно статьи.
Я пишу класс для работы с зиг-загами. Решил для теста воспользоваться индикатором из данной статьи NeoZigZag_Close. В итоге, почему-то он периодически возвращает не как обычно бывает 0 или "не ноль" т.е. значение, а вот такое значение: 2147483647.0. С чем это связано?
Мне теперь приходится проверять не только на "не пустое значение", но и не "не 2147483647.0, что не есть логично.

Вот что пишет в журнале у меня возвращаемое значение данного индикатора:

2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(9) = 2147483647.0
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(9) = 2015.05.29 21:30:00
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(10) = 2147483647.0
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(10) = 2015.05.29 21:15:00
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(11) = 2147483647.0
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(11) = 2015.05.29 21:00:00
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(12) = 2147483647.0
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(12) = 2015.05.29 20:45:00
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(13) = 1.09936
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(13) = 2015.05.29 20:30:00
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumPrice(14) = 2147483647.0
2015.07.13 22:07:06 2015.06.01 00:10 ZZBaseVariant EURUSD,M15: ZZ.GetZZExtremumTime(14) = 2015.05.29 20:15:00


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 17 , стр: 1 2 All [только новые]







Сообщение: 51
Зарегистрирован: 30.05.13
Репутация: 0
ссылка на сообщение  Отправлено: 01.01.16 14:19. Заголовок: Scriptong пишет: В ..


Scriptong пишет:

 цитата:
В этом варианте слишком много ошибок, чтобы можно было обоснованно продолжать разбор проблемы. Так, сразу бросается в глаза, что объявлен массив, который, видимо, должен использоваться в качестве буфера индикатора - ZZTimeBuf. Но, во-первых, этот массив не может быть буфером, т. к. он объявлен как статический.


Как это не может. Ведь, у Вас же тоже буфер экстремумом является статическим т.к. объявлен на глобальном уровне. Тем не менее, он является буфером.
Scriptong пишет:

 цитата:
А, во-вторых, этот массив так и не стал буфером, т. к. не привязан ни к одному из трех предполагаемых буферов (в IndicatorBuffers указано 3).


Вообще-то, изначально я и реализовал это как буфер, но... оказалось, что метаквоты и тут сделали всё для "удобства" разработки. Оказалось, что буфер не может быть типом datetme, т.к. такой перегрузки и SetIndexBuffer() нет! Пришлось как-то реализовывать посредством обычного массива. Размер я не решил какой ему присвоить, поэтому сделал 10000 для теста.
А как иначе? Создавать динамический массив? Я не разу так неделал.. Стоит оно того?
Scriptong пишет:

 цитата:
Ну а в принципе указанная задача может быть решена без ввода дополнительного буфера. Примерный алгоритм таков:
1. Запоминаем дату/время последнего экстремума ZZ.
2. На каждом новом баре определяем, какой индекс бара соответствует сохраненной дате/времени.
3. Сравниваем полученный индекс с заданной величиной (через сколько баров можно регистрировать экстремум) и, если можно регистрировать экстремум по стандартному критерию, то регистрируем новый экстремум ZZ.


Я думал над этим. Но хочется более универсального способа. И на то есть причины. Ведь есть вариант получения интересующего нас экстремума, как относительно времени и удалённости о 0-го бара, так и по направлению движения цены по какому-то признаку. Таким образом, гораздо нагляднее иметь цепочку значений раскинутых по времени.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 1982
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 02.01.16 23:01. Заголовок: hoz пишет: Вообще-т..


hoz пишет:

 цитата:
Вообще-то, изначально я и реализовал это как буфер, но... оказалось, что метаквоты и тут сделали всё для "удобства" разработки. Оказалось, что буфер не может быть типом datetme, т.к. такой перегрузки и SetIndexBuffer() нет! Пришлось как-то реализовывать посредством обычного массива. Размер я не решил какой ему присвоить, поэтому сделал 10000 для теста.
А как иначе? Создавать динамический массив? Я не разу так неделал.. Стоит оно того?


Тип datetime вполне умещается в тип double. Поэтому можно смело объявить массив с типом double, а данные в нем хранить такие, как требуется, хоть int, хоть datetime.

hoz пишет:

 цитата:
Я думал над этим. Но хочется более универсального способа. И на то есть причины. Ведь есть вариант получения интересующего нас экстремума, как относительно времени и удалённости о 0-го бара, так и по направлению движения цены по какому-то признаку. Таким образом, гораздо нагляднее иметь цепочку значений раскинутых по времени.


На мой взгляд, овчинка выделки не стоит, т. е. гнаться в данном случае за универсальностью не нужно. Ведь время возникновения любого из экстремумов можно определить, просто перебрав значения буфера экстремумов. Это, конечно, немного дольше, но не настолько критично, чтобы выделять для этих целей индикаторный буфер. Ведь это память компьютера, которой и без того мало.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 17 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет