- Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
- Определение максимальной и минимальной цены закрытия за предыдущий день часового бара
- Вопросы от начинающих MQL5 MT5 MetaTrader 5
Добрый день, пишу индикатор на mql5. Зашел в тупик, нужно найти максимальную и минимальную цену бара. Не цену их закрытия. В инете не нашел. В справке нашел PRICE_HIGH и PRICE_LOW . Но не пойму как это принят. Как правильно сделать?
- www.mql5.com
Добрый день, пишу индикатор на mql5. Зашел в тупик, нужно найти максимальную и минимальную цену бара. Не закрытие, а именно макс и мин цену бара. В инете не нашел. В справке нашел PRICE_HIGH и PRICE_LOW . Но не пойму как это принят. Как правильно сделать?
У бара есть четыре цены: OHLC - Open, High, Low, Close. Соответственно Вам нужны High и Low. В индикаторе в OnCalculate Вам доступны такие массивы:
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- checking for bars count
Остаётся определится с номером бара и потом получить для него значения. Примерно так:
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- checking for bars count double low_bar=low[i]; double high_bar=high[i]; ...
Вот очень лёгкий способ понять, какой индекс имеет бар в индикаторе.
Берём любой стандартный MQL5 индикатор и запускаем (из редактора MetaEditor) отладку (1), затем возвращаемся в редактор и ставим точку останова (2). После этого нужно добавить наблюдение для массива time с индексом "0" (3) и для массива time с индексом rates_total-1 (4).
Сразу видно, что бар с индексом [rates_total-1] содержит самое последнее время. Другими словами самый правый бар имеет индекс [rates_total-1]. Зная индекс самого правого бара, можно высчитать индекс любого интересуемого бара.
Спасибо за помощь)
Пожалуйста :)
Спрашивайте, не стесняйтесь, для этого форум и нужен.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования