Pythonでマルチマーケット株式ブレイクアウトスクリーナーを作る
📈 はじめに
株式トレードにおいて、最も魅力的な戦略の一つが ブレイクアウト(Breakout) です。
価格が重要な抵抗線を上抜け、出来高が急増するとき、強い上昇トレンドが始まる可能性があります。
このプロジェクトでは、そんな銘柄を自動で見つけるための 「ブレイクアウトスクリーナー」 をPythonで開発しました。
NYSE・日経225・ベトナム50など、複数市場を一括スキャンし、条件を満たした銘柄をリストアップ。さらに自動的にローソク足チャートを生成します。
🧠 システム概要
このプログラムは3つのPythonモジュールで構成されています。
| ファイル名 | 説明 |
|---|---|
test10.py |
コアロジック。Yahoo Financeからデータを取得し、ブレイクアウト条件を判定。 |
breakout.py |
コマンドラインから簡単にスクリーナーを実行できるCLIラッパー。 |
ui_breakout.py |
Tkinterを使ったGUI(グラフィカルインターフェース)。誰でも簡単に操作可能。 |
システム構成図
flowchart TD
A["ui_breakout.py (GUIインターフェース)"] --> B["breakout.py (CLIラッパー)"]
B --> C["test10.py (コアスクリーナー)"]
C --> D["Yahoo Finance API"]
C --> E["Chart Generator (Plotly HTML/PNG)"]
⚙️ 動作の仕組み
1️⃣ データ取得
各市場(NYSE・日経・ベトナムなど)の上位銘柄をリストアップし、過去3ヶ月の株価データをYahoo Financeから取得します。
2️⃣ スクリーニングロジック
取得したデータに以下の条件を適用します。
- 📊 直近の高値をブレイクしたか
- 🔊 平均出来高の1.5倍以上のボリュームがあるか
- 💧 一定の流動性を持つ銘柄か
- 📅 週足でもブレイクアウトを確認(オプション)
条件を満たした銘柄のみが「ブレイクアウト銘柄」として抽出されます。
if is_breakout(df_t,
lookback=lookback,
volume_mult=volume_mult,
min_margin=min_margin,
min_close_pct=min_close_pct,
weekly_confirm=weekly_confirm,
weekly_lookback=weekly_lookback):
results.append(t)
🌏 対応市場
このスクリーナーは世界各国の主要市場に対応しています。
- 🇺🇸 NYSE(ニューヨーク証券取引所)
- 🇯🇵 Nikkei 50(日経主要銘柄)
- 🇻🇳 Vietnam 50(ベトナム主要銘柄)
- 🇨🇳 SSE 50(上海上位銘柄)
- 🇭🇰 HSI 50(香港ハンセン指数)
- 🇪🇺 Euronext(ヨーロッパ市場)
- 🇺🇸 S&P 500 / 50
それぞれの市場でトップ銘柄を取得し、同一ロジックでスクリーニングを行います。
📊 自動チャート生成
抽出した銘柄ごとに、Plotlyを使用してローソク足チャートを自動生成します。
価格推移・出来高・直近高値の突破などが一目で分かるようになります。
コマンド例:
python breakout.py --markets nyse,nikkei50 --charts --chart-format html
生成結果:
charts/<market>/<ticker>.html
🖥️ GUIインターフェース
コマンドラインが苦手なユーザー向けに、TkinterベースのGUIも搭載。
複数市場のチェックボックス、パラメータ設定、ログ出力、チャートプレビューなどをGUIで操作できます。

✅ 複数市場を同時選択
✅ パラメータを自由に調整
✅ スキャン進行状況をリアルタイム表示
✅ 完了後にチャートを自動表示
🔧 使用例
python breakout.py \
--markets sp500,nyse \
--lookback 20 \
--volume-mult 1.8 \
--charts \
--weekly-confirm
出力例:
=========> NYSE breakouts: ['AAPL', 'NVDA', 'LMT']
=========> Nikkei50 breakouts: ['SONY', 'TOYOTA']
Saved 12 breakout chart(s) under 'charts/nyse/*.html'
💡 利用シーン
- スイングトレーダー:トレンド初動の銘柄を早期発見。
- システムトレーダー / Quant開発者:バックテストや自動売買に統合。
- 教育・分析用途:投資講座やリサーチでのビジュアル教材に最適。
🚀 今後の拡張予定
- RSIや移動平均線のフィルター追加
- Telegram / LINE 通知連携
- FastAPIによるWebダッシュボード化
- 自動バックテストとレポート出力
🧭 まとめ
このプロジェクトは、Python + yfinance + Plotly を使って本格的な株式スクリーナーを構築する好例です。
CLIとGUIの両方に対応し、世界各市場のブレイクアウト銘柄を自動で検出。
トレーダーが「次の波」に早く乗るための強力なツールです。
Get in Touch with us
Related Posts
- ヒューリスティクスとニュースセンチメントによる短期価格方向の評価(Python)
- Rust vs Python:AI・大規模システム時代における言語選択
- ソフトウェア技術はどのようにしてチャンタブリー県の果物農家が価格主導権を取り戻すのか
- AIはどのように金融機会を発見するのか
- React Native およびモバイルアプリで ONNX モデルを活用する方法
- 葉の病害検出アルゴリズムはどのように動作するのか:カメラから意思決定まで
- Smart Farming Lite:センサーに依存しない実践的デジタル農業
- なぜカスタムMESは日本の工場に適しているのか
- AIが検索に取って代わる時代:書き手と専門家はどう生き残るのか
- リサイクル事業のための金属価格予測 (日本市場向け・投機不要)
- チーズは誰が動かした?
- 日本向け:業務に最適化されたEコマースシステム設計
- AIの導入がシステムを壊すアンチパターン
- なぜ私たちは「ソフトウェアを作るだけ」ではないのか — システムを実際に動かすために
- Wazuh管理者向け 実践プロンプトパック
- なぜ政府におけるレガシーシステム刷新は失敗するのか(そして、実際に機能する方法とは)
- 日本の自治体が「本当に必要とする」Vertical AI活用ユースケース
- マルチ部門政府におけるデジタルサービス提供の設計(日本向け)
- デジタル行政サービスが本番稼働後に失敗する7つの理由
- 都道府県・市町村向けデジタルシステムのリファレンスアーキテクチャ













