Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 195
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще раз просмотрите код индикатора из справки https://www.mql5.com/ru/docs/indicators/ima . Обратите внимание на строчки в OnInit():
Здесь создается хендл индикатора для периода - "period".
Добрый день.
Пытаюсь получить последние значение фрактала:
Handle[Number]=iFractals(Symbol_,0);
CopyBuffer(Handle[Number],UPPER_LINE,4,100,Upper)
upenv[Number]=Upper[0];
но иногда получаю какое-то мистическое число upenv[Number]=1.797693134862316e+308
Если бы это число было 0, тогда проблему можно решить так:
if(upenv[Number]!=Upper[0] && Upper[0]!=0)
upenv[Number]=Upper[0];
Где моя ошибка? Что я делаю не так? Как получить последние значение фрактала пока оно не изменится?
Еще раз просмотрите код индикатора из справки https://www.mql5.com/ru/docs/indicators/ima . Обратите внимание на строчки в OnInit():
Здесь создается хендл индикатора для периода - "period".
Все нашел ошибку в размере масива, это и была основная моя ошибка изначального кода. Но почему график терминала ведет себя не адекватно (блымает, обновляется, смещается и т.д.). Спасибо.
Вы на каждом тике (т.е. в функции OnCalculate()) создаете хендл индикатора. Это неправильно. Хендл индикатора следует создавать в OnInit().
Все нашел ошибку в размере масива, это и была основная моя ошибка изначального кода. Но почему график терминала ведет себя не адекватно (блымает, обновляется, смещается и т.д.). Спасибо.
Вы на каждом тике (т.е. в функции OnCalculate()) создаете хендл индикатора. Это неправильно. Хендл индикатора следует создавать в OnInit().
А если мне необходимо в индикаторе показания MACD (M1;M5;M15;H1;H4;D1;W1), то на каждый период необходимо создавать хендл?
Да, сделаите в OnInit столько хэндлов индикаторов сколько надо.
Все нашел ошибку в размере масива, это и была основная моя ошибка изначального кода. Но почему график терминала ведет себя не адекватно (блымает, обновляется, смещается и т.д.). Спасибо.
Вы на каждом тике (т.е. в функции OnCalculate()) создаете хендл индикатора. Это неправильно. Хендл индикатора следует создавать в OnInit().
Скорее всего что на графике скажем М15 используются данные D1, или я ошибаюсь.
Вы на каждом тике (т.е. в функции OnCalculate()) создаете хендл индикатора. Это неправильно. Хендл индикатора следует создавать в OnInit(). На графике M15 можно использовать данные с D1. Правда в этом случае данные могут быть неготовы - читаем "Организация доступа к данным" https://www.mql5.com/ru/docs/series/timeseries_access