Я, конечно, могу ошибаться, но у меня возникла чутка не совсем понятная мне ситуация. Есть свой зиг-заг, который имеет 2 буфера. Один из которых буфер есс-но цен экстремумов. Так вот. По-скольку это буфер, то его размер будет равен количеству баров на просчитываемом графике. Но вот здесь и возникает интересный момент.
Ведь если экстремумы зиг-зага располагаются, скажем так, на 1, 5, 8 и.. и др. индексах, то мне нужно всего эти 3 индекса и наш массив цен т.е. буфер цен будет имет это 3 полезные и нужные для работы индекса. А остальные индексы баров т.е. 0, 2, 3, 4, 6 и 7 не нужны, хотя обычно они тоже имется в буфере, с той лишь разницей, что они имеют пустое значение EMPTY_VALUE.
Возник вопрос. А можно это как-то обойти и использовать массив тоже с полезными значениями без пустых? Это я написал для одного примера, но таких примеров бывает больше.
Если бы на яве писал я, то там можно работать с динамическими массивами, теми же, эррэйлистами и тд, а как здесь это сделать, да ещё и в индикаторе я как-то сразу не решил..
Тоже можно использовать динамический массив. Не назначать его как буфер индикатора. Но при этом всю нагрузку по изменению его размеров, инициализации и прочих сопутствующих данному решению "радостей" вы уже берёте на себя. Ну и поиск значений баров, сопоставимых с ценой и временем, и остальными нужными вам значениями, вы опять же берёте на себя, и, кстати, это никак не будет способствовать скорости просчётов индикатора.
...и, кстати, это никак не будет способствовать скорости просчётов индикатора.
ну, для зигзага, (если идет постоянная проверка многих вершин) создание своего массива, значительно увеличит скорость.
Или, если нужно перебирать несколько зигзагов/инструментов...
Пустых не будет, будет не красиво, т.к. исчезнет синхронизация зиг-зага с графиком цены
Однако все возможно
Вы пишете на яве, значит и MQL тоже подчинится
Вот, почитайте:
https://www.mql5.com/ru/docs/array
Как вариант - нарисовать отрезки по заполненным точкам в индикаторе, и записать в буферы индикатора полученные на всех барах значения с этих отрезков
- www.mql5.com
Пустых не будет, будет не красиво, т.к. исчезнет синхронизация зиг-зага с графиком цены
Не исчезнет. Есть нюансы анализа рынка. Скажем так, для кого как. Кому-то эта синхранизация нужна, кому-то нет.. Как по мне, если работать в обычном режиме, потом приходится лопатить все непустые значения задав счётчик экстремума для поиска. Это как-бы не удобно лично мне.
Вы пишете на яве, значит и MQL тоже подчинится
Вот, почитайте:
https://www.mql5.com/ru/docs/array
Как вариант - нарисовать отрезки по заполненным точкам в индикаторе, и записать в буферы индикатора полученные на всех барах значения с этих отрезков
Я так понимаю, создам динамический массив и в процессе, когда добавляю элемент буду инкрементировать на 1 его размер функцией ArrayResize. Просто я думал чутка дальше. Вот в мкл4 и в 5-ке, вроде бы тоже, нет функции удаления элемента массива. Я так понимаю, это делается уменьшением на 1 размера массива? Но такой трюк прокатить только если это крайний элемент, а если не крайний - то не прокатит...
Я так понимаю, создам динамический массив и в процессе, когда добавляю элемент буду инкрементировать на 1 его размер функцией ArrayResize. Просто я думал чутка дальше. Вот в мкл4 и в 5-ке, вроде бы тоже, нет функции удаления элемента массива. Я так понимаю, это делается уменьшением на 1 размера массива? Но такой трюк прокатить только если это крайний элемент, а если не крайний - то не прокатит...
Сначала организовываете в массиве смещение значений, а потом уменьшаете размер массива, удаляя последний элемент.
Я так понимаю, создам динамический массив и в процессе, когда добавляю элемент буду инкрементировать на 1 его размер функцией ArrayResize. Просто я думал чутка дальше. Вот в мкл4 и в 5-ке, вроде бы тоже, нет функции удаления элемента массива. Я так понимаю, это делается уменьшением на 1 размера массива? Но такой трюк прокатить только если это крайний элемент, а если не крайний - то не прокатит...
Еще можно воспользоваться классами CArrayInt, CArrayDouble и т.д. Там уже реализована вставка и удаление элементов.
Не исчезнет. Есть нюансы анализа рынка. Скажем так, для кого как. Кому-то эта синхранизация нужна, кому-то нет.. Как по мне, если работать в обычном режиме, потом приходится лопатить все непустые значения задав счётчик экстремума для поиска. Это как-бы не удобно лично мне.
Я так понимаю, создам динамический массив и в процессе, когда добавляю элемент буду инкрементировать на 1 его размер функцией ArrayResize. Просто я думал чутка дальше. Вот в мкл4 и в 5-ке, вроде бы тоже, нет функции удаления элемента массива. Я так понимаю, это делается уменьшением на 1 размера массива? Но такой трюк прокатить только если это крайний элемент, а если не крайний - то не прокатит...
уже готовый массив индикатора можно заполнить конкретными значениями
две точки в индикаторе у Вас же есть, правда?
построить линию и переписать с неё значения в буфер индикатора
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я, конечно, могу ошибаться, но у меня возникла чутка не совсем понятная мне ситуация. Есть свой зиг-заг, который имеет 2 буфера. Один из которых буфер есс-но цен экстремумов. Так вот. По-скольку это буфер, то его размер будет равен количеству баров на просчитываемом графике. Но вот здесь и возникает интересный момент.
Ведь если экстремумы зиг-зага располагаются, скажем так, на 1, 5, 8 и.. и др. индексах, то мне нужно всего эти 3 индекса и наш массив цен т.е. буфер цен будет имет это 3 полезные и нужные для работы индекса. А остальные индексы баров т.е. 0, 2, 3, 4, 6 и 7 не нужны, хотя обычно они тоже имется в буфере, с той лишь разницей, что они имеют пустое значение EMPTY_VALUE.
Возник вопрос. А можно это как-то обойти и использовать массив тоже с полезными значениями без пустых? Это я написал для одного примера, но таких примеров бывает больше.
Если бы на яве писал я, то там можно работать с динамическими массивами, теми же, эррэйлистами и тд, а как здесь это сделать, да ещё и в индикаторе я как-то сразу не решил..