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
- Temporal × ローカルLLM × Robot Framework 日本企業向け「止まらない・壊れない」業務自動化アーキテクチャ
- RPA × AI: なぜ「自動化」は知能なしでは破綻し、 知能は制御なしでは信頼されないのか
- 国境紛争・代理戦争をどうシミュレーションするか
- 検索とアクセスを最初に改善する 大学図書館の戦略的価値を最短で回復する方法
- 工場とリサイクル事業者をつなぐ、新しいスクラップ取引プラットフォームを開発しています
- Python で MES(製造実行システム)を開発する方法 ― 日本の製造現場に適した実践ガイド ―
- MES・ERP・SCADA の違いとは? ― 製造業における役割と境界を分かりやすく解説
- なぜソフトウェア開発の学習はこんなにも「つらい」のか ― そして、その解決方法
- 企業はどちらを選ぶのか:GPT型AIか、Gemini型AIか
- GPT-5.2 が GPT-5.1 より真価を発揮する実務ユースケース
- ChatGPT 5.2 と 5.1 の違い ― たとえ話でわかりやすく解説
- なぜ成長する企業は 既製ソフトウェアでは限界を迎えるのか ― 成功している企業が選ぶ次の一手 ―
- コンピュータビジョンのエッジ化と低リソース環境:日本企業における課題と新たな機会*
- Simplico — 企業向けAIオートメーション & カスタムソフトウェア開発(日本市場向け)
- AIによる予知保全 ― センサーから予測モデルまでの全体像
- 会計業務におけるAIアシスタント ― できること・できないこと
- なぜ中小企業はERPカスタマイズに過剰なコストを支払ってしまうのか — そしてその防ぎ方
- なぜ SimpliShop を開発したのか —— 日本の中小企業の成長を支えるための新しい EC プラットフォーム
- ファインチューニング vs プロンプトエンジニアリングを徹底解説 ― 日本企業がAIを活用するための実践ガイド ―
- 精密灌漑(Precision Irrigation)入門













