bhardwajaditya/trader-in-alerts

Alertas de preço para ações indianas (NSE, BSE). Toca quando um preço, um stop ou o sinal de abertura é atingido. Converte o plano de trade em três alertas de uma só vez (stop, target e 'flat by' no horário padrão 15:10 IST), além de níveis acima/abaixo/stop/target em rúpias, movimentos percentuais do fechamento anterior para ações e para Nifty, Bank Nifty ou Sensex, a qualquer hora do dia, o sinal de abertura às 09:15 IST e o pré-abertura às 09:00, cada um tocando uma vez para evitar spam. Lembra que stop e target são ordens separadas na Zerodha, Upstox e outras corretoras indianas (não há OCO para MIS): quando uma preencher, cancele a outra. Conhece o horário da NSE em IST com os feriados da NSE 2026, as sessões especiais do Budget-day e Muhurat, busca cotações atrasadas gratuitas do Yahoo para tickers .NS / .BO um por vez, e escreve trader-in/prices.json (INR) para dimensionamento e verificação de risco. Use quando o usuário disser 'me alerte quando', 'me diga se a Reliance atingir 1.200', 'monitore meu stop', 'monitore meu trade',…

O que é trader-in-alerts?

Este skill para agentes de IA como Claude Code, Cursor ou Codex fornece alertas de preço para ações indianas negociadas na NSE e BSE. Ele monitora níveis de stop, alvo, movimentos percentuais, horários (como o sinal de abertura e o fechamento) e o relógio do mercado NSE, garantindo que o trader não precise ficar olhando para a tela o tempo todo. Quando um alerta dispara, ele informa o ocorrido, lembra que as ordens de stop e target são separadas na corretora (sem OCO para MIS) e que, se uma preencher, a outra deve ser cancelada. O skill também gerencia alertas de um plano de trade completo (stop, target e horário de zeragem) a partir do arquivo `trader-in/plan.json`. Ele utiliza cotações gratuitas atrasadas do Yahoo Finance, respeita os feriados e sessões especiais da NSE em 2026, e escreve os preços em `trader-in/prices.json` para cálculos de dimensionamento e risco. Por segurança, ele nunca coloca, cancela ou altera ordens, nunca afirma que uma cotação é ao vivo, e nunca prevê para onde o preço vai. É projetado para operações de cash equity compradas (sem F&O, opções ou vendas a descoberto), com suporte a simulação em papel por padrão.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bhardwajaditya/day-trader-skill-india/tree/main/trader-in-alerts

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que trader-in-alerts faz?

Price Alerts monitora os números para que o usuário não precise ficar olhando para um gráfico. Um alerta é informação, nunca uma ordem: quando um alerta de stop dispara, nada é vendido por este skill. O stop (venda SL-M) e o target (venda LIMIT) ficam na corretora como duas ordens separadas e fazem o trabalho; os alertas informam ao usuário o que aconteceu, lembram-no de cancelar a ordem restante e dizem quando é hora de zerar a posição.

${CLAUDE_SKILL_DIR} abaixo é a pasta deste skill (onde este SKILL.md reside).

python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock                          # NSE aberto ou fechado, pré-abertura, próxima abertura (IST)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan                # stop, target, flat-by de trader-in/plan.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --opening-bell             # 09:15 IST
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --pre-open                 # 09:00 IST pré-abertura (opcional)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol RELIANCE --stop 1193.30
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol RELIANCE --target 1201.10
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --at 15:10 --label "flat by" --before-close --symbol RELIANCE
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol TCS --pct 2
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol ^NSEI --pct 1     # Nifty 50 (apenas observação)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" check                          # exit 0 = algo disparou
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote RELIANCE "M&M" --write   # -> trader-in/prices.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote --holdings --write       # portfolio + tickers do plano
python3 "${CLAUDE_SKILL_DIR}/alerts.py" list
python3 "${CLAUDE_SKILL_DIR}/alerts.py" reset reliance-ns-plan-stop

