Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В советнике используется обращение к индикатору на другом таймфрейме. На тестах в советнике появляются неверные данные от индикатора.
Сам советник работает на M5, а индикатор на H4. Индикаторы, которые вызываются на том же таймфрейме (M5), возвращают правильные значения.
Возвращаемые значения похожи на значения индикатора, но отличаются от реальных, которые видны при наложении индикатора в окне ценового графика.
В чем проблема?
Примерный код вызова индикатора:
Возможные причины:
- не соблюдено правило первых 14 баров: https://www.mql5.com/ru/articles/15 в индикаторе;
- не соблюдена корреляция между текущим ТФ и предзаданным (например, порядковый номер бара с нужным значением экстремума на другом ТФ наверняка будет иной, нежели на предзаданном, а следовательно, и значения high, low и т. д. будут совсем иные) - всё это зависит от конкретной реализации индикатора; необходимо чётко представлять, что именно и с чем нужно скоррелировать и сделать пересчёт по формуле через соотношение разных периодов;
- возможно, остаются старые индикаторные значения в буфере с предыдущего тика и может потребоваться переинициализация буфера пустыми значениями: ArrayInitialize(array,EMPTY_VALUE).
Возможные причины:
- не соблюдено правило первых 14 баров: https://www.mql5.com/ru/articles/15 в индикаторе;
- не соблюдена корреляция между текущим ТФ и предзаданным (например, порядковый номер бара с нужным значением экстремума на другом ТФ наверняка будет иной, нежели на предзаданном, а следовательно, и значения high, low и т. д. будут совсем иные) - всё это зависит от конкретной реализации индикатора;
- возможно, остаются старые значения в индикаторе с предыдущего тика и может потребоваться переинициализация буфера пустыми значениями: ArrayInitialize(array,EMPTY_VALUE).
1. на ценовом графике индикатор отрисовывается на всех барах.
2. анализировал это. Здесь все - ок.
3. не помогло
В справке написано, что допускается представление даты/времени в таком виде:
D'12:00:00'
Присваиваю переменной типа datetime значение:
При компиляции выходит предупреждение:
Почему?
Потому что не указана дата, указано только время 12 часов 00 минут 00 секунд. Дата пишется через точку а не двоеточие.
В справке сказано, что:
Может опускаться либо дата (год, месяц, число), либо время (часы, минуты, секунды), либо все вместе. Диапазон значений от 1 января 1970 года до 31 декабря 3000 года.
Примеры:
D'2004.01.01 00:00' // Новый Год
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //равнозначно D'1980.07.19 12:00:00'
D'01.01.2004' //равнозначно D'01.01.2004 00:00:00'
D'12:30:27' //равнозначно D'[дата компиляции] 12:30:27'
D'' //равнозначно D'[дата компиляции] 00:00:00'
Или я неправильно понимаю?
Сам советник работает на M5, а индикатор на H4. Индикаторы, которые вызываются на том же таймфрейме (M5), возвращают правильные значения.
Продолжаю настаивать на втором пункте.
Вы же сами пишете, что на одинаковых ТФ возвращаются верные значения. На разных - понятное дело, будут возвращаться значения мимо ожидаемых для текущего ТФ.
Возвращаемые значения похожи на значения индикатора, но отличаются от реальных, которые видны при наложении индикатора в окне ценового графика.
Если индикатор умеет возвращать верные значения в соответствии с тем или иным конкретным ТФ, но не умеет, скажем, на M5 отображать то, что делается на H4, то чего же ожидать от возвращаемых значений при совместной работе в паре с советником, висящим не на том же ТФ?
В справке сказано, что:
Может опускаться либо дата (год, месяц, число), либо время (часы, минуты, секунды), либо все вместе. Диапазон значений от 1 января 1970 года до 31 декабря 3000 года.
Примеры:
D'2004.01.01 00:00' // Новый Год
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //равнозначно D'1980.07.19 12:00:00'
D'01.01.2004' //равнозначно D'01.01.2004 00:00:00'
D'12:30:27' //равнозначно D'[дата компиляции] 12:30:27'
D'' //равнозначно D'[дата компиляции] 00:00:00'
Или я не правильно понимаю?
Да да, вы всё правильно поняли, это я в торопять не обратил внимания.
Видимо изначально так и было, потом отменили а справку не поправили.
В любом случае вопрос в силе, что это неточность справки или баг?
Urain:
...
В любом случае вопрос в силе, что это неточность справки или баг?
Пример скрипта:
Так работает. Просто не люблю, когда предупреждения после компиляции.)) Может, кто-нибудь из разработчиков прокомментирует.В любом случае вопрос в силе, что это неточность справки или баг?
В советнике используется обращение к индикатору на другом таймфрейме. На тестах в советнике появляются неверные данные от индикатора.
Сам советник работает на M5, а индикатор на H4. Индикаторы, которые вызываются на том же таймфрейме (M5), возвращают правильные значения.
Возвращаемые значения похожи на значения индикатора, но отличаются от реальных, которые видны при наложении индикатора в окне ценового графика.
В чем проблема?
Примерный код вызова индикатора:
Флаг AS_SERIES не может быть установлен у многомерных массивов и у статических массивов.
Попробуйте
или как-то так