Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я про индикатор ничего не говорил.
А здесь идет речь про индикаторные буферы.
А здесь идет речь про индикаторные буферы.
По-твоему копирование всего индикаторного буффера - это хорошая практика ?
По-твоему копирование всего индикаторного буффера - это хорошая практика ?
Единственно правильная. Ускорение возможно достичь только в комбинации с PLOT_SHIFT.
Реализация на одном только PLOT_SHIFT работать не будет.
Единственно правильная. Ускорение возможно достичь только в комбинации с PLOT_SHIFT.
Реализация на одном только PLOT_SHIFT работать не будет.
Ну так правильно - сдвинуть отрисовку c помощью PLOT_SHIFT, и дополнить только последнее значение. Зачем копировать все ?
Я чего-то, видимо, не знаю ? Какие-то хитрости, что надо копировать все ???
Ну так правильно - сдвинуть отрисовку c помощью PLOT_SHIFT, и дополнить только последнее значение. Зачем копировать все ?
Я чего-то, видимо, не знаю ? Какие-то хитрости, что надо копировать все ???
За сдвиг значений в индикаторных буферах отвечает терминал и ни как не регулируется индикатором. А терминал связывает количество элементов индикаторного буфера с количеством баров, т.е. 1 элемент индикаторного буфера на 1 бар. То что и описывает топик-стартер, у него отображается новый элемент только на новом баре. Фактически, в индикаторном буфере он видит цены закрытия вместо тиков. Для отображения тиков ему и надо организовывать смещение элементов в массиве на каждом тике. Но тут надо учесть 2 момента:
По-твоему копирование всего индикаторного буффера - это хорошая практика ?
Копировать весь индикаторный буфер не имеет смысла, достаточно крайние 100-1000 элементов.
Остальные, всё равно, не видны на экране.
А тики хранить в отдельном массиве.
За сдвиг значений в индикаторных буферах отвечает терминал и ни как не регулируется индикатором. А терминал связывает количество элементов индикаторного буфера с количеством баров, т.е. 1 элемент индикаторного буфера на 1 бар. То что и описывает топик-стартер, у него отображается новый элемент только на новом баре. Фактически, в индикаторном буфере он видит цены закрытия вместо тиков. Для отображения тиков ему и надо организовывать смещение элементов в массиве на каждом тике. Но тут надо учесть 2 момента:
Или я читал с закрытыми глазами, или вообще не читал. Но копируется абсолютно без проблем. Проверено на практике.
Или я читал с закрытыми глазами, или вообще не читал. Но копируется абсолютно без проблем. Проверено на практике.
я тоже проверял - работает и в последнем билде МТ и 4 года назад работало без проблем
но как показывает практика... если разработчики среды программирования акцентируют внимание на "Если копируется массив сам в себя, то результат неопределен.", то они оставляют за собой право в последующих билдах МТ не гарантировать корректную работу ArrayCopy() при копировании "сам в себя"
т.е. это не документированная особенность ArrayCopy();
.....
я несколько лет не занимался mql, с удивлением обнаружил, что оценить скорость работы участков программы с помощью GetTickCount() сейчас невозможно - каждый запуск одного и того же тестового скрипта выдает разные результаты (то больше то меньше, хоть и скрипт может выполняться по несколько минут и по несколько миллионов-миллионов итераций) - подозреваю,что разработчики переписали МТ4 чуть ли не с нуля и теперь терминал реально не тормозит, видимо дело в кэшировании
так вот, по моим наблюдениям сейчас (в новых билдах МТ) совершенно нет разницы, что использовать встроенные ф-ции ArrayCopy(); или организовать самостоятельно поэлементный сдвиг массива в цикле
они оставляют за собой право в последующих билдах МТ не гарантировать корректную работу
Разработчики не будут ничего менять!
"Если копируется массив сам в себя, то результат неопределен.",
"результат неопределен" не из-за того что могут что-то изменить, а из-за того что он действительно не может быть определён)
как укажете параметры - так и скопируется что-то, куда-то...