Skip to main content
Toda formula tecnica usa bar[i]. Si contas mal, detectas mal. Hay dos paradigmas de numeracion completamente opuestos y si no sabes cual usa tu plataforma, tus indicadores van a dar resultados incorrectos.

Por Que Importa

Imaginate que escribis un detector de Swing High. La logica es simple: una barra cuyo high es mayor que el de sus vecinas. Pero “la barra anterior” significa cosas opuestas segun el paradigma:
  • En Python, bars[i-1] es una barra mas vieja (mas a la izquierda)
  • En MQL5, iHigh(sym, tf, i-1) es una barra mas reciente (mas a la derecha)
Si no sabes cual usa tu plataforma, tus patrones se detectan al reves.

Paradigma Array (0 = mas antigua)

Es el que usan Python, JavaScript, APIs REST y la mayoria de lenguajes de programacion.
  • bars[0] = la barra mas antigua (primera en el array)
  • bars[N-1] = la barra mas reciente (ultima en el array)
  • Loop: se recorre forward (de izquierda a derecha)

Paradigma Shift (0 = barra actual)

Es el que usan MetaTrader 4/5 (MQL) y algunas plataformas legacy.
  • iHigh(sym, tf, 0) = barra actual (mas reciente)
  • iHigh(sym, tf, 1) = barra anterior
  • iHigh(sym, tf, N) = N barras atras
  • Loop: se recorre backward (de derecha a izquierda)

Comparacion Side-by-Side

El mayor error al portar codigo entre plataformas es olvidar invertir la direccion del index. Un indicador de Python portado a MQL5 sin ajustar el indexing va a detectar los patrones al reves.

Formula de Conversion

La conversion entre ambos paradigmas es simetrica:

Convencion Innova Trading

En Innova Trading usamos array indexing (0 = mas antigua) en toda la plataforma. La API /api/bars/ohlcv retorna barras ordenadas cronologicamente: bars[0] es la mas vieja, bars[-1] es la mas reciente. Los indicadores ISS, el backtester y el Trading Bridge MCP siguen esta misma convencion.

Siguiente: Swing Points

Ahora que sabes como se numeran las barras, aprende a detectar los puntos de giro del precio.