Communityコーディング&開発github.com

bhardwajaditya/trader-in-alerts

インド株式(NSE、BSE)の価格アラート。ストップ、ターゲット、引け前のフラット時刻を一度に設定し、寄付きとプレオープンにも対応。

trader-in-alerts とは?

このスキルは、インド株式市場(NSE、BSE)のトレーダー向けに、価格アラートを管理するためのものです。ユーザーが「リライアンスが1,200ルピーに達したら教えて」といった指示を出すと、ストップ(SL-M売り)、ターゲット(指値売り)、フラット時刻の3つのアラートを一度に設定できます。NSEの取引時間(IST)や2026年の祝日、予算編成日やムフラート特別セッションを認識し、Yahooの無料遅延気配値を取得して、指定された価格やパーセント変動、時刻に応じてアラートを発報します。各アラートは1回だけ鳴るためスパムを防ぎ、ストップとターゲットが個別注文であることをリマインダーとして表示します(インドのブローカーではOCO未対応のため)。Claude Code、Cursor、CodexなどのAIエージェント環境で動作し、`check`コマンドで定期的にルールを評価します。

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

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

trader-in-alerts は何をしますか?

Price Alerts は、ユーザーがチャートを凝視する必要がないように数値を監視します。アラートは情報であり、決して注文ではありません。ストップアラートが鳴っても、このスキルによって何かが売却されることはありません。ストップ(SL-M売り)とターゲット(指値売り)は、ブローカー側で2つの個別注文として存在し、実際の取引を行います。アラートはユーザーに何が起こったかを伝え、残った注文をキャンセルするよう促し、いつフラットになるべきかを伝えます。

以下、${CLAUDE_SKILL_DIR} はこのスキルのフォルダ(この SKILL.md がある場所)です。

python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock                          # NSE 営業中/非営業中、プレオープン、次回寄付き (IST)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan                # 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 プレオープン (オプション)
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 (監視のみ)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" check                          # 終了コード0 = 何かが鳴った
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote RELIANCE "M&M" --write   # -> trader-in/prices.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote --holdings --write       # ポートフォリオ + 計画のティッカー
python3 "${CLAUDE_SKILL_DIR}/alerts.py" list
python3 "${CLAUDE_SKILL_DIR}/alerts.py" reset reliance-ns-plan-stop

--now "2026-10-27 15:10" で時刻を固定(IST; 15:10 のみは今日のIST、Z または +05:30 は絶対時刻); --offline DIR でネットワークの代わりに保存された気配値ファイルを読み込みます。シェル内で M&M を引用符で囲む ("M&M") か、& がコマンドを分割します。

シンボル

RELIANCE、RELIANCE.NS、NSE:RELIANCE はNSE、RELIANCE.BO、BSE:RELIANCE はBSEです。裸のシンボルはNSE(または設定 default_exchange)として扱われます。ファイルは常にYahoo形式 (RELIANCE.NS) で保持されます。裸の6桁の数字はBSE証券コードとして読み取られますが (500325.BO)、Yahooは数値のBSEコードを提供しません(2026-10-27に「No data found」と応答しました): RELIANCE.BO を使用してください。インデックス ^NSEI (Nifty 50)、^NSEBANK (Bank Nifty)、^BSESN (Sensex) はポイントで監視および引用でき、取引はできません。

読み取りおよび書き込み対象のファイル

ファイル内容
trader-in/plan.jsontrader-in-exit からの取引 (add --from-plan 用)
trader-in/config.jsonflat_by (デフォルト 15:10)、default_exchange、extra_holidays、special_sessions
trader-in/alerts.jsonルール (このフォルダ内の alerts.example.json)
trader-in/state/alerts.jsonどのルールがいつ鳴ったか (各ルールは1回だけ鳴る)
trader-in/prices.jsonルピー建ての最新気配値 (マージ済み) (trader-in-budget および trader-in-risk 用)
trader-in/portfolio.json保有シンボル (quote --holdings 用)

ルールの種類

種類発報条件再発報
above / target価格が price 以上reset 後、または "rearm": true で価格が戻った場合
below / stop価格が price 以下同上
pct_move前日比(または ref)から pct%変動 (オプションで方向 direction 上下); 今日の気配値でのみ1日1回まで
timeIST時間が at ("15:10") を超えた場合 (取引日のみ)1取引日あたり1回
opening_bellNSEが開いた場合 (09:15 IST、または特別セッションの開始)1取引日あたり1回
pre_openNSEプレオープン中 (09:00-09:15 IST: 注文受付は09:08まで、その後マッチング)1取引日あたり1回、プレオープン内でのみ

