Подскажите пожалуйста правильное решение
Тема наверно не новая, но найти не могу
Мне надо в диапазоне за n-баров найти самый большой бар и самый маленький бар (High - Low)/Point = пункты
Пример того что я хочу получить:
параметр поиска баров =30
надо пропустить текущий и предыдущий бары
далее начать поиск на промежутке 30 баров
буду рисовать кривую и надо искать по всей истории по 30 баров,
причём с появлением нового бара тридцатый бар станет 31-вым и он уже не учитывается
Тут ответ.
![Вопросы от начинающих MQL5 MT5 MetaTrader 5 - Попробуйте создать массив из 30-ти цен открытия свечей, чтобы проверять максимумы и минимумы. Вопросы от начинающих MQL5 MT5 MetaTrader 5 - Попробуйте создать массив из 30-ти цен открытия свечей, чтобы проверять максимумы и минимумы.](https://c.mql5.com/36/78/voprosi-ot-nachinauschih-mql5-mt5.jpg)
- 2023.06.27
- www.mql5.com
Запускайте цикл с шагом range, когда rates_total - prev_calculated > range
void maxMinBar(double &max, double &min, int start, int range) { double minBar = DBL_MAX, maxBar = 0; for (int i = start; i < start + range && i < Bars(); i++) { double barHeight = (High(i) - Low(i)) / _Point ; if( barHeight < minBar) { minBar = barHeight; } if( barHeight > maxBar) { maxBar = barHeight; } } max = maxBar; min = minBar; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Bars() { return iBars(_Symbol, PERIOD_CURRENT); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double High(int index) { return iHigh(_Symbol, PERIOD_CURRENT, index); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Low(int index) { return iLow(_Symbol, PERIOD_CURRENT, index); }
Подскажите как убрать из цикла текущий бар и предыдущий для расчета
В расчёте участвуют 30 баров, но отсчёт будет начинаться после текущего бара и предыдущего
extern int History = 30; double MaxMinBar(int limit) { int i, bars = iBars(NULL, 0); for (i=limit; i<limit + History && i<bars; i++) {
Ну это я знаю, не в этом вопрос,
если считать конкретно бар то ваш метод правильный (0, 1 ...),
а тут надо найти в диапазоне бар с нужным значением
Т.е. надо исключить два бара и искать далее на 30-ти барах
Ну это я знаю, не в этом вопрос,
если считать конкретно бар то ваш метод правильный (0, 1 ...),
а тут надо найти в диапазоне бар с нужным значением
Т.е. надо исключить два бара и искать далее на 30-ти барах
Запускать цикл со второго (по индексу второго... по-человечески он третий) бара
Подскажите как убрать из цикла текущий бар и предыдущий для расчета
В расчёте участвуют 30 баров, но отсчёт будет начинаться после текущего бара и предыдущего
Вы ответы читаете?
https://www.mql5.com/ru/forum/6343/page1460#comment_47801350
![Вопросы от начинающих MQL5 MT5 MetaTrader 5 - Попробуйте создать массив из 30-ти цен открытия свечей, чтобы проверять максимумы и минимумы. Вопросы от начинающих MQL5 MT5 MetaTrader 5 - Попробуйте создать массив из 30-ти цен открытия свечей, чтобы проверять максимумы и минимумы.](https://c.mql5.com/36/78/voprosi-ot-nachinauschih-mql5-mt5__1.jpg)
- 2023.06.27
- www.mql5.com
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите пожалуйста правильное решение
Тема наверно не новая, но найти не могу
Мне надо в диапазоне за n-баров найти самый большой бар и самый маленький бар (High - Low)/Point = пункты
Пример того что я хочу получить:
параметр поиска баров =30
надо пропустить текущий и предыдущий бары
далее начать поиск на промежутке 30 баров
буду рисовать кривую и надо искать по всей истории по 30 баров,
причём с появлением нового бара тридцатый бар станет 31-вым и он уже не учитывается