bhardwajaditya/trader-in-alerts

Alertes de prix pour les actions indiennes (NSE, BSE). Sonne lorsqu'un prix, un stop ou la cloche d'ouverture est atteint.

Qu'est-ce que trader-in-alerts ?

Ce skill (trader-in-alerts) fournit des alertes de prix en temps réel pour les marchés boursiers indiens (NSE et BSE). Il est conçu pour les traders qui utilisent des agents IA comme Claude Code pour surveiller leurs positions sans avoir à scruter les graphiques. Le skill crée trois alertes en un seul clic à partir d'un plan de trade : le stop, la cible, et l'heure de clôture (flat-by) par défaut à 15:10 IST, avant le square-off MIS des brokers. Il peut également déclencher des alertes pour des seuils de prix (au-dessus/au-dessous), des mouvements en pourcentage par rapport à la clôture précédente, la cloche d'ouverture à 09:15 IST, et la pré-ouverture à 09:00 IST. Chaque alerte ne sonne qu'une fois pour éviter le spam. Le skill s'intègre avec d'autres outils comme trader-in-exit pour lire le plan de trade, trader-in-prices pour les cotations, et trader-in-risk pour la vérification des risques. Il utilise des cotations Yahoo gratuites et retardées, et connaît les horaires du NSE en IST avec les jours fériés 2026, la session Budget et la session spéciale Muhurat. Les alertes sont informatives : elles ne passent jamais d'ordres. L'utilisateur est rappelé que le stop et la cible sont des ordres séparés chez Zerodha, Upstox et autres brokers indiens (pas d'OCO pour le MIS).

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait trader-in-alerts ?

Les alertes de prix surveillent les chiffres pour que l'utilisateur n'ait pas à fixer un graphique. Une alerte est une information, jamais un ordre : lorsqu'une alerte de stop sonne, rien n'est vendu par ce skill. Le stop (vente SL-M) et la cible (vente LIMIT) sont placés chez le courtier comme deux ordres séparés et font le travail ; les alertes informent l'utilisateur de ce qui s'est passé, lui rappellent d'annuler l'ordre restant et indiquent quand il est temps d'être à plat.

${CLAUDE_SKILL_DIR} ci-dessous est le dossier de ce skill (où se trouve ce SKILL.md).

python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock                          # NSE ouvert ou fermé, pré-ouverture, prochaine ouverture (IST)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan                # stop, cible, flat-by depuis 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é-ouverture (optionnel)
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 (surveillance uniquement)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" check                          # exit 0 = quelque chose a sonné
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote RELIANCE "M&M" --write   # -> trader-in/prices.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote --holdings --write       # portefeuille + tickers du plan
python3 "${CLAUDE_SKILL_DIR}/alerts.py" list
python3 "${CLAUDE_SKILL_DIR}/alerts.py" reset reliance-ns-plan-stop

--now "2026-10-27 15:10" fige l'horloge (IST ; un 15:10 nu est aujourd'hui IST, Z ou +05:30 est absolu) ; --offline DIR lit des fichiers de cotations sauvegardés au lieu du réseau. Citez M&M dans le shell ("M&M"), ou & scinde la commande.

Symboles

RELIANCE, RELIANCE.NS et NSE:RELIANCE sont NSE ; RELIANCE.BO et BSE:RELIANCE sont BSE. Un symbole nu est NSE (ou default_exchange de la configuration). Les fichiers contiennent toujours la forme Yahoo (RELIANCE.NS). Un numéro nu à six chiffres est lu comme un code scrip BSE (500325.BO), mais Yahoo ne sert pas les codes BSE numériques (il a répondu "No data found" le 2026-10-27) : utilisez RELIANCE.BO. Les indices ^NSEI (Nifty 50), ^NSEBANK (Bank Nifty) et ^BSESN (Sensex) peuvent être surveillés et cotés en points, jamais échangés.

Ce qu'il lit et écrit

fichierquoi
trader-in/plan.jsonle trade provenant de trader-in-exit, pour add --from-plan
trader-in/config.jsonflat_by (défaut 15:10), default_exchange, extra_holidays, special_sessions
trader-in/alerts.jsonles règles (alerts.example.json dans ce dossier)
trader-in/state/alerts.jsonquelles règles ont sonné et quand, pour que chacune ne sonne qu'une fois
trader-in/prices.jsonles dernières cotations en roupies, fusionnées, pour trader-in-budget et trader-in-risk
trader-in/portfolio.jsonles symboles détenus, pour quote --holdings

Types de règles

