Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1899
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А если не двигать массив, а использовать его как кольцевой буфер, запоминая текущее место первого элемента?
Гениальная идея! Кто её придумал и какое её практическое применение? Сомневаюсь, что она используется исключительно для чартов со скользящим окном...
Гениальная идея! Кто её придумал и какое её практическое применение? Сомневаюсь, что она используется исключительно для чартов со скользящим окном...
Правда, не лишним будет знать, на какое количество данных можно откатиться. Потому как этот кольцевой буфер "наступает сам себе на пяты", из-за ограниченности своей длины...
Вот, как лучше всего сделать.
Проверил, да это хорошее решение - оставил.
Но всё-же хотелось-бы проверить работу ArrayCopy
---
Решил сделать так, а то не красиво оборванный график:
А если не двигать массив, а использовать его как кольцевой буфер, запоминая текущее место первого элемента?
В примере Виталия можно использовать данную идею. Но от цикла всё равно не уйти (что для него критично). По любому, придется из кольцевого буфера переносить данные в буфер индикатора, с помощью цикла или с помощью функции ArrayCopy. И что поменяется?
Гениальная идея! Кто её придумал и какое её практическое применение? Сомневаюсь, что она используется исключительно для чартов со скользящим окном...
Кто придумал - концов не найти, думаю, многократно переизобреталась, идея достаточно очевидна.
Я, например, использую в том числе для вычисления скользящего среднего данных, которые не хранятся в истории, а имеют только мгновенное значение.
В передаче данных такое использовалось с незапамятных времён.
В примере Виталия можно использовать данную идею. Но от цикла всё равно не уйти (что для него критично). По любому, придется из кольцевого буфера переносить данные в буфер индикатора, с помощью цикла или с помощью функции ArrayCopy. И что поменяется?
Что можно вставить новое значение и сразу копировать с нужного места. Остаётся цикл копирования, но нет цикла сдвига.
Проверил, да это хорошее решение - оставил.
Но всё-же хотелось-бы проверить работу ArrayCopy
С помощью ArrayCopy можно только из другого массива перенести данные. Но сместить их нельзя. Можно воспользоваться кольцевым буфером и переносить данные из него... Но как это сделать с помощью ArrayCopy, если у него круговое движение... Не понятно. Да и, в принципе, не нужно это понимать. Обычное смещение с помощью цикла не столь критично по скорости работы. По крайней мере, быстрее я ничего не знаю. Что может быть быстрее, только ассемблер?... В общем. оставляйте всё как есть. Будет работать.
Что можно вставить новое значение и сразу копировать с нужного места. Остаётся цикл копирования, но нет цикла сдвига.
Давай-те примером, это будет в тему
Код для модернизации есть
С помощью ArrayCopy можно только из другого массива перенести данные. Но сместить их нельзя. Можно воспользоваться кольцевым буфером и переносить данные из него... Но как это сделать с помощью ArrayCopy, если у него круговое движение... Не понятно. Да и, в принципе, не нужно это понимать. Обычное смещение с помощью цикла не столь критично по скорости работы. По крайней мере, быстрее я ничего не знаю. Что может быть быстрее, ассемблер?... В общем. оставляйте всё как есть. Будет работать.
Сейчас код рабочий, но по скорости есть сомнения из-за цикла.
Что это будет?
Хочу проверить несколько кухонь на возможность арбитража, индикатор будет рисовать разность значений, работает по таймеру раз в 100мс. Задержки выполнения кода критичны для данной ситуации.