scanner-bullish について
指定した銘柄をスキャンし、複合的なテクニカルスコアで順位付けするコマンドラインスキルです。移動平均、RSI、MACD、ADX、モメンタムを組み合わせ、クロスの詳細も示します。
主な機能
- 01カンマ区切りの銘柄リストをスキャン
- 02複合スコアで銘柄を順位付け
- 03移動平均、RSI、MACD、ADX、モメンタムを評価
- 04EMAとMACDのクロス詳細を表示
- 05決算のタイミングと該当シグナルを出力
活用シーン
- 01ウォッチリストを強気テクニカルシグナルで順位付け
- 02直近のEMAとMACDのクロスを確認
- 03選択銘柄間でトレンド指標を比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ staskh/ trading_skills --skill scanner-bullishインストール後、Claude Code で/scanner-bullishを入力して読み込まれたか確認します。
同梱ファイルscripts/scan.py
詳細
強気銘柄スキャナー
銘柄をスキャンして強気トレンドを検出し、複合スコアで順位付けします。
手順
注記:
uvがインストールされていない場合、またはpyproject.tomlが見つからない場合は、以下のすべてのコマンドでuv run pythonをpythonに置き換えてください。
uv run python scripts/scan.py SYMBOLS [--top N] [--period PERIOD]
引数
SYMBOLS- カンマ区切りのティッカーシンボル(例:AAPL,MSFT,GOOGL,NVDA)--top- 返す上位結果の件数(デフォルト:30)--period- 分析対象の過去期間:1mo、3mo、6mo(デフォルト:3mo)
スコアリングシステム(最大約9.5ポイント)
| 指標 | 条件 | ポイント |
|---|---|---|
| SMA20 | 価格 > SMA20 | +1.0 |
| SMA50 | 価格 > SMA50 | +1.0 |
| RSI | 50-70(強気) | +1.0 |
| 30-50(中立) | +0.5 | |
| <30(売られ過ぎ) | +0.25 | |
| MACD | MACD > シグナル | +1.0 |
| ヒストグラム上昇中 | +0.5 | |
| EMA9/21 | EMA9 > EMA21(ゴールデンクロス) | +0.5 |
| EMA9 < EMA21(デッドクロス) | -0.25 | |
| 2本同時クロス | 両方上向き、どちらも10日以内 | +1.0 |
| 両方上向き、経過日数を問わない | +0.5 | |
| 両方下向き、どちらも10日以内 | -1.0 | |
| 両方下向き、経過日数を問わない | -0.5 | |
| 方向が不一致 | -0.5 | |
| ADX | >25 かつ +DI > -DI | +1.5 |
| +DI > -DI のみ | +0.5 | |
| モメンタム | 期間リターン / 20 | -1 ~ +2 |
出力
以下を含む JSON を返します:
scan_date- スキャンのタイムスタンプsymbols_scanned- 分析した銘柄の合計数results- スコア順(高い順)に並べた配列:symbol、score、pricenext_earnings、earnings_timing(BMO/AMC)period_return_pct、pct_from_sma20、pct_from_sma50rsi、macd、macd_signal、macd_hist、adx、dmp、dmnema9、ema21— 現在の EMA9 と EMA21 の値ema_crossover- 直近の EMA9/EMA21 クロス(見つからない場合はnull):direction-"up"(EMA9 が EMA21 を上抜け=強気)または"down"(下抜け=弱気)days_ago- クロスが発生したバーからの取引日数(0 = 最新のバーで発生)
macd_crossover- 直近の MACD クロス(見つからない場合はnull):direction-"up"(MACD がシグナルを上抜け=強気)または"down"(下抜け=弱気)days_ago- クロスが発生したバーからの取引日数(0 = 最新のバーで発生)
signals- 条件に合致したシグナルのリスト
EMA クロスの解釈
- EMA9 > EMA21 で
days_agoが小さい(0-5):新たなゴールデンクロス — 短期モメンタムが確認されています - EMA9 が EMA21 を下抜けた直後:デッドクロス — 短期モメンタムがマイナスに転じています
- EMA9 のクロスが MACD のクロスより数日遅れている:正常です — MACD が先行し、EMA が確認します
null:期間を通じて EMA9/21 の関係に変化がありません
MACD クロスの解釈
direction: "up"でdays_agoが小さい(0-5):新たな強気クロス — 早期エントリーのシグナル- 深くマイナスのシグナルからの
direction: "up":調整からの回復 direction: "down":スコアにかかわらず、モメンタムが弱気に転じていますnull:期間内に符号の変化が見つかりません — トレンドは一貫して一方向です
例
# Scan a few symbols
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA,TSLA
# Get top 10 from larger list
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA,TSLA,AMD,AMZN,META --top 10
# Use 6-month lookback
uv run python scripts/scan.py AAPL,MSFT,GOOGL --period 6mo
解釈
- スコア > 6:強い強気トレンド
- スコア 4-6:中程度の強気
- スコア 2-4:中立/弱含み
- スコア < 2:弱気またはトレンドなし
依存関係
pandaspandas-tayfinance
タイムゾーン
すべてのタイムスタンプと時間ベースの計算では、America/New_York タイムゾーンを使用する必要があります。すべての JSON 出力には、generated_at(ニューヨーク時間の文字列)と data_delay フィールドを含める必要があります。
コメント
Markdown 対応