--now "2026-10-27 15:10" fixa o relógio (IST; 15:10 sem data é hoje IST, Z ou +05:30 é absoluto); --offline DIR lê arquivos de cotação salvos em vez da rede. Coloque M&M no shell entre aspas ("M&M"), ou & divide o comando.

Símbolos

RELIANCE, RELIANCE.NS e NSE:RELIANCE são NSE; RELIANCE.BO e BSE:RELIANCE são BSE. Um símbolo simples é NSE (ou default_exchange da config). Arquivos sempre guardam a forma do Yahoo (RELIANCE.NS). Um número de seis dígitos simples é lido como código de scrip BSE (500325.BO), mas o Yahoo não atende códigos BSE numéricos (respondeu "No data found" em 2026-10-27): use RELIANCE.BO. Índices ^NSEI (Nifty 50), ^NSEBANK (Bank Nifty) e ^BSESN (Sensex) podem ser monitorados e cotados em pontos, nunca negociados.

O que ele lê e escreve

arquivoo quê
trader-in/plan.jsono trade do trader-in-exit, para add --from-plan
trader-in/config.jsonflat_by (padrão 15:10), default_exchange, extra_holidays, special_sessions
trader-in/alerts.jsonas regras (alerts.example.json nesta pasta)
trader-in/state/alerts.jsonquais regras dispararam e quando, para que cada uma dispare uma vez
trader-in/prices.jsonas últimas cotações em rúpias, mescladas, para trader-in-budget e trader-in-risk
trader-in/portfolio.jsonos símbolos mantidos, para quote --holdings

Tipos de regra

tipodispara quandodispara novamente
above / targetpreço igual ou acima de priceapós reset, ou por conta própria se "rearm": true e o preço caiu de volta
below / stoppreço igual ou abaixo de pricemesmo
pct_movemoveu pct por cento do fechamento anterior (ou ref), direction opcional para cima ou para baixo; apenas em cotação de hojeno máximo uma vez por dia
timeo relógio IST passou de at ("15:10") em um dia de negociaçãouma vez por dia de negociação
opening_bellNSE está aberto (09:15 IST, ou a abertura de uma sessão especial)uma vez por dia de negociação
pre_openpré-abertura da NSE está ativa (09:00-09:15 IST: entrada de ordens até 09:08, depois casamento)uma vez por dia de negociação, apenas dentro do pré-abertura

Uma regra com "date" é monitorada apenas naquela data IST; regras --from-plan carregam a data do plano, então o stop de ontem nunca dispara hoje. Uma regra time com "before_close": true mantém sua diferença para o fechamento em uma sessão especial que termina mais cedo: "flat by" às 15:10 dispara às 14:40 em uma sessão que fecha às 15:00.

Um disparo de stop ou target adiciona: "Seu stop e target são duas ordens separadas na corretora, não OCO: se o stop preencheu, cancele a ordem de target agora" (ou o contrário). Corretoras indianas abandonaram ordens bracket e não têm OCO para MIS, então uma venda SL-M ou LIMIT restante fica ativa e pode vender ações que você não possui mais.

Cotações

  • JSON de gráfico do Yahoo: query2.finance.yahoo.com/v8/finance/chart/RELIANCE.NS (símbolo codificado em percentual, M%26M.NS), um endpoint gratuito não oficial, uma requisição por ticker, meio segundo de intervalo. Em um 429 ele espera e tenta mais uma vez; em um 429, 5xx ou erro de rede após isso, ele tenta query1. Ele se identifica como day-trader-skill-in/1.0. O Yahoo serve NSE e BSE em INR com horários Asia/Kolkata; o movimento percentual usa seu fechamento anterior.
  • Stooq não é usado: não lista tickers NSE/BSE, e em 2026-10-27 seu CSV de cotação respondeu 404 para todo ticker e suas outras páginas estavam atrás de um desafio JavaScript.
  • Cotações gratuitas são não oficiais, atrasadas e podem ter lag. São boas para alertas e para verificar um tamanho, não para cronometrar uma ordem. O preço da corretora é o que preenche. Cada preço em trader-in/prices.json mantém seu horário de cotação, e o trader-in-risk só usa um com menos de 15 minutos.
  • Se o Yahoo estiver fora do ar, leia o preço da corretora (Kite, Upstox) e escreva-o em trader-in/prices.json como {"as_of": "...Z", "prices": {"RELIANCE.NS": 1196.20}}.