"date" が設定されたルールは、そのIST日付のみ監視されます。--from-plan のルールは計画の日付を保持するため、昨日のストップが今日鳴ることはありません。"before_close": true を持つ time ルールは、早期に終了する特別セッションに合わせてクローズまでの間隔を調整します: 「flat by」15:10は、15:00にクローズするセッションでは14:40に鳴ります。

ストップまたはターゲットのアラートが鳴ると、次のように表示されます: 「ストップとターゲットは2つの個別のブローカー注文であり、OCOではありません。ストップが約定した場合、今すぐターゲット注文をキャンセルしてください。」(またはその逆)。インドのブローカーはバケット注文を廃止し、MISに対するOCOもありません。そのため、残ったSL-Mまたは指値売り注文は有効なままとなり、もはや保有していない株式を売却する可能性があります。

気配値

  • YahooチャートJSON: query2.finance.yahoo.com/v8/finance/chart/RELIANCE.NS (シンボルはパーセントエンコード、M%26M.NS)、非公式の無料エンドポイント、ティッカーごとに1リクエスト、0.5秒間隔。429エラー時は待機して1回再試行。その後も429、5xx、ネットワークエラーの場合は query1 を試行します。自身を day-trader-skill-in/1.0 として識別します。YahooはNSEとBSEをINRで提供し、Asia/Kolkata 時間を使用。パーセント変動はYahooの前日終値を使用します。
  • Stooqは使用しません。NSE/BSEティッカーをリストしておらず、2026-10-27時点でその気配値CSVはすべてのティッカーに対して404を返し、他のページはJavaScriptチャレンジの背後にありました。
  • 無料の気配値は非公式で遅延し、遅れる可能性があります。アラートやサイズ確認には適していますが、注文のタイミングには適していません。ブローカーの価格が約定する価格です。trader-in/prices.json の各価格はその気配値時刻を保持し、trader-in-riskは15分未満のもののみを使用します。
  • Yahooがダウンしている場合は、ブローカー(Kite、Upstox)から価格を読み取り、trader-in/prices.json に {"as_of": "...Z", "prices": {"RELIANCE.NS": 1196.20}} として書き込みます。

NSE時計

ISTはUTC+05:30で年間を通じて一定(サマータイムなし)。ツールはこれを独自に計算し、コンピュータのタイムゾーンを無視します。通常セッションは09:15~15:30 IST、プレオープンは09:00~09:15(注文受付09:00-09:08、マッチング09:08-09:15)。ブローカーは約15:20 ISTからMISポジションを強制決済し、それに対して料金を請求するため、計画のフラット時刻はデフォルトで15:10に設定されています。

  • NSE株式市場2026年休日(平日):1月26日 共和国記念日、3月3日 ホーリー、3月26日 ラーム・ナヴァミー、3月31日 マハーヴィール・ジャヤンティ、4月3日 グッドフライデー、4月14日 アンベードカル・ジャヤンティ、5月1日 マハーラーシュトラ・デー、5月28日 バクリ・イード、6月26日 ムハッラム、9月14日 ガネーシュ・チャトゥルティ、10月2日 ガンディー・ジャヤンティ、10月20日 ドゥッセーラー、11月10日 ディワリ・バリプラティパダ、11月24日 グル・ナーナク・ジャヤンティ、12月25日 クリスマス。
  • 特別セッション(通常日以外):日曜日 2026年2月1日 連邦予算日、09:15-15:00。日曜日 2026年11月8日 ムフラート取引、14:20-15:30、プレオープンは14:05から(NSE回覧 NSE/CMTR/76941(2026年10月19日)による。クロージングオークション銘柄の終了時刻については報道によって異なる場合があるため、回覧を確認してください)。
  • 2027年はまだ公開されていません。リストのない年の場合、ツールは1回警告を表示し(「2027年のNSE休日は組み込まれていません。設定の extra_holidays に追加してください。」)、平日は営業日として扱います。設定 "extra_holidays": ["2027-01-26", ...] で休業日を、"special_sessions": {"YYYY-MM-DD": ["HH:MM", "HH:MM"]} でセッションを追加してください。

