本文へ移動
cccskills
無料GitHub で公開日本語紹介

trader-scanner

米国株のチャートをルールに沿って走査し、ブレイクアウトやブルフラッグ、売られ過ぎなどの条件に合う銘柄を一覧化するスキルです。

原文原文の説明を見る

Chart Scanner. Scans thousands of charts for setups: opening-range breakouts, flags, oversold bounces. Builds the list of US-listed common stocks, ordinary shares and ADRs from Nasdaq Trader's symbol directories, runs a pre-market scan of daily closes (20-day closing-high breakout, bull flag, reclaimed the 20-day average, oversold, oversold bounce) and an intraday opening-range breakout scan on 5-minute bars, then writes trader/watchlist.json for trader-news and trader-entry. Free Yahoo data, bar by bar. Use when the user says "scan the market", "find me setups", "what is breaking out", "opening range breakouts", "scan for bull flags", "oversold stocks", "pre-market scan", "build my watchlist", "what should I look at today", or at the start of a trading day before /trader-news.

Jakeschincariol/day-trader-skillスター 3,059(GitHub 3,059 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 寄り付き前に候補銘柄を探したいとき
  • ブレイクアウト銘柄を調べたいとき
  • ブルフラッグを走査したいとき
  • 場中の寄り付きレンジ突破を見たいとき

日本語での紹介

できること

米国上場の普通株、通常株、ADRなどの銘柄群を作り、日足の終値や取引中の5分足を条件に照らして走査します。寄り付き前のスキャンでは、20営業日の終値高値更新、ブルフラッグ、20日移動平均の回復、売られ過ぎ、売られ過ぎからの反発を検出します。取引中は、寄り付き後の一定時間で作る値幅を上抜けた5分足を調べます。条件に一致した銘柄はウォッチリストに保存され、ニュース確認やエントリー分析に引き継げます。結果には取得数や有効なチャート数、走査時刻などを添え、部分的な取得も明示します。

こんなときに便利

多数のチャートを一つずつ見る代わりに、決めた条件に一致する銘柄を探したいときに使えます。寄り付き前の候補探しや、取引開始後のオープニングレンジ突破の確認に向いています。

使い方の例

  • 「寄り付き前の市場をスキャンして」
  • 「ブルフラッグに一致する銘柄を探してください」
  • 「今日のオープニングレンジ突破を調べて」

注意点

株価データはYahooの無料・非公式データで、遅延する場合があります。取引中の走査は5分足を使い、ティック単位ではありません。走査結果は条件に一致したチャートの一覧であり、売買推奨や予測ではありません。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(2)

  • SKILL.md10.7 KB
  • scan.py46.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

trader-scanner

The Chart Scanner is the first step of a day trade. It reads thousands of free charts and lists the ones that match a rule. That is all it does. A scan is a list of charts that match a rule, not a list of stocks to buy, and a setup on a chart is not a prediction. Most people who day trade lose money; the scanner does not change that. It only saves you from flipping through 5,000 charts by hand.

${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).

python3 "${CLAUDE_SKILL_DIR}/scan.py" universe                       # -> trader/universe.txt
python3 "${CLAUDE_SKILL_DIR}/scan.py" daily                          # before the open -> trader/watchlist.json
python3 "${CLAUDE_SKILL_DIR}/scan.py" daily --symbols TSLA,NVDA,AMD  # or --watchlist FILE, --limit 200
python3 "${CLAUDE_SKILL_DIR}/scan.py" orb                            # after 9:50 AM ET -> trader/watchlist.json
python3 "${CLAUDE_SKILL_DIR}/scan.py" orb --at 10:15                 # cut the clock at 10:15 AM ET
python3 "${CLAUDE_SKILL_DIR}/scan.py" orb --watchlist trader/watchlist.json --json

Flags: --min-price 5 and --min-volume (daily 1,000,000, orb 0), --or-minutes 15, --max-confirm 200 (orb stage 2), --now "2026-10-19 10:15" (New York time) to pin the clock, --offline PATH to read saved Yahoo files, --no-write, --show N, --json. Exit code 0 when the scan found something, 1 when it found nothing or could not run (the reason is one plain line).

What it reads and writes

filewhat
trader/universe.txtwritten by universe: one SYMBOL|Name a line, read by daily and orb
trader/watchlist.jsonwritten by daily and orb: mode, as_of, universe, scanned, failed, hits[]. trader-news and trader-entry read hits[].symbol
trader/config.jsonread by orb: no_entries_after (default 15:30)

The universe

universe downloads nasdaqlisted.txt and otherlisted.txt from nasdaqtrader.com/dynamic/SymDir and keeps a row when, in this order:

  1. It is not a test issue, not an ETF, not NextShares.
  2. It is a plain ticker: 1 to 5 letters, or 1 to 4 letters plus one class letter after a dot (BRK.B). A $ preferred (ABR$D) is out, and so is a .U, .W or .R suffix (units, warrants, rights).
  3. Out, whatever else the name says: warrants; SPAC units and rights ("Units, each consisting of", "Rights to receive"); notes, ETNs, debentures; a % coupon; "Depositary Shares" that are not American or Global (those carry a preferred).
  4. In: the name calls it common stock, common shares or units, ordinary shares, shares of beneficial interest, ADS / ADR / American or Global depositary shares, or partnership or trust units.
  5. Out: the name still says unit, right, bond, preferred or preference.
  6. In: everything else (plain names like "AMETEK, Inc.").

On the Oct 19 2026 files this keeps 5,943. The reel said 5,259: that count came from an ad hoc filter (names that say common or ordinary, no ADRs). All 5,259 of those are in this list; the 684 extra are mostly ADRs, closed-end funds and partnership units. The Oct 20 files gave 5,942.

The daily scan (before the open)

Yahoo's spark endpoint returns closes for 20 symbols a request, so 5,942 symbols take 298 requests. On Oct 20 2026 that took 145 seconds with the polite pause (0.3 s). Liquidity comes from the spark meta: last price at least --min-price and last session's volume at least --min-volume. Run it before the open or after the close: during the session the volume is the day's so far, and today's daily bar is left out until 4:00 PM.

The setups are computed from daily closes only (spark has no highs or lows), so they are close cousins of the reel's refs/scan.py, which used highs and lows:

setupthe rule on closes
breakout_20dthe last close is above every close of the 20 sessions before it
bull_flagup more than 10 % over the 10 sessions before the last 5, then the last 5 closes inside a 5 % range
reclaim_ma20the close before was under its 20-day average, the last close is above it
oversoldRSI 14 (Wilder) under 30
oversold_bounceRSI 14 was under 30 yesterday and today closed up

A closing-high breakout fires more often than an intraday-high one (KO on Oct 16 broke its 20-day closing high, not its 20-day intraday high). Hits are listed most traded first (price times volume).

The opening-range breakout scan (during the session)

The opening range is the first --or-minutes (15) of the session: the 9:30, 9:35 and 9:40 five-minute bars. A hit is the first completed 5-minute bar to CLOSE above the range high, at that bar's close time.

  1. Stage 1, every symbol: spark closes of today's 5-minute bars, 20 a request. A chart goes on only if a completed bar after the range closed at or above the highest close of the range. That is a necessary condition (the range high is at least every range close), so no breakout is lost.
  2. Stage 2, each candidate: the v8 chart with real highs and lows, one request each. Range high = the highest high of the range bars, range low = the lowest low. On a strong morning most charts are candidates, so stage 2 checks at most --max-confirm (200) of them, the most traded first (price times volume so far), and prints PARTIAL with the count it skipped. --max-confirm 0 checks them all.

Timing, live on Tue Oct 20 2026 (a strong morning): 100 liquid names at 10:01 AM took 35 seconds (5 spark requests, 70 v8 charts, 51 of 91 usable charts broke out). The whole universe at 10:03 AM took about 4 minutes (298 spark requests, then 200 v8 charts): 2,448 usable charts, 1,782 candidates, the 200 most traded checked, 119 of those broke out. For a fast answer, scan the daily watchlist or a list of names you trade (--watchlist, --symbols).

A chart is usable only when every 5-minute bar from 9:30 to the cutoff is there; a missing bar means a halt or a thin stock. Null closes are dropped, a bar off the 5-minute grid (the live tick, like 10:58:07) is dropped, and a bar counts only once it is complete (start + 5 minutes). Before 9:50 AM, on a weekend or holiday, after the close, or after no_entries_after (an expired setup) it prints one plain line and writes nothing. The 1:00 PM early closes are in the calendar.

Data and limits

  • Yahoo's chart and spark endpoints are free, unofficial and can lag. Bars are 5-minute bars, bar by bar, never tick by tick. query2 first, query1 on a 429 or 5xx, one retry after a 5-second wait on a 429.
  • Partial results are said as partial: "Fetched 4,980 of 5,259 charts (279 failed or had no data)". Never round a partial scan up to "the whole market".
  • NYSE holidays and early closes for 2026 and 2027 (nyse.com, read 2026-10-13).

Steps

  1. Once a week or so: scan.py universe.
  2. Before the open: scan.py daily. Tell the user the counts (fetched, liquid, scanned, hits) and the top few by setup.
  3. After 9:50 AM ET (10:15 is the classic): scan.py orb. Tell the user how many usable charts broke their range and when, and that a later hit is closer to the price now.
  4. The user picks one chart. Hand it on: /trader-news TICKER (what is moving it), then /trader-entry TICKER (the entry bar by bar). Never pick for them.

Example: the reel

Monday Oct 19 2026, scan at 10:15 AM over the reel's 234-ticker wall (tests/fixtures/trader-scanner/wall5m-2026-10-19.json.gz, real Yahoo charts):

python3 scan.py orb --offline wall5m-2026-10-19.json.gz --now "2026-10-19 10:15" --min-price 0
Fetched 233 of 234 charts (1 failed or had no data); 231 usable; 95 candidates, 95 confirmed with real highs and lows.
42 of 231 charts closed above their opening-range high by 10:15 AM:
   9:50 AM  AMC         $2.97  range 2.90 to 2.96  +0.50% over
  ...
  10:15 AM  TSLA      $364.18  range 354.47 to 362.18  +0.55% over

The reel's wall had no price floor (AMC at $2.97 is one of the 42), hence --min-price 0; with the default $5 floor it is 41. TSLA's range is the 9:30 to 9:40 bars, high 362.18, low 354.47; the 10:10 bar closed at 364.18, 0.55 % over the high, at 10:15 AM. The user picks TSLA and Claude hands it to /trader-news TSLA, then /trader-entry TSLA. In the reel the universe was 5,259 US stocks; this tool's rule gives 5,943 on the same files.

The pre-market scan that morning (closes through Fri Oct 16, the reel's daily charts) tags BLK, CI, XOM and HD a 20-day breakout, CCL a bull flag, F, JPM and GE a reclaim of the 20-day average, and BAC, MS, RIVN and PLUG oversold, as the reel did. On closes it also tags KO (breakout), RCL (flag) and PNC (an oversold bounce).

Rules

  • Say what was scanned: how many symbols, how many charts came back, how many were usable, and the time of the data.
  • Say "matched a rule", never "a buy", "a winner" or "a good trade".
  • Never print a P&L, a return or a profit figure.
  • A hit is stale once the price has moved on. Re-run before acting on it.

What it never does

It never places, sizes or checks an order, never says which stock to buy, never calls data real time, and never promises that a setup works.

Safety

  • Education and tooling, not financial advice. A PASS is a rules check, not a recommendation.
  • Paper trading by default ("paper": true). Going live is the user's own decision, in their own config.
  • Nothing in this pack places an order except trader-broker, and only when all three hold: trader-risk passed that exact order today, the user typed an explicit yes for that one order in the chat, and the user clicked Allow once on Claude's own card because the order tool is set to "Needs approval" (Customize > Connectors > tool permissions). Never set an order tool to "Always allow".
  • No options, margin, short selling or leverage unless the config allows it and the user confirms.
  • Broker keys live in environment variables or the Claude Desktop config, never in the chat.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

trader-alerts

無料概要あり

株価や損切り・目標価格、取引終了時刻、NYSEの始業を監視して一度だけ知らせ、遅延相場データを価格記録にまとめるスキルです。

  • 損切りや目標価格を監視したいとき
  • 指定価格への到達を知りたいとき
  • 取引終了時刻をリマインドしたいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

trader-analyst

無料概要あり

SEC提出資料の売上高や利益、利益率、EPSを四半期ごとに前年同期と比べ、決算発表で変わった点や次回発表日を確認するスキルです。

  • 決算を前年同期と比べたいとき
  • 売上や利益率の推移を確認したいとき
  • 決算説明会の内容を要約したいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

trader-broker

無料概要あり

承認済みの注文をチケット形式で確認し、明示的な同意と追加の許可を経てブローカーへ送る手順を扱います。ペーパートレードを初期設定とし、約定も記録します。

  • 注文チケットを確認してペーパートレードしたいとき
  • Claude DesktopでAlpacaを接続したいとき
  • 約定や決済注文を記録・準備したいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

trader-budget

無料概要あり

売買プランと予算、損失上限などから購入できる株数を計算し、条件に合う場合は損切り・利確付きの注文案を1件作成します。発注は行いません。

  • 予算と損失上限から購入株数を決めたいとき
  • 株数を決めた資金上限を確認したいとき
  • 損切り・利確付きの注文案を作りたいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

trader-entry

無料概要あり

Yahoo Financeの分足を監視し、指定した価格帯を終値で上抜けた時刻と価格を知らせます。買い注文は行わず、損切りや目標価格の設定に使う記録も残します。

  • 寄り付きレンジの上抜けを待ちたいとき
  • 指定価格を終値で超えたか確認したいとき
  • 銘柄やウォッチリストを監視したいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

trader-exit

無料概要あり

エントリー価格やオープニングレンジをもとに、損切り価格と目標価格を事前に計算します。リスクや損益比率を確認し、計画を保存して関連ツールへ渡せます。

  • 取引前に損切りと目標を決めたいとき
  • ストップの基準を比較したいとき
  • 1株あたりのリスクを把握したいとき
Jakeschincariol/day-trader-skill3,0592026年10月20日 更新

Jakeschincariol のスキルをすべて見る

このスキルの問題を報告する