Quant500 Academy

3. Calcular el Relative Strength Rating: comparar cada acción con el mercado

Nivel 4: Screening de Acciones

Antes de poder aplicar el Trend Template hace falta un dato que no viene ya calculado en ningún sitio: el Relative Strength Rating de cada acción frente al mercado. Se calcula en dos pasos.

El primer paso es calcular, para cada acción y para el propio índice, el retorno acumulado durante el periodo que te interesa — normalmente el último año.

retorno_indice = (1 + indice["Adj Close"].pct_change()).cumprod().iloc[-1]

retorno_multiplo = {}
for ticker in tickers:
    df = descargar_precios(ticker)
    retorno_accion = (1 + df["Adj Close"].pct_change()).cumprod().iloc[-1]
    retorno_multiplo[ticker] = round(retorno_accion / retorno_indice, 2)

pct_change() calcula el retorno porcentual día a día; sumarle 1 y aplicar cumprod() (producto acumulado) da el retorno compuesto total del periodo. Dividir el retorno de la acción entre el retorno del índice da el "múltiplo de retorno": un valor de 2.0 significa que esa acción ha rendido el doble que el mercado en el mismo periodo; un valor de 0.5, la mitad.

El segundo paso convierte ese múltiplo en un percentil dentro de todo el universo de acciones, que es lo que realmente se conoce como RS Rating:

import pandas as pd

tabla = pd.DataFrame(list(retorno_multiplo.items()), columns=["Ticker", "Retorno_multiplo"])
tabla["RS_Rating"] = tabla["Retorno_multiplo"].rank(pct=True) * 100

top_30 = tabla[tabla["RS_Rating"] >= tabla["RS_Rating"].quantile(0.70)]

rank(pct=True) convierte cada valor en su percentil dentro de la columna completa, en vez de en su valor absoluto — así, una acción con RS_Rating de 85 significa que ha rendido mejor que el 85% de todas las demás acciones del universo, sin importar el número exacto de su múltiplo de retorno. Multiplicar por 100 lo convierte en la escala de 0 a 100 que Minervini usa en su séptima condición.

quantile(0.70) calcula el valor que deja por debajo al 70% de los datos — filtrar por RS_Rating >= ese valor se queda, por definición, con el 30% de acciones con mejor comportamiento relativo. Es exactamente el mismo concepto de percentil que decide si una acción pasa o no la séptima condición del Trend Template.

Para ampliar esta lección

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.