O que trader-in-news faz?
Um gráfico pode parecer perfeito e ainda assim estar prestes a abrir com gap por causa de uma data de resultados, uma invocação de penhora do promoter ou uma renúncia surpresa do diretor-presidente. Antes que um setup se torne uma negociação, esta skill lê os feeds que carregam essas informações primeiro, para cada ação na watchlist, e informa apenas o que é novo. Ela também exibe a distância de cada ação em relação ao fechamento anterior, para que uma manchete e um movimento fiquem lado a lado.
Ferramenta nesta pasta (Python da biblioteca padrão, sem chaves, sem cadastro):
python3 "${CLAUDE_SKILL_DIR}/news.py" # watchlist + plan + portfolio
python3 "${CLAUDE_SKILL_DIR}/news.py" --tickers RELIANCE TCS M&M --hours 12
python3 "${CLAUDE_SKILL_DIR}/news.py" --tickers BSE:500325 HDFCBANK.NS --json
python3 "${CLAUDE_SKILL_DIR}/news.py" --no-filings --no-google # Apenas manchetes do Yahoo
Símbolos: RELIANCE, RELIANCE.NS, NSE:RELIANCE, RELIANCE.BO,
BSE:RELIANCE, 500325.BO, BSE:500325. Um símbolo puro significa NSE (ou
default_exchange em trader-in/config.json). Use aspas M&M no shell.
O que ela lê e escreve
| arquivo / feed | o quê |
|---|---|
--tickers, senão trader-in/watchlist.json | os hits do scanner (trader-in-scanner) |
trader-in/plan.json | a negociação que você está planejando (trader-in-exit) |
trader-in/portfolio.json | o que você possui (trader-in-broker registra as execuções lá) |
| RSS de manchetes do Yahoo Finance | https://feeds.finance.yahoo.com/rss/2.0/headline?s=TCS.NS®ion=IN&lang=en-IN. Funciona para muitos nomes da NSE, vazio para alguns (RELIANCE.NS, HDFCBANK.NS quando verificado) e frequentemente fora do assunto |
| Google News RSS, edição Índia | https://news.google.com/rss/search?q=<empresa>+share&hl=en-IN&gl=IN&ceid=IN:en; o nome da empresa vem da sua watchlist, da exchange ou do gráfico do Yahoo. Títulos que não mencionam a empresa ou seu símbolo são descartados |
| Comunicados corporativos da NSE | https://www.nseindia.com/api/corporate-announcements?index=equities&symbol=RELIANCE&from_date=..&to_date=.., após um aquecimento de cookie na página inicial da NSE (a página inicial responde 403 e ainda assim define o cookie; isso é normal) |
| Comunicados corporativos da BSE (fallback) | https://api.bseindia.com/BseIndiaAPI/api/AnnSubCategoryGetData/w?...&strScrip=500325, usada quando a NSE recusa ou para um código de ação da BSE. O código da ação vem de 500325.BO, bse_codes em trader-in/config.json ({"RELIANCE": "500325"}), ou da pesquisa da BSE |
| Endpoint de gráfico do Yahoo Finance | o último preço em relação ao fechamento anterior, em ₹ (não oficial; pode atrasar; o Yahoo não tem gráfico para códigos numéricos da BSE, use RELIANCE.BO) |
trader-in/state/news.json | o que já foi exibido (mantido por 30 dias) e os códigos de ação da BSE que encontrou |
NSE e BSE estão atrás da Akamai e podem recusar uma máquina (HTTP 401/403/429, ou uma
página "Access Denied"). A ferramenta nunca falha por causa disso: ela anota
NSE refused ... falling back to BSE, depois
exchange filings skipped for X (...); headlines still run se a BSE também recusar.
Informe isso no resumo ("nenhum comunicado da exchange pôde ser lido nesta verificação") e
aponte o usuário para a página da empresa em nseindia.com / bseindia.com.
Na máquina onde foi construída, a NSE respondeu e a BSE recusou.
As regras
- Manchetes são pistas, não fatos. Antes de informar ao usuário que algo aconteceu, abra a matéria ou o PDF do comunicado e leia-o. Cite a fonte e forneça o link. Nunca resuma uma história atrás de paywall que você não pôde ler: diga isso.
- Comunicados vencem manchetes. Se um comunicado da exchange e uma manchete discordarem, o comunicado é o que a empresa informou à NSE/BSE sob as regras LODR da SEBI.
- Diga o que ele toca. Cada item lista os símbolos que toca e suas
tags: earnings, analyst, legal, deal, capital, people, risk, halt,
regulatory, macro. Comunicados marcados com
!são os que movimentam ações: resultados financeiros, resultado de reunião do conselho, recompra, captação (QIP, preferential, rights), bônus ou desdobramento, aquisição, fusão ou esquema societário, renúncia (acima de tudo de MD, CEO, CFO ou auditor), invocação de penhora, rebaixamento de rating de crédito, inadimplência ou insolvência, suspensão de negociação. Comunicados "General Updates" e "Press Release" são lidos pelo seu texto (uma mudança de MD e CEO registrada como "General Updates" ainda recebe!). - Comunicados rotineiros são ocultados (certificados de ações perdidas, cópias de
jornais, certificados Reg. 74(5)); a saída os conta e
--routineos exibe. - MOVING marca uma ação com 3% ou mais de distância do fechamento anterior (
--move-pct). Um movimento sem manchete também vale a pena ser mencionado em voz alta. Lembre-se dos limites de preço da NSE: uma ação presa em seu circuito superior ou inferior não pode ser negociada. - O Google News faz correspondência por nome, então um homônimo pode aparecer (uma história do Kotak Mahindra Bank sob M&M). Leia o título antes de repeti-lo.
- Sem previsões. Relate o que foi publicado e a que distância o preço está do fechamento anterior. Nunca diga o que a ação fará em seguida.
Passos
- Execute a verificação:
python3 "${CLAUDE_SKILL_DIR}/news.py". Código de saída 1 significa nada de novo.--allmostra itens já vistos,--jsonfornece tudo legível por máquina (horários em UTC maistime_ist),--dry-rundeixa o estado inalterado. - Leia os itens importantes: todo comunicado
!, qualquer item com tag earnings, halt, legal, regulatory ou risk, e todo símbolo MOVING primeiro. Abra o PDF do comunicado para qualquer item!. - Escreva um breve resumo, por símbolo: o que aconteceu, a fonte e o link, o movimento em ₹ e %, e uma linha sobre por que isso importa para o setup (por exemplo "o conselho se reúne em 5 de novembro para aprovar resultados: um gap ali pode pular qualquer stop, então isso permanece uma negociação intraday").
- Se uma história mudar o cenário, informe antes de
/trader-in-entrye/trader-in-exit: uma data de resultados dentro da negociação, um circuito, uma invocação de penhora, uma captação. Nunca aja apenas com base em uma manchete.
Durante a sessão: /loop 15m /trader-in-news, ou uma tarefa agendada a cada
manhã antes da abertura às 09:15 IST (pré-abertura é das 09:00 às 09:08).
Exemplo
Terça-feira, 2026-10-27, verificado às 15:45 IST com --tickers RELIANCE TCS HDFCBANK:
RELIANCE.NS ₹1.196,20 -0,47% vs fechamento anterior ₹1.201,80 às 15:28 IST
TCS.NS ₹2.496,90 -1,50% vs fechamento anterior ₹2.535,00 às 15:28 IST
2026-10-27 13:56 IST RELIANCE.NS Google News IPO da Jio atrai INR 7,4 trilhões enquanto ação da Reliance Industries aguarda estreia
via ad-hoc-news.de tags: capital https://news.google.com/rss/articles/...
! 2026-10-27 08:02 IST HDFCBANK.NS NSE General Updates: Reg. 30 disclosure: Mudança no Diretor-Presidente e CEO do Banco
tags: people https://nsearchives.nseindia.com/corporate/HDFCBANK_27102026080232_SEIntimation_appt_of_AB.pdf
O resumo: "O HDFC Bank informou à NSE às 08:02 IST que seu MD & CEO está mudando. Abra o PDF antes de negociá-lo hoje. Reliance: o IPO da Jio Platforms será listado amanhã, então espere movimentos em todo o grupo. A TCS caiu 1,5% sem nenhum comunicado da empresa; o setor de TI caiu no dia." Se um símbolo não tiver notícias, diga isso em vez de encher o resumo.
O que ela nunca faz
- Nunca inventa ou embeleza uma história, uma citação ou um número.
- Nunca negocia com base em notícias e nunca diz ao usuário para comprar ou vender por causa de uma manchete.
- Nunca sobrecarrega um servidor: uma requisição por feed por símbolo, uma pausa entre chamadas, um aquecimento da página inicial da NSE por execução e, assim que a NSE ou BSE recusa, ela para de perguntar para aquela exchange pelo resto da execução.
Segurança
Educação e ferramentas, não aconselhamento de investimento. Para aconselhamento, consulte um
assessor de investimentos registrado na SEBI. Esta skill apenas lê e relata.
Nada coloca uma ordem, exceto /trader-in-broker (papel por padrão: um razão simulado
local), depois que /trader-in-risk é aprovado e o usuário digita um
sim explícito para aquela ordem.