EDITAR: ¡Aquí está la solución gracias a Johnvanwijk!
https://www.forosforex.com/general-f...-analysis.html


Hola chicos,
Así que he estado tratando de dibujar algunas cosas, sin embargo, me está dando el error Array fuera de rango.
Dibuja las flechas verdes perfectamente pero las flechas rojas simplemente no funcionan.

Si alguien pudiera decirme lo que estoy haciendo mal, sería genial.

No es porque esté tratando de acceder a las velas que aún no están allí o que no conozco.
Entiendo que algunas personas podrían decir que va más allá de las barras disponibles, pero lo he probado incluso con un límite de 1000, lo que estoy seguro es que mi tabla tiene y todavía me da fuera de alcance.

Este es el código:

Código insertado/ --------------------------------------------- --------------------- /| FractalsExercise.mq4 |/| |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property indior_chart_window double Highs # ??????91; # 93 ;; double Lows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Función de inicialización del indicador personalizado |/ ----------------------------------------------- ------------------- int OnInit () {//--- estilo de dibujo SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, VACÍO, 1, clrRed); SetIndexArrow (1, 233);/--- buffer de indicador SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Función de iteración del indicador personalizado |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime time # 91; # 93 ;, const double open # 91; # 93; , const double high # 91; # 93 ;, const double down # 91; # 93 ;, const double close # 91; # 93 ;, const long tick_volume # 91; # 93 ;, const long volume # 91; # 93; , const int spread # 91; # 93;) {//--- int i = 1; int ii = 1; int Limit = Bars - 1; while (i lt; Limit) {if (Alto # 91; i # 93; gt; Alto # 91; i 1 # 93;) {si (Alto # 91; i # 93; gt; Alto # 91; i - 1 # 93;) {Máximos # 91; i # 93; = Alto # 91; i # 93 ;; }} i ; } while (ii lt; Limit) {if (Bajo # 91; ii # 93; lt; Bajo # 91; ii 1 # 93;) {if (Bajo # 91; ii # 93; lt; Bajo # 91; ii - 1 # 93;) {Bajas # 91; ii # 93; = Bajo # 91; ii # 93 ;; }} ii ; }/--- devuelve el valor de prev_calculated para la devolución de la próxima llamada (rates_total); }/ ---------------------------------------------- --------------------

¡Gracias!