Wednesday, September 23, 2026
Construye una señal de sentimiento de noticias para tu watchlist
Construye una señal de sentimiento de noticias para tu watchlist
El sentimiento por artículo es útil, pero lo que a menudo quieres es un único número por empresa: ¿el flujo de noticias se inclina ahora mismo hacia lo positivo o lo negativo? En este tutorial convertirás el sentimiento y la confianza de finlight en una única puntuación ponderada por confianza por ticker, para toda una watchlist, con Python y pandas.
La idea
Cada artículo viene con un sentiment (positive, neutral, negative) y una confidence. Vamos a:
- Recuperar artículos recientes de cada ticker.
- Mapear el sentimiento a un número:
+1,0,-1. - Ponderar cada artículo por su confianza y promediar por ticker.
El resultado es una puntuación entre -1 y +1 que resume el tono de las noticias de cada empresa.
El código
import pandas as pd
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams
client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))
WATCHLIST = ["AAPL", "NVDA", "TSLA"]
SCORE = {"positive": 1, "neutral": 0, "negative": -1}
rows = []
for ticker in WATCHLIST:
response = client.articles.fetch_articles(
GetArticlesParams(tickers=[ticker], from_="2026-06-01", pageSize=100)
)
for article in response.articles:
if article.sentiment is None:
continue
rows.append({
"ticker": ticker,
"score": SCORE.get(article.sentiment, 0),
"confidence": article.confidence or 0.0,
})
df = pd.DataFrame(rows)
# Sentimiento medio ponderado por confianza por ticker
df["weighted"] = df["score"] * df["confidence"]
signal = df.groupby("ticker").apply(
lambda g: g["weighted"].sum() / g["confidence"].sum()
)
print(signal.sort_values(ascending=False))
Qué obtienes
signal es un número por ticker:
ticker
NVDA 0.62
AAPL 0.18
TSLA -0.34
Una puntuación positiva significa que el flujo de noticias reciente se inclina a lo positivo, una
negativa significa que se inclina a lo negativo, y la magnitud refleja cuán fuerte y confiable es esa
inclinación. Ponderar por confidence significa que un lote de noticias de alta confianza mueve la
puntuación más que un montón de noticias inciertas.
Cómo mejorarla
- Añade ponderación por recencia: multiplica por un decaimiento temporal para que las noticias de hoy cuenten más que las de la semana pasada.
- Añade volumen: registra el número de artículos junto a la puntuación, ya que una puntuación fuerte basada en dos artículos es una evidencia más débil que la misma puntuación basada en cincuenta.
- Hazla incremental: vuelve a ejecutarla de forma programada, o cambia al WebSocket para actualizar la señal en tiempo real.
Una advertencia
El sentimiento es una entrada, no una predicción de precio. Los mercados pueden ignorar las malas noticias o reaccionar de forma exagerada a las buenas. Trata esta puntuación como una característica para combinar con volumen, fuente y tus propios modelos, no como una regla de trading independiente.
Adónde ir después
- ¿Qué es el análisis de sentimiento de noticias financieras?
- Filtrado avanzado para acotar la señal con precisión.
- Documentación completa.