typesonne quandsonne à nouveau
above / targetprix au-dessus ou égal à priceaprès reset, ou automatiquement si "rearm": true et que le prix est redescendu
below / stopprix en dessous ou égal à priceidem
pct_movea bougé de pct pour cent par rapport à la clôture précédente (ou ref), direction optionnelle haut ou bas ; uniquement sur une cotation d'aujourd'huiune fois par jour au maximum
timel'horloge IST a dépassé at ("15:10") un jour de bourseune fois par jour de bourse
opening_bellNSE est ouvert (09:15 IST, ou l'ouverture d'une session spéciale)une fois par jour de bourse
pre_openla pré-ouverture NSE est en cours (09:00-09:15 IST : saisie des ordres jusqu'à 09:08, puis appariement)une fois par jour de bourse, uniquement pendant la pré-ouverture

Une règle avec "date" est surveillée uniquement à cette date IST ; les règles --from-plan portent la date du plan, donc le stop d'hier ne sonne jamais aujourd'hui. Une règle time avec "before_close": true conserve son écart par rapport à la clôture lors d'une session spéciale qui se termine tôt : "flat by" à 15:10 sonne à 14:40 lors d'une session qui ferme à 15:00.

Lorsqu'un stop ou une cible sonne, le message ajoute : "Votre stop et votre cible sont deux ordres séparés chez le courtier, pas un OCO : si le stop a été exécuté, annulez l'ordre cible maintenant" (ou l'inverse). Les courtiers indiens ont supprimé les ordres bracket et n'ont pas d'OCO pour le MIS, donc un ordre SL-M ou LIMIT restant reste actif et peut vendre des actions que vous ne détenez plus.

Cotations

  • JSON des graphiques Yahoo : query2.finance.yahoo.com/v8/finance/chart/RELIANCE.NS (symbole encodé en pourcentage, M%26M.NS), un point de terminaison gratuit non officiel, une requête par ticker, une demi-seconde d'intervalle. Sur un 429, il attend et réessaie une fois ; sur un 429, une 5xx ou une erreur réseau après cela, il essaie query1. Il s'identifie comme day-trader-skill-in/1.0. Yahoo sert les cotations NSE et BSE en INR avec les fuseaux horaires Asia/Kolkata ; le mouvement en pourcentage utilise sa clôture précédente.
  • Stooq n'est pas utilisé : il ne liste pas de tickers NSE/BSE, et le 2026-10-27 son CSV de cotation a répondu 404 pour tous les tickers et ses autres pages étaient derrière un défi JavaScript.
  • Les cotations gratuites sont non officielles, retardées et peuvent être en retard. Elles sont acceptables pour les alertes et la vérification d'une taille, pas pour le timing d'un ordre. Le prix du courtier est celui qui exécute. Chaque prix dans trader-in/prices.json conserve son heure de cotation, et trader-in-risk n'utilise que ceux de moins de 15 minutes.
  • Si Yahoo est en panne, lisez le prix depuis le courtier (Kite, Upstox) et écrivez-le dans trader-in/prices.json comme {"as_of": "...Z", "prices": {"RELIANCE.NS": 1196.20}}.

L'horloge NSE

IST est UTC+05:30 toute l'année (pas d'heure d'été) ; l'outil le calcule lui-même et ignore le fuseau horaire de l'ordinateur. Session normale 09:15 à 15:30 IST, pré-ouverture 09:00 à 09:15 (saisie des ordres 09:00-09:08, appariement 09:08-09:15). Les courtiers liquident les positions MIS à partir d'environ 15:20 IST et facturent, donc le flat-by par défaut du plan est 15:10.

  • Jours fériés NSE equity 2026 (jours de semaine) : 26 Janvier République, 3 Mars Holi, 26 Mars Ram Navami, 31 Mars Mahavir Jayanti, 3 Avril Vendredi Saint, 14 Avril Ambedkar Jayanti, 1er Mai Maharashtra Day, 28 Mai Bakri Id, 26 Juin Muharram, 14 Septembre Ganesh Chaturthi, 2 Octobre Gandhi Jayanti, 20 Octobre Dussehra, 10 Novembre Diwali Balipratipada, 24 Novembre Guru Nanak Jayanti, 25 Décembre Noël.
  • Sessions spéciales (pas des jours normaux) : Dimanche 2026-02-01 Jour du Budget de l'Union, 09:15-15:00 ; Dimanche 2026-11-08 Négociation Muhurat, 14:20-15:30 avec pré-ouverture à partir de 14:05, selon la circulaire NSE NSE/CMTR/76941 du 2026-10-19 (les rapports de presse diffèrent sur la clôture pour les actions avec enchère de clôture : vérifiez la circulaire).
  • 2027 n'est pas encore publié : pour toute année sans liste, l'outil prévient une fois ("Les jours fériés NSE pour 2027 ne sont pas intégrés ; ajoutez-les à la configuration extra_holidays") et traite les jours de semaine comme ouverts. Ajoutez les fermetures avec la configuration "extra_holidays": ["2027-01-26", ...] et les sessions avec "special_sessions": {"YYYY-MM-DD": ["HH:MM", "HH:MM"]}.

Étapes

  1. Juste après que trader-in-exit a écrit le plan, exécutez add --from-plan. Confirmez les trois alertes à l'utilisateur : le stop, la cible et l'heure flat-by, en roupies et IST. Dites que le stop et la cible sont des ordres séparés chez le courtier : lorsque l'un est exécuté, l'autre doit être annulé.
  2. Exécutez check pendant que le trade est ouvert : toutes les quelques minutes via une tâche programmée Claude ou /loop. Chaque exécution ne récupère que les symboles des règles d'aujourd'hui et fait sonner chaque alerte une fois. Une vérification lit la dernière cotation retardée ; ce n'est pas un flux en direct, et un prix peut passer un niveau entre deux vérifications.
  3. Dites à l'utilisateur ce qui a sonné en une ligne chacun. Une alerte de stop ou de cible signifie que cet ordre a probablement été exécuté : vérifiez les positions et les ordres dans l'application du courtier, annulez l'autre ordre, et enregistrez l'exécution avec /trader-in-broker. "Flat by" signifie fermez tout ce qui est encore ouvert avant le square-off MIS : /trader-in-broker flatten, puis /trader-in-risk, puis le oui de l'utilisateur, puis annulez le stop et la cible restants. N'agissez jamais à leur place.

Exemple : le déroulé

RELIANCE.NS le mardi 2026-10-27 : range d'ouverture 1 189,70-1 197,00, entrée ₹1 197,20 à 12:40 IST, stop ₹1 193,30 (milieu du range), cible ₹1 201,10 (1R), flat by 15:10. add --from-plan écrit reliance-ns-plan-stop, reliance-ns-plan-target et reliance-ns-flat-by pour ce jour. Un check à 15:05 lit le dernier cours réel, ₹1 196,20, entre le stop et la cible :

NSE OUVERT (2026-10-27 15:05 IST, session normale).
Rien n'a été touché. 3 règle(s) surveillée(s) aujourd'hui, RELIANCE.NS ₹1 196,20.

À 15:10 :

ALERTE Flat by : il est 15:10 IST (réglé pour 15:10), le marché ferme à 15:30 IST. Les courtiers liquident les positions MIS à partir d'environ 15:20 IST et facturent. Si RELIANCE.NS est encore ouvert, fermez-le :
/trader-in-broker flatten --symbol RELIANCE.NS construit le ticket de vente, puis /trader-in-risk et votre oui.
Ensuite, annulez tous les ordres stop et cible encore en attente pour celui-ci chez le courtier.

Il sonne une fois. Le lendemain matin, les trois alertes du plan ne sont plus surveillées ; avec add --pre-open et add --opening-bell, elles sonnent à 09:00 et 09:15.

Règles

  • Une alerte est un fait concernant un prix ou l'horloge. Dites-le comme un fait.
  • Ne présentez jamais une cotation comme en direct. Les cotations gratuites sont retardées et non officielles.
  • Confirmez chaque nouvelle règle à l'utilisateur : symbole, type, niveau en ₹, jour.
  • Argent en roupies avec le groupement indien (₹1,23,456.78) ; heures en IST.

Ce qu'il ne fait jamais

Il ne passe, n'annule ni ne modifie jamais un ordre, ne prétend jamais qu'une cotation est en direct, et ne prédit jamais où va un prix.

Sécurité

  • Éducation et outillage, pas un conseil en investissement. Pour des conseils, parlez à un conseiller en investissement enregistré SEBI. Une PASS est une vérification des règles, pas une recommandation.
  • Paper trading par défaut ("paper": true) : les courtiers indiens n'ont pas de compte papier, donc le papier est un grand livre local simulé (trader-in/state/paper.json). Passer en direct est la décision de l'utilisateur, dans sa propre configuration.
  • Rien dans ce pack ne passe un ordre sauf trader-in-broker, et seulement lorsque les trois conditions suivantes sont réunies : trader-in-risk a validé cet ordre exact aujourd'hui, paper est faux, et l'utilisateur a tapé un oui explicite pour cet ordre unique dans le chat.
  • Actions cash longues uniquement : pas de F&O, options, vente à découvert ou effet de levier MIS, sauf si la configuration le permet et que l'utilisateur confirme.
  • Les clés du courtier résident dans des variables d'environnement ou la configuration du bureau Claude, jamais dans le 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.

Skills associés