Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1091
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день. Такой вопрос: где можно посмотреть пример кода того, как выводить значения одного индикатора с разных таймфреймов на график цены?
В гугле что-то не получается, наверно делаю не корректный запрос.
Конкретно, нужно вывести на график цены в колонку, значения стандартного отклонения полос Болинджера с Н1 по W1, а во второй колонке значения полученные путем умножения стандартных отклонения на коэффициенты.
Полосы Болинджера модифицированные.
Ключевые слова дл поиска по кодобазе "Multi timeframe"
Текст выводить можно с помощью OBJ_LABEL.
1. Попробуйте в MetaEditor: Файл --> Открыть общую папку данных. Увидите путь к папке. Этот вопрос много раз обсуждался, вот, например, ссылка
2. Попробуйте сначала без include. Когда отладите - начнете инклудить.
3. Исходники вставляйте сюда или с помощью кнопки SRC, которая выше, или кнопкой Прикрепить файл, что ниже.
Просьба подсказать, как рисовать горизонтальную линию по цене открытия бара в 07:00.
Написал такой код, но линия почему-то не рисуется. Где ошибка?
Просьба подсказать, как рисовать горизонтальную линию по цене открытия бара в 07:00.
Написал такой код, но линия почему-то не рисуется. Где ошибка?
Если убрать ObjectMove линию видно? Попробуйте Alert(StartPrice);
Если убрать ObjectMove линии не видно, а вот если в строке "double StartPrice = Open[IndexOfBar];" вместо "IndexOfBar" написать числовое значение, например "double StartPrice = Open[5];" то рисует линию по цене открытия пятого бара.
За идею с Алертом спасибо - он показывает значение "0".
Кстати линия есть и в списке объектов, со значением 0.
Просьба подсказать, как рисовать горизонтальную линию по цене открытия бара в 07:00.
Написал такой код, но линия почему-то не рисуется. Где ошибка?
Нельзя в ините рисовать и вычисления производить, это грубая ошибка. Инит должен завершать работу как можно быстрее.
Ошибка тут - int IndexOfBar = iBarShift(ChartID() _Symbol ,PERIOD_H1, StringToTime(StartTime), true); //Считаем индекс бара по заданному времени StartTime
Время можно задавать сразу в формате datetime, не надо машинное время терять на преобразование, вот так работает:
Нельзя в ините рисовать и вычисления производить, это грубая ошибка. Инит должен завершать работу как можно быстрее.
Ошибка тут - int IndexOfBar = iBarShift(ChartID() _Symbol ,PERIOD_H1, StringToTime(StartTime), true); //Считаем индекс бара по заданному времени StartTime
Время можно задавать сразу в формате datetime, не надо машинное время терять на преобразование, вот так работает:
Спасибо за ценные для меня советы.
И отдельное спасибо за то, что подняли мой боевой дух, обнаружив ошибку. Я снова начинаю верить, что смогу подружиться с MQL4
Нельзя в ините рисовать и вычисления производить, это грубая ошибка. Инит должен завершать работу как можно быстрее.
А если вычисления с инита вынести в отдельную функцию, а потом эту функцию вставить в инит, так это не будет грубой ошибкой?
уже все работает.
А если вычисления с инита вынести в отдельную функцию, а потом эту функцию вставить в инит, так это не будет грубой ошибкой?
Будет грубой ошибкой, если код инсполняется слишком долго, то инит завершит работу принудительно и код просто не успеет весь исполниться. Исполняемый код, в том числе и вызовы вторичных функций, должен находиться в предопределенных функциях MQL - OnTick() для советников, OnStart() для скриптов, OnCalculate() для индикаторов.
В ините должен быть самый минимум кода, только то, что надо выполнить один раз, непосредственно перед началом работы программы. Например, инициализация глобальных переменных, массивов, индикаторных буферов.