このBotは、特定のテクニカル分析戦略(HWB戦略)に基づき、NASDAQ/NYSEの全上場銘柄(約7,000-8,000銘柄)を毎日スキャンし、潜在的な取引機会を「AI判定システム」としてDiscordに通知します。
- AI判定システム: スキャン結果を「監視候補」「当日シグナル」「直近シグナル」の3つのカテゴリで分かりやすくサマリー投稿
- 大規模スキャン: NASDAQ/NYSE全銘柄を自動分析
- 柔軟な投稿制御: サマリーと個別アラート(戦略1)を独立してON/OFF可能(当日シグナルは常時投稿)
- シグナル管理: 一度シグナルが出た銘柄には冷却期間を設け、再通知を抑制
- 段階的フィルタリング: 効率的な処理で高速スキャン
- 週足の終値が週足200SMAを上回っている
- 日足200SMAと日足200EMAで形成されるゾーン(帯)の間に、始値と終値の両方が収まるローソク足が出現
- セットアップ後にBullish FVG(Fair Value Gap)が形成される
- 以下のいずれかの条件を満たす:
- 条件A: FVGの3本目のローソク足の始値or終値が、日足200SMA/EMAの±5%範囲内
- 条件B: FVGゾーンの中心が、日足200SMA/EMAの±10%範囲内
- Part A: セットアップ翌日から昨日までの最高値をレジスタンスとする
- Part B: FVG下限がサポートとして機能し、現在の終値がレジスタンスを0.1%以上ブレイクアウト
このBotは大量の銘柄を効率的に処理するため、以下の最適化を実装しています:
- ルール①(週足トレンド): 全銘柄をバッチ処理でチェック
- ルール②③④: ルール①を通過した銘柄のみを並列処理
この方式により、処理対象を段階的に絞り込み、計算コストの高い後段のルールの処理量を削減します。
- 並列処理: 複数銘柄を同時に処理
- データキャッシュ: 取得済みデータを再利用
- バッチ処理: ネットワークI/Oを効率化
- 段階的フィルタリング: 早期に対象を絞り込み
- 7,000銘柄の処理: 約5-10分(初回)
- キャッシュ利用時: 約2-5分
- Python 3.8以上
- Discord Bot Token
- 十分なメモリ(推奨: 4GB以上)
# リポジトリのクローン
git clone https://github.com/yourusername/hwb-discord-bot.git
cd hwb-discord-bot
# 仮想環境の作成
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 依存関係のインストール
pip install -r requirements.txt.env.exampleを.envにコピーして編集:
cp .env.example .env.envファイルを開き、必要な設定を行う:
# Discord設定
DISCORD_BOT_TOKEN="あなたのトークン"
BOT_CHANNEL_NAME="hwb-signal-alerts"
# 投稿設定(任意)
POST_SUMMARY="true"
POST_STRATEGY1_ALERTS="false"
# シグナル管理設定(任意)
SIGNAL_COOLING_PERIOD=14
# パフォーマンス設定(任意)
BATCH_SIZE=50
MAX_WORKERS=10
CACHE_EXPIRY_HOURS=12- Botを招待するサーバーを用意
- Bot権限:チャンネル作成、メッセージ送信、ファイル添付
Botは以下のスケジュールで自動実行されます:
- 平日のみ: 月曜日〜金曜日
- 実行時刻: 米国市場終了(16:00 ET)の15分後
- 夏時間: 5:15 JST
- 冬時間: 6:15 JST
# Botを起動
python bot_hwb.pyBotが起動すると:
- NASDAQ/NYSEの銘柄リストを自動取得
- 自動的に
#hwb-signal-alertsチャンネルを作成(存在しない場合) - 毎日の指定時刻に全銘柄をスキャン
- 条件を満たす銘柄をDiscordに通知
| コマンド | 説明 | 使用例 |
|---|---|---|
!status |
Botのステータスと次回スキャン時刻を表示 | !status |
!check <SYMBOL> |
特定の銘柄のシグナル状況をチェック | !check AAPL |
!history <SYMBOL> |
シグナル履歴を表示(指定がなければサマリー) | !history NVDA |
!scan |
手動でスキャンを実行(管理者のみ) | !scan |
!clear_cache |
データキャッシュをクリア(管理者のみ) | !clear_cache |
!clear_history |
全てのシグナル履歴をクリア(管理者のみ) | !clear_history |
!toggle [type] |
投稿設定を切り替え(管理者のみ) | !toggle s1 |
!toggle- 現在の投稿設定を表示!toggle summary- サマリー投稿のON/OFF切り替え!toggle s1- 戦略1個別アラートのON/OFF切り替え
Botは、サマリー投稿と個別アラートの2種類を投稿します。
AI判定システム
NASDAQ/NYSE スキャン結果
スキャン時刻: 2024-07-25 05:15 JST
📍 監視候補
NVDA, AAPL, AMD, MSFT, GOOGL, META, TSLA
🚀 当日シグナル
MOS, MMM
📈 直近シグナル(3営業日以内)
PANW, UBER
-
サマリー投稿(AI判定システム)(デフォルト: ON)
- 監視候補: 戦略1(FVG検出)に該当する銘柄。ブレイクアウト待ちの状態。
- 当日シグナル: 戦略2(ブレイクアウト)に該当した銘柄。
- 直近シグナル: 過去3営業日以内に戦略2に該当した銘柄。
-
個別アラート(戦略1: FVG検出)(デフォルト: OFF)
- 「監視候補」に挙がった銘柄の詳細情報とチャートを投稿します。
-
個別アラート(戦略2: ブレイクアウト)(常時ON)
- 「当日シグナル」に挙がった銘柄の詳細情報とチャートを投稿します。
- このアラートは、
.envの設定(POST_STRATEGY2_ALERTS)に関わらず、常に投稿されます。
.envファイルでサマリーと戦略1アラートのON/OFFを設定できます。
# 投稿設定
POST_SUMMARY="true" # サマリー投稿のON/OFF
POST_STRATEGY1_ALERTS="false" # 戦略1個別アラートのON/OFF注意: 戦略2の個別アラート(当日シグナル)は、ユーザーが重要な通知を見逃さないように、常に投稿される仕様となっています。
各アラートには以下を含むチャートが添付されます:
- 日足ローソク足(6ヶ月分)
- 日足200SMA(明るい紫)
- 日足200EMA(紫)
- セットアップゾーン(黄色)
- FVGゾーン(緑色)
- ボリューム
Botは、一度ブレイクアウト(戦略2)のシグナルを通知した銘柄に対して「冷却期間」を設けることで、短期間に同じ銘柄のアラートが繰り返し通知されるのを防ぎます。
- 冷却期間: デフォルトでは14日間です。
- 機能:
- ある銘柄が「当日シグナル」として通知されると、その日から冷却期間に入ります。
- 冷却期間中の銘柄は、新しいセットアップが検出されても、再度シグナルとして通知されることはありません。
- これにより、ユーザーはノイズの少ない、より意味のある新しいシグナルに集中できます。
- 確認:
!statusコマンドで現在冷却期間中の銘柄数を確認できます。!history <SYMBOL>で個別銘柄の状態も確認可能です。 - カスタマイズ: 冷却期間の日数は、
.envファイルのSIGNAL_COOLING_PERIODで変更できます。
.envファイルで調整可能:
# MA近接条件(ルール③)
PROXIMITY_PERCENTAGE=0.05 # 条件A: ±5%
FVG_ZONE_PROXIMITY=0.10 # 条件B: ±10%
# ブレイクアウト閾値(ルール④)
BREAKOUT_THRESHOLD=0.001 # 0.1%以上の上昇
# その他のパラメータ
MA_PERIOD=200 # 移動平均期間
SETUP_LOOKBACK_DAYS=60 # セットアップ検索期間
FVG_SEARCH_DAYS=30 # FVG検索期間
# シグナル管理設定
SIGNAL_COOLING_PERIOD=14 # シグナル後の冷却期間(日数)# 並列処理設定
BATCH_SIZE=50 # バッチ処理のサイズ(推奨: 20-100)
MAX_WORKERS=10 # 並列ワーカー数(推奨: CPUコア数)
CACHE_EXPIRY_HOURS=12 # キャッシュ有効期限(時間)- このBotは教育・情報提供目的です
- 投資判断は自己責任で行ってください
- 大量の銘柄を処理するため、初回実行時は時間がかかります
- yfinanceのレート制限に注意(エラーが出る場合は時間をおいて再実行)
- 市場の休場日(祝日等)は考慮されていません
# スワップメモリを増やす(Linux)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile# 最新版にアップグレード
pip install --upgrade yfinance curl_cffiBATCH_SIZEを小さくする(例: 20)MAX_WORKERSを減らす(例: 5)- キャッシュが効いているか確認(
!statusコマンド)
- Bot Tokenが正しいか確認
- Botに必要な権限があるか確認
- ファイアウォール設定を確認
!statusでBotの状態を確認- コンソールログでエラーを確認
- 市場が開いている日か確認
- 銘柄リストが正しく取得できているか確認
Botのログはコンソールに出力されます。詳細なログが必要な場合:
# ログファイルへのリダイレクト
python bot_hwb.py > hwb_bot.log 2>&1
# リアルタイムでログを確認
tail -f hwb_bot.logバグ報告や機能提案は、GitHubのIssueまたはPull Requestでお願いします。
MIT License
免責事項: このAI判定システムは教育および情報提供のみを目的として作成されています。AIによる判定結果は投資助言ではありません。実際の投資判断は、ご自身の責任において、十分なリサーチとリスク評価の上で行ってください。過去のパフォーマンスは将来の結果を保証するものではありません。