![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Потому, что Индикатор в OnCalculate уже передаёт все массивы-таймсерии по текущему символу и таймфрейму.
В индикаторе УЖЕ есть массивы-таймсерии OHLC, volume, tick volume и spread.
При этом помните про индикаторы (порядок индексации) в MQL5: просто распечатайте значение
Так а в чём моя проблема? Код выше
Так а в чём моя проблема? Код выше
Как вы можете словами с переводом переменных в числа прочесть эти строки когда в функцию передали 2 или большее значение переменной i
Вот этот код
Что-то выводит на график. Безинформативно, конечно.
А Ваш код вешает график так, что на нем все остальные индикаторы работать перестают. Требуется перезагрузка терминала. Так что проблема где-то в коде расчета показаний.
Добавлено. Проблема в функции Value(int i, int o).
Добавлено 2:
Когда функция доходит до последнего бара, то iClose(Symbol(),PERIOD_CURRENT,a+1) == 0 и iOpen(Symbol(),PERIOD_CURRENT,a+1) == 0. Попадаете в бесконечный цикл, и график вешается. Это же индикатор.
Вот этот код
Что-то выводит на график. Безинформативно, конечно.
А Ваш код вешает график так, что на нем все остальные индикаторы работать перестают. Требуется перезагрузка терминала. Так что проблема где-то в коде расчета показаний.
Добавлено. Проблема в функции Value(int i, int o).
Добавлено 2:
Когда функция доходит до последнего бара, то iClose(Symbol(),PERIOD_CURRENT,a+1) == 0 и iOpen(Symbol(),PERIOD_CURRENT,a+1) == 0. Попадаете в бесконечный цикл, и график вешается. Это же индикатор.
Честно говоря мало что понял, но то что логика расчёта точно такая же это 100%, но на MQL4 это индикатор работает
У меня в коде нет бесконечных циклов, один ограничен значением limit и два других for_buy и for_sell которые при не совпадении направления цены становятся false
Может дело не в коде а в какой-то существенной разницей между MQL4 и MQL5? Например с чем вы сами на практике сталкивались?
Честно говоря мало что понял, но то что логика расчёта точно такая же это 100%, но на MQL4 это индикатор работает
У меня в коде нет бесконечных циклов, один ограничен значением limit и два других for_buy и for_sell которые при не совпадении направления цены становятся false
Может дело не в коде а в какой-то существенной разницей между MQL4 и MQL5? Например с чем вы сами на практике сталкивались?
Как вы можете словами с переводом переменных в числа прочесть эти строки когда в функцию передали 2 или большее значение переменной i
Это в функции Value(), для того чтобы эта функция анализировала предыдущие свечи до которых ещё не дошел тот цикл в котором уже присваиваются значения буфферам. Ни знаю может ли быть в этом ошибка, но на MQL4 это работает
Это в функции Value(), для того чтобы эта функция анализировала предыдущие свечи до которых ещё не дошел тот цикл в котором уже присваиваются значения буфферам. Ни знаю может ли быть в этом ошибка, но на MQL4 это работает
Этот цикл работает, пока for_buy == true
На последнем баре выполняется нужное условие, значит, цикл выполняется дальше. А дальше значение а становится больше баров на графике. Методы iClose и iOpen возвращают 0. И условие
Выполняется всегда. А знчит, цикл повторяется бесконечно.
Попробуйте поставить жесткое условие ">" вместо ">="