Новая версия платформы MetaTrader 5 build 5800: Улучшенный торговый диалог и удобная работа с CSV в MetaEditor - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Красным - никогда так не было.
Почему система этого не понимает?
Потому, что ошибка в поведении к которой вы приспособились!
И выдаёте это, что так было всегда. НЕТ не было так всегда, это появилось несколько лет назад, и все схавали.
У него не в этом проблема. Он просто не видит, что при увеличении индикаторного буфера происходит сдвиг не на один элемент, а на два.
И вы это считаете нормальным? Просто приспособились к кривизне.
А вот собственно, почему на два элемента сдвиг, вас не смущает такое поведение?
И вы это считаете нормальным? Просто приспособились к кривизне.
Потому, что на один элемент сдвигает Ваш код при каждом тике. Но при новом баре МТ сам сдвигает на количество добавленных баров (обычно добавляется 1 бар).
Я вижу полное непонимание проблемы индикаторного буфера.
Запустите тогда в таком виде, может дойдёт, что на первом запуске ничего не будет отрисовываться.
Значения в левом верхнем углу подокна изменяются, а отрисовки нет.
Начнёт отрисовываться только с приходом нового бара.
Речь не за пользовательский сдвиг, а за буферный!
Запустите тогда в таком виде, может дойдёт, что на первом запуске ничего не будет отрисовываться.
Значения в левом верхнем углу подокна изменяются, а отрисовки нет.
Начнёт отрисовываться только с приходом нового бара.
Чтобы нарисовать линию нужно 2 точки. Одной мало. Попробуйте стрелку вместо линии.
В чём сложность такой реализации? Вроде профессионалы, а на таком пустяке спотыкаетесь.
Ведь раньше не было таких проблем, не со сдвигом буфера, не с начальной отрисовкой.
У меня ещё возникла проблема в индикаторе.
На этот раз с MapViewOfFile из kernel32.dll
Суть проблемы: на первом запуске терминала и первом запуске индикатора,
именованный MapViewOfFile отрабатывает корректно и возвращает указатель ранее созданного файла на память.
После удаления индикатора, файл на память закрываю корректно, а переменные заNULLяются.
Но после повторного запуска индикатора возникает ошибка из kernel32::GetLastError():
MapViewOfFile: ошибка получения указателя на первый элемент памяти Local\File_: 5Помогает перезагрузка терминала, до первого удаления индикатора, потом снова эта ошибка.
В эксперте такой проблемы не наблюдается.
Кому из MQ разработчиков можно скинуть код, для воспроизведения ошибки ?
Жёлтым выделил крайний индекс, по идее уже аллоцированного на +1 буфера в момент нового бара, куда кладётся актуальное значение!
Почему система этого не понимает?
Потому, что ошибка в поведении к которой вы приспособились!
И выдаёте это, что так было всегда. НЕТ не было так всегда, это появилось несколько лет назад, и все схавали.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Желтым ваше выделенное срабатывает уже ПОСЛЕ того, как лишний вызов ArrayCopy сдвинул ВЕСЬ индикаторный буфер вместе с пустым новым элементом влево. Вы кладете значение в последний элемент, но строкой выше он был еще пустой и эта пустота скопирована в 1-й бар. Чего не понятно?
Всегда так работало в МТ5. Прям удивительно такие стандартные вещи объяснять.
Как объясните тогда поведение без ArrayCopy ?
Когда отрисовка начинается только с приходом нового бара.
При этом значения в углу подокна изменяются.
Это же всё взаимосвязано, первая отрисовка и сдвиг буфера.
То есть первая отрисовка в текущей реализации
будет только с приходом нового бара, возможно это и есть некорректный лаг буферного сдвига!
Повторюсь, раньше же как то без пропусков всё отрисовывалось и начинало рисовать с момента старта, а не с приходом бара.
Это некорректное изменение появилось давно, просто не писал об этом.