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)
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)
- Python
- JavaScript
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 anterioriHigh(sym, tf, N)= N barras atras- Loop: se recorre backward (de derecha a izquierda)
Comparacion Side-by-Side
Formula de Conversion
La conversion entre ambos paradigmas es simetrica:Ejemplo con 100 barras
Ejemplo con 100 barras
Funcion de conversion en Python
Funcion de conversion en Python
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.