O relógio da NSE

IST é UTC+05:30 o ano todo (sem horário de verão); a ferramenta calcula sozinha e ignora o fuso do computador. Sessão normal 09:15 a 15:30 IST, pré-abertura 09:00 a 09:15 (entrada de ordens 09:00-09:08, casamento 09:08-09:15). Corretoras zeram posições MIS a partir de cerca de 15:20 IST e cobram por isso, então o flat-by do plano padrão é 15:10.

  • Feriados de equity NSE 2026 (dias úteis): 26 Jan Republic Day, 3 Mar Holi, 26 Mar Ram Navami, 31 Mar Mahavir Jayanti, 3 Abr Good Friday, 14 Abr Ambedkar Jayanti, 1 Mai Maharashtra Day, 28 Mai Bakri Id, 26 Jun Muharram, 14 Set Ganesh Chaturthi, 2 Out Gandhi Jayanti, 20 Out Dussehra, 10 Nov Diwali Balipratipada, 24 Nov Guru Nanak Jayanti, 25 Dez Christmas.
  • Sessões especiais (não dias normais): Domingo 2026-02-01 dia do Union Budget, 09:15-15:00; Domingo 2026-11-08 negociação Muhurat, 14:20-15:30 com pré-abertura a partir de 14:05, conforme circular NSE NSE/CMTR/76941 de 2026-10-19 (relatos da imprensa diferem sobre o fechamento para ações de leilão de fechamento: verifique a circular).
  • 2027 ainda não foi publicado: para qualquer ano sem lista, a ferramenta avisa uma vez ("Os feriados da NSE para 2027 não estão incorporados; adicione-os ao config extra_holidays") e trata dias úteis como abertos. Adicione fechamentos com config "extra_holidays": ["2027-01-26", ...] e sessões com "special_sessions": {"YYYY-MM-DD": ["HH:MM", "HH:MM"]}.

Etapas

  1. Logo após o trader-in-exit escrever o plano, execute add --from-plan. Confirme os três alertas de volta ao usuário: o stop, o target e o horário flat-by, em rúpias e IST. Diga que o stop e o target são ordens separadas na corretora: quando uma preencher, a outra deve ser cancelada.
  2. Execute check enquanto o trade estiver aberto: a cada poucos minutos a partir de uma tarefa agendada do Claude ou /loop. Cada execução busca apenas os símbolos nas regras de hoje e dispara cada alerta uma vez. Um check lê a cotação atrasada mais recente; não é um feed ao vivo, e um preço pode passar de um nível entre duas verificações.
  3. Informe ao usuário o que disparou em uma linha cada. Um alerta de stop ou target significa que essa ordem provavelmente preencheu: verifique posições e ordens no app da corretora, cancele a outra ordem e registre o fill com /trader-in-broker. "Flat by" significa fechar qualquer coisa ainda aberta antes da zeragem MIS: /trader-in-broker flatten, depois /trader-in-risk, depois o sim do usuário, depois cancele o stop e o target restantes. Nunca aja por eles.

Exemplo: o rolo

RELIANCE.NS na terça-feira 2026-10-27: range de abertura 1.189,70-1.197,00, entrada ₹1.197,20 às 12:40 IST, stop ₹1.193,30 (ponto médio do range), target ₹1.201,10 (1R), flat by 15:10. add --from-plan escreve reliance-ns-plan-stop, reliance-ns-plan-target e reliance-ns-flat-by para aquele dia. Um check às 15:05 lê o último preço real, ₹1.196,20, entre o stop e o target:

NSE OPEN (2026-10-27 15:05 IST, sessão normal).
Nada atingido. 3 regra(s) monitoradas hoje, RELIANCE.NS ₹1.196,20.

Às 15:10:

ALERTA Flat by: são 15:10 IST (definido para 15:10), o mercado fecha às 15:30 IST. As corretoras zeram posições MIS a partir de cerca de 15:20 IST e cobram por isso. Se RELIANCE.NS ainda estiver aberto, feche-o:
/trader-in-broker flatten --symbol RELIANCE.NS constrói o ticket de venda, depois /trader-in-risk e seu sim.
Em seguida, cancele quaisquer ordens de stop e target ainda pendentes para ele na corretora.

Dispara uma vez. Na manhã seguinte, os três alertas do plano não são mais monitorados; com add --pre-open e add --opening-bell, eles disparam às 09:00 e 09:15.

Regras

  • Um alerta é um fato sobre um preço ou o relógio. Diga-o como um fato.
  • Nunca apresente uma cotação como ao vivo. Cotações gratuitas são atrasadas e não oficiais.
  • Confirme cada nova regra de volta ao usuário: símbolo, tipo, nível em ₹, dia.
  • Dinheiro em rúpias com agrupamento indiano (₹1,23,456.78); horários em IST.

O que ele nunca faz

Nunca coloca, cancela ou altera uma ordem, nunca afirma que uma cotação é ao vivo e nunca prevê para onde o preço vai.

Segurança

  • Educação e ferramentas, não aconselhamento de investimento. Para aconselhamento, converse com um consultor de investimento registrado na SEBI. Um PASS é uma verificação de regras, não uma recomendação.
  • Simulação em papel por padrão ("paper": true): corretoras indianas não têm conta de simulação, então o papel é um livro-razão simulado local (trader-in/state/paper.json). Ir ao vivo é decisão do próprio usuário, em sua própria config.
  • Nada neste pacote coloca uma ordem exceto trader-in-broker, e apenas quando todas as três condições forem verdadeiras: trader-in-risk aprovou essa ordem exata hoje, paper é falso e o usuário digitou um sim explícito para essa ordem no chat.
  • Apenas ações de cash equity compradas: sem F&O, opções, vendas a descoberto ou alavancagem MIS, a menos que a config permita e o usuário confirme.
  • Chaves de corretora residem em variáveis de ambiente ou na config do Claude Desktop, nunca no chat.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

bhardwajaditya/trader-in-broker

Order Executor for Indian stocks (NSE, BSE). Turns orders that passed /trader-in-risk into plain tickets for Zerodha Kite (default) or Upstox, and never sends anything without your yes. Indian brokers dropped bracket orders, so one trade becomes three orders: the buy, then a SL-M stop and a LIMIT target. The ticket warns that those two are NOT linked (no OCO). Shows the exact JSON for Kite's place_order MCP tool or the Upstox place-order body (ISIN instrument_token), the estimated costs (brokerage, STT, stamp duty, GST) and the max loss at the stop including costs, in ₹. Paper by default: a local simulated ledger with realised P&L after costs, because Indian brokers have no paper account. Live needs "paper": false, your yes typed word for word, then Claude's own Allow once card. Builds the sell that closes an MIS trade by 15:10 IST, before the broker's ~15:20 auto square-off. Covers connecting the Kite MCP server (tokens never in chat). Use when the user says "place the order", "buy it", "execute", "send…

bhardwajaditya/trader-in-news

News Monitor for Indian stocks (NSE / BSE). Tracks breaking news on every stock you watch and flags what moves it: Yahoo Finance and Google News (India edition) headlines, each company's exchange corporate announcements on NSE with a BSE fallback (financial results, board meeting outcomes, dividends, buybacks, acquisitions, credit ratings, KMP resignations and appointments, insider trading / SAST, promoter pledges, fund raising) and how far each stock is from the previous close in rupees. Shows only what is new since the last check, newest first, in IST, tags each item (earnings, analyst, deal, capital, people, halt, regulatory, macro...) and never repeats one. Use when the user says "any news on Reliance", "why is TCS moving", "news on my Nifty watchlist", "morning briefing", "pre-market news", "check NSE announcements", "any corporate announcements", "did HDFC Bank file anything", "monitor the news on my Indian stocks", or after /trader-in-scanner finds setups.

Habilidades Relacionadas