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.json | trader-in-exit からの取引 (add --from-plan 用) |
trader-in/config.json | flat_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回まで |
time | IST時間が at ("15:10") を超えた場合 (取引日のみ) | 1取引日あたり1回 |
opening_bell | NSEが開いた場合 (09:15 IST、または特別セッションの開始) | 1取引日あたり1回 |
pre_open | NSEプレオープン中 (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"]}でセッションを追加してください。
手順
- trader-in-exit が計画を書き込んだ直後に、
add --from-planを実行します。ストップ、ターゲット、フラット時刻の3つのアラートをユーザーに確認します(ルピー建ておよびIST)。ストップとターゲットはブローカー側で個別の注文であること、一方が約定したら他方をキャンセルする必要があることを伝えます。 - 取引がオープンしている間、
checkを実行します。Claudeのスケジュールタスクまたは/loopから数分ごとに実行します。各実行は、今日のルールに含まれるシンボルのみを取得し、各アラートを1回だけ発報します。チェックは最新の遅延気配値を読み取ります。ライブフィードではなく、2回のチェックの間に価格が水準を通過する可能性があります。 - 鳴ったものを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の設定に保存され、チャットには決して表示されません。