Software de Kardex e Inventarios

Kardex Tauro

El Software de Inventarios Kardex Tauro® está diseñado para administrar eficazmente su Bodega o Almacén y se aprende a manejar en muy corto tiempo.

Kardex Tauro es gratuito para uso no comercial.
No requiere conexión a internet, funciona en Windows

Código Python: RSI de 14 periodos desde cero (descarga gratis)

Código Python: RSI de 14 periodos desde cero (descarga gratis)

Todo negocio tiene un precio que le importa: la mercancía que compra para revender, la materia prima, el producto que le hace competencia o la moneda en la que le pagan. Cuando ese precio se mueve mucho, la pregunta aparece sola: ¿subió mucho o poco en las últimas semanas? El índice de fuerza relativa, conocido por sus siglas en inglés RSI, responde a esa pregunta con un solo número: mide si el precio subió mucho o poco en los últimos días, en una escala de cero a cien. En este artículo explicamos qué hay detrás de ese número, qué significan las palabras sobrecompra y sobreventa, y le entregamos un programa de Python que lo calcula desde cero, sin librerías de análisis técnico, para que usted lo ejecute en su computador y vea la tabla en pantalla.

El programa sirve para el dueño de negocio curioso que quiere entender de qué hablan los analistas, para el contador que revisa informes y para el almacenista que ve moverse los precios de la mercancía. No hay que ser programador: el paquete trae el código comentado línea por línea y un archivo de instrucciones escritas.

⬇ Descargar el código (ZIP)

Aviso: esto es material educativo: no es una recomendación de compra ni de venta. Los precios de ejemplo del paquete son inventados y los datos históricos se citan solo para practicar el cálculo. Un resultado pasado no garantiza nada en el futuro. Antes de tomar una decisión con su dinero, consulte a un profesional autorizado.

Qué trae el paquete

ArchivoPara qué sirve
rsi_desde_cero.pyEl programa, comentado línea por línea, escrito solo con la biblioteca estándar de Python.
datos/precios.csvCiento ochenta cierres diarios de ejemplo, precios inventados, para practicar el cálculo.
salida_ejemplo.txtLa salida real que usted debe obtener al ejecutarlo, para comparar con la suya.
LEEME.mdLas instrucciones escritas: qué hace, cómo se ejecuta y qué significa cada resultado.
salida/rsi.csvEl archivo que se genera al ejecutar: fecha, cierre, subida, bajada y RSI de cada día.

Qué hace el programa, paso a paso

  1. Lee el archivo datos/precios.csv, que trae el cierre de cada día.
  2. Compara el cierre de cada día con el del día anterior y separa lo que subió de lo que bajó. Un día nunca cuenta en las dos columnas a la vez.
  3. Calcula dos promedios de catorce días: uno de las subidas y otro de las bajadas. Esos dos promedios son la materia prima del índice.
  4. Convierte los dos promedios en un único número entre cero y cien. Cuando las subidas pesan más que las bajadas, el número se acerca a cien; cuando pesan más las bajadas, se acerca a cero.
  5. Aplica el suavizado de Wilder, que le da más peso al día más reciente sin olvidar la historia.
  6. Imprime en la consola las últimas quince filas con su RSI y cuenta cuántos días quedaron por encima de setenta (sobrecompra) y cuántos por debajo de treinta (sobreventa).
  7. Guarda todo en salida/rsi.csv, un archivo que se abre en Excel sin conversiones raras.

Cómo ejecutarlo

Solo necesita Python 3.11 o superior instalado (la descarga normal de python.org, la misma para Windows, Mac y Linux). Descomprima el ZIP en una carpeta, abra la terminal en esa carpeta y escriba el nombre del programa:

python rsi_desde_cero.py

No hay que instalar nada más: el programa usa únicamente la biblioteca estándar de Python, así que no aparece esa lista interminable de paquetes que a veces asusta. Si el computador responde que Python no se reconoce, pruebe con python3 o instale de nuevo marcando la casilla que agrega Python al PATH. Al terminar, el programa escribe el resultado en salida/rsi.csv y vuelve a mostrar el aviso educativo.

El código, explicado