手順

  1. trader-in-exit が計画を書き込んだ直後に、add --from-plan を実行します。ストップ、ターゲット、フラット時刻の3つのアラートをユーザーに確認します(ルピー建ておよびIST)。ストップとターゲットはブローカー側で個別の注文であること、一方が約定したら他方をキャンセルする必要があることを伝えます。
  2. 取引がオープンしている間、check を実行します。Claudeのスケジュールタスクまたは /loop から数分ごとに実行します。各実行は、今日のルールに含まれるシンボルのみを取得し、各アラートを1回だけ発報します。チェックは最新の遅延気配値を読み取ります。ライブフィードではなく、2回のチェックの間に価格が水準を通過する可能性があります。
  3. 鳴ったものを1行ずつユーザーに伝えます。ストップまたはターゲットのアラートは、その注文がおそらく約定したことを意味します。ブローカーアプリでポジションと注文を確認し、他方の注文をキャンセルし、/trader-in-broker で約定を記録します。「Flat by」は、MIS強制決済前にまだオープンしているものをすべてクローズすることを意味します。/trader-in-broker flatten を実行し、次に /trader-in-risk、ユーザーの確認、その後残りのストップとターゲットをキャンセルします。ユーザーに代わって行動してはいけません。

例: 実際の流れ

2026年10月27日火曜日のRELIANCE.NS: 寄り付きレンジ1,189.70-1,197.00、エントリー ₹1,197.20(12:40 IST)、ストップ ₹1,193.30(レンジ中間点)、ターゲット ₹1,201.10(1R)、フラット時刻15:10。add --from-plan は、その日に対して reliance-ns-plan-stop、reliance-ns-plan-target、reliance-ns-flat-by を作成します。15:05の check は実際の最終気配値 ₹1,196.20 を読み取ります。これはストップとターゲットの間にあります。

NSE OPEN (2026-10-27 15:05 IST, normal session).
Nothing hit. 3 rule(s) watched today, RELIANCE.NS ₹1,196.20.

15:10:

ALERT Flat by: it is 15:10 IST (set for 15:10), the market closes at 15:30 IST. Brokers square off MIS
positions from about 15:20 IST and charge for it. If RELIANCE.NS is still open, close it:
/trader-in-broker flatten --symbol RELIANCE.NS builds the sell ticket, then /trader-in-risk and your yes.
Then cancel any stop and target orders still pending for it at the broker.

これは1回だけ鳴ります。翌朝、計画の3つのアラートは監視対象ではなくなります。add --pre-open と add --opening-bell により、09:00と09:15に再度鳴ります。

ルール

  • アラートは価格または時計に関する事実です。事実として述べてください。
  • 気配値をライブとして提示しないでください。無料の気配値は遅延しており非公式です。
  • 新しいルールは毎回ユーザーに確認してください。シンボル、種類、水準(₹)、日付。
  • 金額はルピーでインド式グループ化(₹1,23,456.78)を使用。時刻はIST。

絶対に行わないこと

注文を発注、キャンセル、変更することは決して行いません。気配値がライブであると主張することは決して行いません。価格の動向を予測することは決して行いません。

安全性

  • 教育とツール提供であり、投資アドバイスではありません。アドバイスが必要な場合は、SEBI登録の投資アドバイザーに相談してください。PASSはルールチェックであり、推奨ではありません。
  • デフォルトはペーパートレーディング ("paper": true) です。インドのブローカーにはペーパー口座がないため、ペーパーはローカルのシミュレーション元帳 (trader-in/state/paper.json) です。ライブ取引に切り替えるのはユーザー自身の判断であり、自身の設定で行います。
  • このパッケージ内で注文を発注するのは trader-in-broker のみであり、かつ次の3つすべてが成立する場合のみです。trader-in-risk がその正確な注文を本日合格させていること、paper が false であること、ユーザーがチャットでその1つの注文に対して明示的に「はい」と入力したこと。
  • ロング・キャッシュ・エクイティのみ。F&O、オプション、空売り、MISレバレッジは、設定で許可され、ユーザーが確認した場合を除き、行いません。
  • ブローカーキーは環境変数またはClaude Desktopの設定に保存され、チャットには決して表示されません。

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.

関連スキル