andrey egorov:
Не всегда только один бар считается. Иногда терминал производит сброс и индикатор пересчитывается заново полностью. Как в советнике узнаете, что был пропуск баров от обрыва связи и надо сделать полный пересчет индикатора? Никак! Поэтому вставка индикаторов в эксперта обрекает или на ошибки в расчетах или на жуткие тормоза.
...
Когда расчитывается кастомный индикатор, считается только последний пришедший с индексом 0, а все остальные как-бы сдвигаются, а для массива приходится пересчитывать весь массив.
...
Dmitry Fedoseev:
Иногда терминал производит сброс и индикатор пересчитывается заново полностью.
Что за сброс, можно подробнее плз? Или имеется в виду OnInit при смене ТФ и т.д.?
Иногда терминал производит сброс и индикатор пересчитывается заново полностью.
Alexey Volchanskiy:
Что за сброс, можно подробнее плз? Или имеется в виду OnInit при смене ТФ и т.д.?
prev_calculated=0 (или IndicatorCounted()=0) не только на запуске индикатора, а еще иногда в процессе работы индикатора (независимо от действий пользователя).
Что за сброс, можно подробнее плз? Или имеется в виду OnInit при смене ТФ и т.д.?
Dmitry Fedoseev:
prev_calculated=0 (или IndicatorCounted()=0) не только на запуске индикатора, а еще иногда в процессе работы индикатора (независимо от действий пользователя).
Вот не знал, и чем это вызывается?
prev_calculated=0 (или IndicatorCounted()=0) не только на запуске индикатора, а еще иногда в процессе работы индикатора (независимо от действий пользователя).
Alexey Volchanskiy:
Вот не знал, и чем это вызывается?
Вот не знал, и чем это вызывается?
наверное индикатором, он отслеживает разные проблеммы со связью
Dmitry Fedoseev:
prev_calculated=0 (или IndicatorCounted()=0) не только на запуске индикатора, а еще иногда в процессе работы индикатора (независимо от действий пользователя).
prev_calculated=0 (или IndicatorCounted()=0) не только на запуске индикатора, а еще иногда в процессе работы индикатора (независимо от действий пользователя).
Dmitry Fedoseev:
Не всегда только один бар считается. Иногда терминал производит сброс и индикатор пересчитывается заново полностью. Как в советнике узнаете, что был пропуск баров от обрыва связи и надо сделать полный пересчет индикатора? Никак! Поэтому вставка индикаторов в эксперта обрекает или на ошибки в расчетах или на жуткие тормоза.
спасибо, наверное это можно инициализироватьв советнике, проверяя последовательность баров
Не всегда только один бар считается. Иногда терминал производит сброс и индикатор пересчитывается заново полностью. Как в советнике узнаете, что был пропуск баров от обрыва связи и надо сделать полный пересчет индикатора? Никак! Поэтому вставка индикаторов в эксперта обрекает или на ошибки в расчетах или на жуткие тормоза.
попробую сделать передвижение значений в массиве, напишу, что полутся
andrey egorov:
попробую сделать передвижение значений в массиве, напишу, что полутся
попробую сделать передвижение значений в массиве, напишу, что полутся
Может вам это подойдет?
Класс для создания кольцевого буфера,
Класс для построения Moving Average с использованием кольцевого буфера.
Класс для создания кольцевого буфера
- голосов: 27
- 2012.12.10
- Konstantin Gruzdev
- www.mql5.com
Класс позволяет самостоятельно организовывать внутри советника или индикатора минитаймсерии, индикаторные минибуфера, короткие буфера для хранения промежуточных потоковых данных.
А почему не попробовать кольцевой буфер?
Sergey Chalyshev:
Опередили)
Может вам это подойдет?
Класс для создания кольцевого буфера,
Класс для построения Moving Average с использованием кольцевого буфера.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
я думаю не только мне приходила такая мысль (для MQL4 и, возможно, актуально для MQL5)
здесь уже обсуждалась эта тема и есть предварительное решение как это сделать, используя ArraySetAsSeries
можно, но не обязательно рассчитывать ограниченное количество элементов 300 например. Сейчас расчет ведётся на каждой свече (не тике), но это занимает много времени, потому, пересчитываются все 300 элементов.
Когда рассчитывается кастомный индикатор, считается только последний пришедший с индексом 0, а все остальные как-бы сдвигаются, а для массива приходится пересчитывать весь массив.
Как для массива рассчитывать только последний элемент, и так чтобы он был с индексом 0.
Одно из решений, которое мне пришло, это "сдвигать" все 299 элементов в цикле, а 300 тый сбрасывать, и на место 0-го записывать новый, рассчитанный. Это может ускорить работу и сэкономит память.
Может кто знает, более интересное и простое решение, с помощью стандартных функций MQL4 ?