Roman #: Жёлтым выделил крайний индекс, по идее уже аллоцированного на +1 буфера в момент нового бара, куда кладётся актуальное значение! Почему система этого не понимает? Потому, что ошибка в поведении к которой вы приспособились! И выдаёте это, что так было всегда. НЕТ не было так всегда, это появилось несколько лет назад, и все схавали.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Да, в текущей реализации со сдвигом значений в ArrayCopy получается так как вы пишите. В понимании этого момента вопросов нет.
Как объясните тогда поведение без ArrayCopy? Когда отрисовка начинается только с приходом нового бара. При этом значения в углу подокна изменяются. Это же всё взаимосвязано, первая отрисовка и сдвиг буфера. То есть первая отрисовка в текущей реализации
будет только с приходом нового бара, возможно это и есть некорректный лаг буферного сдвига! Повторюсь, раньше же как то без пропусков всё отрисовывалось и начинало рисовать с момента старта, а не с приходом бара. Это некорректное изменение появилось давно, просто не писал об этом.
То есть ждём когда же появиться там вторая точка? На D1 будете сутки ждать? А на W1? Ещё скажите, что это особенность. Детский сад какой то, а не программисты. Защищают кривую реализацию. Со своими ИИ совсем отошли от логического мышления.
Запустите хотя-бы на М5, и посмотрите когда отрисуется графическое отображение. Текущая реализация не корректна и это не есть нормально! В текущей реализации первая точка для отрисовки создаётся на открытии бара, а не от первого переданного значения в буфер. Сказки про начальные две точки не надо рассказывать, они легко создаются при желании корректного подхода.
Вам надо понять какая проблема обсуждается, а не предлагать решения которые не относятся к проблеме! Как обрабатывать (rates_total - prev_calculated) я прекрасно знаю и для каких это решений применяется. Хватит писать всякую ерунду.
Правильно, заканчивайте наконец писать всякую ерунду и выдумывать проблемы, а изучайте материал.
Вот это первая ерунда которой не должно было быть.
Да что вы говорите? конечно в ваших познаниях циклы эффективней, чем сдвиг по указателю. Сделайте тоже самое с обычным статичным массивом, что равносильно max баров в окне для буфера. Напрочь никто не желает думать, прежде чем пишут! Вас сюда никто не звал, писать свои убогие комментарии, не к вам была адресована проблема, а к разработчикам. Идите мимо молча.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Жёлтым выделил крайний индекс, по идее уже аллоцированного на +1 буфера в момент нового бара, куда кладётся актуальное значение!
Почему система этого не понимает?
Потому, что ошибка в поведении к которой вы приспособились!
И выдаёте это, что так было всегда. НЕТ не было так всегда, это появилось несколько лет назад, и все схавали.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Как объясните тогда поведение без ArrayCopy ?
Когда отрисовка начинается только с приходом нового бара.
При этом значения в углу подокна изменяются.
Это же всё взаимосвязано, первая отрисовка и сдвиг буфера.
То есть первая отрисовка в текущей реализации
будет только с приходом нового бара, возможно это и есть некорректный лаг буферного сдвига!
Повторюсь, раньше же как то без пропусков всё отрисовывалось и начинало рисовать с момента старта, а не с приходом бара.
Это некорректное изменение появилось давно, просто не писал об этом.
То есть первая отрисовка в текущей реализации
будет только с приходом нового бара, возможно это и есть некорректный лаг буферного сдвига!
https://www.mql5.com/ru/forum/508121/page5#comment_59586457
То есть ждём когда же появиться там вторая точка?
На D1 будете сутки ждать? А на W1? Ещё скажите, что это особенность.
Детский сад какой то, а не программисты. Защищают кривую реализацию.
Со своими ИИ совсем отошли от логического мышления.
Запустите хотя-бы на М5, и посмотрите когда отрисуется графическое отображение.
Текущая реализация не корректна и это не есть нормально!
В текущей реализации первая точка для отрисовки создаётся на открытии бара, а не от первого переданного значения в буфер.
Сказки про начальные две точки не надо рассказывать, они легко создаются при желании корректного подхода.
Сказки про начальные две точки не надо рассказывать, они легко создаются при желании корректного подхода.
В этом коде задаётся значение только для одной точки построения каждый тик и всё.
Вам надо хорошо изучить всё здесь: https://www.mql5.com/ru/book/applications/indicators_make/indicators_setindexbuffer
А потом пример здесь: https://www.mql5.com/ru/docs/customind/indicators_examples/draw_line, увидите в нём цикл for в OnCalculate.
В этом коде задаётся значение только для одной точки построения каждый тик и всё.
Вам надо хорошо изучить всё здесь: https://www.mql5.com/ru/book/applications/indicators_make/indicators_setindexbuffer
А потом пример здесь: https://www.mql5.com/ru/docs/customind/indicators_examples/draw_line, увидите в нём цикл for в OnCalculate.
Как обрабатывать (rates_total - prev_calculated) я прекрасно знаю и для каких это решений применяется.
Хватит писать всякую ерунду.
Хватит писать всякую ерунду.
Правильно, заканчивайте наконец писать всякую ерунду и выдумывать проблемы, а изучайте материалы.
Вот это первая ерунда которой не должно было быть.
Правильно, заканчивайте наконец писать всякую ерунду и выдумывать проблемы, а изучайте материал.
Вот это первая ерунда которой не должно было быть.
Сделайте тоже самое с обычным статичным массивом, что равносильно max баров в окне для буфера.
Напрочь никто не желает думать, прежде чем пишут!
Вас сюда никто не звал, писать свои убогие комментарии, не к вам была адресована проблема, а к разработчикам.
Идите мимо молча.
Напрочь никто не желает думать, прежде чем пишут!
— Один? Да их тут тысячи!