Estas son cuatro partes reales del programa, copiadas tal como vienen en el archivo del paquete. Debajo de cada una explicamos qué hace, en palabras sencillas.

1. Las rutas. El programa calcula primero la carpeta donde vive él mismo. Por eso funciona igual si usted lo abre desde el escritorio o desde la terminal, y no depende de dónde esté parado cuando lo ejecuta:

# # La carpeta de este mismo archivo: así el programa corre desde cualquier sitio
BASE = Path(__file__).resolve().parent
ENTRADA = BASE / "datos" / "precios.csv"          # # precios de ejemplo que viajan dentro del ZIP
SALIDA = BASE / "salida" / "rsi.csv"              # # resultado del RSI, listo para abrir en Excel

2. La fórmula. Aquí está el corazón del índice. La fuerza relativa es el promedio de las subidas dividido entre el promedio de las bajadas, y el RSI convierte ese cociente a una escala de cero a cien. Si en esas dos semanas no hubo ninguna bajada, el índice vale cien; si no hubo ni subidas ni bajadas, vale cincuenta. Nada de esto mira el futuro: solo mira lo que ya pasó.

def rsi_de(media_subidas: Decimal, media_bajadas: Decimal) -> Decimal:
    """Pasa las dos medias (subidas y bajadas) al valor del RSI, entre 0 y 100."""
    if media_bajadas == 0:
        # # Sin bajadas en la media el RSI es 100; sin subidas ni bajadas es 50
        return Decimal("100.00") if media_subidas > 0 else Decimal("50.00")
    fuerza = media_subidas / media_bajadas
    return redondear(Decimal("100") - Decimal("100") / (Decimal("1") + fuerza))

3. El suavizado de Wilder. La primera media es un promedio simple de los catorce primeros días; de ahí en adelante el programa usa (anterior por trece, más el día nuevo) dividido catorce. Ese detalle es el que distingue al RSI clásico de una media móvil común: el dato más reciente pesa un poco más que los viejos.

    # # Suavizado de Wilder: la primera media es simple y luego (anterior * 13 + nuevo) / 14
    media_subidas = sum((f["subida"] for f in filas[1:PERIODOS + 1]), Decimal("0")) / PERIODOS
    media_bajadas = sum((f["bajada"] for f in filas[1:PERIODOS + 1]), Decimal("0")) / PERIODOS

4. La parte honesta. El programa imprime la lectura en palabras y lo dice sin adornos: el RSI describe lo que YA pasó, es decir, cuánto subió y cuánto bajó el precio en los últimos días. Nadie puede saber si mañana sube o baja. Un índice bajo no es una orden de compra, ni un índice alto es una orden de venta: son etiquetas para describir el pasado reciente.

    print("  El RSI mide lo que YA pasó: cuánto subió y cuánto bajó el precio en los últimos días.")
    print("  Nadie puede saber si mañana sube o baja: el pasado no garantiza el futuro.")

Qué vas a ver en pantalla

Con los datos de ejemplo el programa imprime las últimas quince filas. Este es un trozo literal de la salida real, con los últimos días del archivo:

Fecha           Cierre    Subida    Bajada      RSI
---------------------------------------------------
2026-06-23      118,49      1,53      0,00    50,19
2026-06-24      116,43      0,00      2,06    45,05
2026-06-25      117,39      0,96      0,00    47,74
2026-06-26      115,28      0,00      2,11    42,79
2026-06-27      115,53      0,25      0,00    43,54
2026-06-28      117,18      1,65      0,00    48,33
2026-06-29      116,97      0,00      0,21    47,77
2026-06-30      117,24      0,27      0,00    48,59
---------------------------------------------------

Y al final resume el ejercicio completo: de los ciento sesenta y seis días que tienen valor de RSI, treinta y uno quedaron en sobrecompra, cinco en sobreventa y ciento treinta en la zona neutra. El último día del archivo el RSI fue 48,59, es decir, ni un extremo ni el otro.

