Wednesday, September 23, 2026
Construa um Sinal de Sentimento de Notícias para Sua Watchlist
Construa um Sinal de Sentimento de Notícias para Sua Watchlist
O sentimento por artigo é útil, mas o que você costuma querer é um único número por empresa: o fluxo de notícias está pendendo para o positivo ou para o negativo agora? Neste tutorial você vai transformar o sentimento e a confiança da finlight em uma pontuação ponderada por confiança por ticker, para uma watchlist inteira, com Python e pandas.
A ideia
Cada artigo vem com um sentiment (positive, neutral, negative) e uma confidence. Vamos:
- Puxar os artigos recentes de cada ticker.
- Mapear o sentimento para um número:
+1,0,-1. - Ponderar cada artigo pela sua confiança e tirar a média por ticker.
O resultado é uma pontuação entre -1 e +1 que resume o tom das notícias de cada empresa.
O 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)
# Sentimento médio ponderado por confiança 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))
O que você obtém
signal é um número por ticker:
ticker
NVDA 0.62
AAPL 0.18
TSLA -0.34
Uma pontuação positiva significa que o fluxo recente de notícias pende para o positivo, uma pontuação
negativa significa que pende para o negativo, e a magnitude reflete quão forte e confiante é essa
tendência. Ponderar por confidence significa que um lote de notícias de alta confiança move a
pontuação mais do que uma pilha de notícias incertas.
Como melhorar
- Adicione ponderação por recência: multiplique por um decaimento temporal para que a notícia de hoje conte mais que a da semana passada.
- Adicione volume: acompanhe a contagem de artigos ao lado da pontuação, já que uma pontuação forte baseada em dois artigos é uma evidência mais fraca que a mesma pontuação em cinquenta.
- Torne incremental: rode novamente em um cronograma, ou troque para o WebSocket para atualizar o sinal em tempo real.
Uma ressalva
O sentimento é uma entrada, não uma previsão de preço. Os mercados podem ignorar más notícias ou reagir em excesso a boas notícias. Trate essa pontuação como uma feature a ser combinada com volume, fonte e seus próprios modelos, não como uma regra de trading isolada.
Para onde ir em seguida
- O que É Análise de Sentimento de Notícias Financeiras?
- Filtragem Avançada para delimitar o sinal com precisão.
- Documentação completa.
