Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я этих индикаторов переделал больше сотни. Не забывайте, что это не обычный массив, а буфер индикатора.
Добро. Не забуду. А почему тогда такие вопросы с непониманием сути происходящего? Не буду говорить, что дело не в количестве, а в правильности.
Количественный показатель != качественному. И так у многих во фрилансе...
Вы хотите сказать, что опыт не приходит со временем? И что сделав 20 советников вы больше знаете чем человек который сделал 500-1000 советников?
Я сделал несколько тысяч советников и несколько тысяч индикаторов. Но об опыте не говорю и продолжаю учиться. Если вам не интересны знания, а лишь собственное количество сделанного - то можете не слушать ответов участников форума и продолжать гордиться количеством. Впрочем, я вам достаточно развёрнуто выше всё рассказал для понимания сути названных вами стандартных функций, их предназначения и того, что они каждая делают, и желаю выйти из обсуждения - уже достаточно информации. Извините.
Соглашусь, инициализация в расчетах необходима.
Если вы этого не делаете, то все ваши сотни индикаторов, глючат при подгрузке истории.
Недавно тема была - человек искренне удивлялся, что в мт4 ему не гарантируют синхронизацию серии при первом расчете.
А вы всегда инициализируете буферы в функции OnCalculate() ? Скажу больше и никто не инициализирует в MT4 и в МТ5. Я много индикаторов за все время повидал. Откройте примеры МТ5 и МТ4 и посмотрите сначала.
При этом при вычислениях не обязательно также заполнять буфер значением EMPTY_VALUE в MT4 и в МТ5. Нужно лишь заполнить нужные значения индикатора. А это значит, что буфер был инициализирован изначально.
Не говорите за всех, обязательно ошибетесь. В МТ4 не нужно инициализировать буферы начальными значениями, в МТ5 - нужно. Ваш код по инициализации правильный. Так и делайте. Еще рекомендую при формировании каждого нового бара проводить инициализацию всех rates_total-1 буферных значений, иначе мусор может появиться.
Соглашусь, инициализация в расчетах необходима.
Если вы этого не делаете, то все ваши сотни индикаторов, глючат при подгрузке истории.
Недавно тема была - человек искренне удивлялся, что в мт4 ему не гарантируют синхронизацию серии при первом расчете.
Как я понимаю, в мой огород камень. Дружище, Вы меня не убедили в обсуждении, что ошибки нет. Как и разработчики. То, что Вы научились обходить проблему, не значит, что ее нет.
Справедливости ради, в документации нет явного пояснения, что такое "пустое значение" (идентификатор PLOT_EMPTY_VALUE). Потому и возникают разнопонимания по части использования этого свойства.
Посмотрел документацию, нашел только в одном месте (как между прочим) явное пояснение https://www.mql5.com/ru/docs/customind/indicators_examples/draw_arrow:
Инициализация буферов пустым значением не производится
И топикстартер прав, SetIndexEmptyValue() в MQL4 не тоже самое, что PlotIndexSetDouble(...,PLOT_EMPTY_VALUE,...) в MQL5.
Мало того, PlotIndexSetDouble(...,PLOT_EMPTY_VALUE,...) в MQL4 и в MQL5 работают по-разному
Чтобы проверить, можно запустить код в МТ4 и в МТ5:
И увидим, что в МТ4 действительно происходит инициализация буфера "пустым значением" PLOT_EMPTY_VALUE.
Вкладка Эксперты МТ4:
Вкладка Эксперты МТ5:
А если прикрепить просто индикатор на график, тоже инициализации буферов нет.
есть, заданным пустым значением, но не всегда.
А вы всегда инициализируете буферы в функции OnCalculate() ? Скажу больше и никто не инициализирует в MT4 и в МТ5. Я много индикаторов за все время повидал. Откройте примеры МТ5 и МТ4 и посмотрите сначала.
Это не так. Здесь вы откровенно заблуждаетесь.
Откройте сами примеры MQL4 и MQL5 -- внимательно посмотрите -- нетрудно заметить, что во всех без исключения штатных примерах MQL5 есть явная инициализация буфера.
p.s. Или приведите хоть один штатный пример MQL5, где явной инициализации буфера нет.
В МТ5 инициализация буфера индикатора производится в тестере стратегий. Вот что самое интересное, а на реальном графике нет.
А должно быть одинаково. Раз там нет то и там нет. Я про тестер и про график.