Conviene decir los dos conceptos con calma. Sobrecompra no significa que el precio esté caro ni que vaya a bajar: significa que en esas dos semanas las subidas pesaron mucho más que las bajadas, tanto que el índice pasó de setenta. Sobreventa es lo contrario: las bajadas pesaron mucho más y el índice quedó por debajo de treinta. Las dos son formas de decir que hubo mucho movimiento en poco tiempo, no señales que anuncien el mañana. En el ejemplo, alrededor de uno de cada cinco días con índice terminó en un extremo: un precio inquieto pasa buena parte de su vida en los extremos, y eso también es información.

Errores comunes y consejos

  • Las primeras catorce filas no tienen RSI, y no es un error. El índice necesita catorce días de historia para arrancar; por eso el primer valor aparece en la fila quince.
  • No se encuentra el archivo. Casi siempre pasa porque la terminal se abrió en otra carpeta. El programa busca datos/precios.csv junto a él mismo, así que basta con abrir la terminal dentro de la carpeta descomprimida.
  • Los precios se calculan con decimales exactos. El programa trabaja con la clase Decimal y no con números de coma flotante: así el redondeo no arrastra esos errores diminutos que aparecen al sumar decimales binarios.
  • Cambiar los datos cambia el resultado, y eso es lo interesante. Si reemplaza el archivo de precios por el suyo, el RSI se recalcula solo. Mantenga las mismas columnas y el mismo orden de fechas, de la más vieja a la más nueva.
  • No lea el índice aislado. Dos series distintas pueden dar el mismo RSI por razones opuestas: una que sube despacio todos los días y otra que rebota con fuerza. El número resume movimiento, no causas.
  • Fechas seguidas, sin saltos. Si borra días feriados o fines de semana, el programa no protesta, pero el promedio cambia de significado. Use series completas.
  • No se pelee con la consola. Si la tabla se ve desalineada, cambie el tamaño de la ventana o el tipo de letra; el archivo salida/rsi.csv conserva los números completos.

Cuándo esto no alcanza

Este programa resuelve una pregunta muy concreta a partir de un archivo de precios. Cuando el negocio crece, el problema deja de ser un indicador y pasa a ser el inventario completo: qué entró, qué salió, a qué costo quedó cada unidad, cuánto vale hoy el almacén y quién movió qué. Para eso ya no alcanza con Excel y con scripts sueltos: ahí entra Kardex Tauro, un programa gratuito que ordena el inventario, la ficha de existencias y los costos de una pyme, sin que usted tenga que armar fórmulas. La idea es simple: el script es para aprender y experimentar; el software es para el día a día del negocio. Si quiere verlo, está en el sitio del blog.

Si quiere usar sus propios precios

Reemplace el archivo datos/precios.csv por el suyo y vuelva a ejecutar el programa. El formato es mínimo: una fila de encabezados y una fila por día, separadas por comas, con las fechas de la más vieja a la más nueva.

ColumnaQué lleva
fechaEl día en formato año-mes-día, en orden cronológico.
cierreEl precio de cierre de ese día.

Los datos reales que trae el paquete son históricos de práctica y vienen de dos fuentes públicas: CoinGecko (api.coingecko.com) para el bitcoin, y la Reserva Federal de St. Louis, serie SP500, https://fred.stlouisfed.org/series/SP500. Las dos se descargaron el 2026-09-25 y se citan solo para practicar el cálculo, nunca para juzgar el mercado. El programa no depende de ninguna página web para funcionar: los datos viajan dentro del ZIP.

Aviso: lo repetimos porque importa: esto es material educativo y no es una recomendación de compra ni de venta. La fuente de los datos reales está citada arriba, con su enlace a la vista, y el paquete lleva este mismo descargo por escrito en el archivo de instrucciones. Ningún resultado del pasado garantiza nada en el futuro; consulte a un profesional autorizado antes de invertir.

⬇ Descargar el código (ZIP)

Descargue el paquete, ejecútelo con sus propios números y compare la salida con la que muestra este artículo. Aprender con datos propios, y con la calculadora a la vista, es la forma más rápida de entender qué dice un indicador y qué no dice. Si le sirve, compártalo con su contador o con quien lleva el almacén.

Compartir
Enlace copiado
Microsoft Store desde Microsoft StoreDescargar gratis
Chatea por WhatsApp