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
| arquivo | o quê |
|---|---|
trader-in/plan.json | o trade do trader-in-exit, para add --from-plan |
trader-in/config.json | flat_by (padrão 15:10), default_exchange, extra_holidays, special_sessions |
trader-in/alerts.json | as regras (alerts.example.json nesta pasta) |
trader-in/state/alerts.json | quais regras dispararam e quando, para que cada uma dispare uma vez |
trader-in/prices.json | as últimas cotações em rúpias, mescladas, para trader-in-budget e trader-in-risk |
trader-in/portfolio.json | os símbolos mantidos, para quote --holdings |
Tipos de regra
| tipo | dispara quando | dispara novamente |
|---|---|---|
above / target | preço igual ou acima de price | após reset, ou por conta própria se "rearm": true e o preço caiu de volta |
below / stop | preço igual ou abaixo de price | mesmo |
pct_move | moveu pct por cento do fechamento anterior (ou ref), direction opcional para cima ou para baixo; apenas em cotação de hoje | no máximo uma vez por dia |
time | o relógio IST passou de at ("15:10") em um dia de negociação | uma vez por dia de negociação |
opening_bell | NSE está aberto (09:15 IST, ou a abertura de uma sessão especial) | uma vez por dia de negociação |
pre_open | pré-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 tentaquery1. Ele se identifica comoday-trader-skill-in/1.0. O Yahoo serve NSE e BSE em INR com horáriosAsia/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.jsonmanté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.jsoncomo{"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
- 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. - Execute
checkenquanto 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. - 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.