Написал код. Все просто. В начале расчитывается и рисуется Болинжер,
далее если стандартное отклонение на каком-то отрезке уменьшается
до или менее определенной константы рисуются две линии мах.
и min. цены за период. Так вот проблема в цикле while, где сравниваются
значения. При вешании индикатора на график терминал подвисает
на ~3 мин.10 сек.Без этого цикла все летает с ним нет. У меня CeleronD
2.66, память 512. Подскажите в чем может быть проблема?
- Bollinger Bands - Трендовые индикаторы - Использование технических индикаторов - Графики котировок, технический и фундаментальный анализ
- Bollinger Bands - Трендовые индикаторы - Индикаторы - Чарты - MetaTrader 5 для Android
- Bollinger Bands - Трендовые индикаторы - Индикаторы - Чарт - MetaTrader 5 для iPhone
Вместо while сделай цикл for.
Talex писал (а):
Написал код. Все просто. В начале расчитывается и рисуется Болинжер, далее если стандартное отклонение на каком-то отрезке уменьшается до или менее определенной константы рисуются две линии мах. и min. цены за период. Так вот проблема в цикле while, где сравниваются значения. При вешании индикатора на график терминал подвисает на ~3 мин.10 сек.Без этого цикла все летает с ним нет. У меня CeleronD 2.66, память 512. Подскажите в чем может быть проблема?
Написал код. Все просто. В начале расчитывается и рисуется Болинжер, далее если стандартное отклонение на каком-то отрезке уменьшается до или менее определенной константы рисуются две линии мах. и min. цены за период. Так вот проблема в цикле while, где сравниваются значения. При вешании индикатора на график терминал подвисает на ~3 мин.10 сек.Без этого цикла все летает с ним нет. У меня CeleronD 2.66, память 512. Подскажите в чем может быть проблема?
while(StDev[n]<=DevPer)
{n++;}
Такой код таит принципиальную опасность, т.к. он предполагает, что условие цикла обязательно не выполнится ещё до окончания перебора всего массива. Должно помочь дополнительное условие, например
while(StDev[n]<=DevPer && n<Bars-1) {n++;}
Спасибо за ответы.while(StDev[n]<=DevPer && n<Bars-1) {n++;}Действительно помогло и я понял в чем была ошибка.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь