コスト0円でSlackまで届く米国株分析の最小構成【スマホで周回!#2】
こんにちは、スマホ投資パパです。
スマホだけでできる米国株の自動分析システムの第2回目になります。
前回の記事では、スマホだけで米国株の自動分析システムを育てていく全体像を書きました。
今回は、そのはじめの一歩です。
いきなり完成形の分析システムを作るわけではありません。
まずは「Slackに1回通知が届く」ところまでできれば十分です。
スマホだけで回る処理を、ひとつ動かせるようになるところまでの流れを実際に1回つなげます。
具体的にはGitHub ActionsとSlackをつないで、分析結果が自動で届くところまでを、最小構成で形にしていきます。
ここでやるのは、最初の1回だけ必要なセットアップです。
少し手は動かしますが、毎回やる作業ではありません。
ここを越えれば、以後は同じ土台の上で少しずつ改善していけます。

1. 利用するサービス
今回使うのはこれだけです。
GitHub
コードと設定ファイルを置く場所。
GitHub Actions
GitHubに置いたコードを自動で実行する仕組み。mainにpushしたら自動で走るようにします。
Slack
実行結果の通知先。Webhook URLを使って、GitHub Actionsから直接メッセージを送ります。
yfinance
Yahoo Financeの公開データ(銘柄毎の価格情報など)をPythonから取得するライブラリ。
この構成で使うものは、基本的にすべて無料で始められます。
Pythonコードを1本動かしてSlackに通知を送るくらいであれば、費用はかかりません。
お金がかかるのは、もっと先の話です。
例えば、
- codexなどで簡単にコード生成したい
- 有料のプレミアムな株価データAPIを使いたい
- github Action処理が増大して実行時間が増えた
これらの場合にはコストかかりますが、
今回の段階ではまだ気にしなくて大丈夫です。

3. セットアップ(最初の1回だけ)
ここから少し設定作業に入ります。
ただし、毎回やる作業ではありません。
最初に一度だけ、
「GitHubに置き場を作る」
「Slackの通知先を作る」
「Webhook URLをGitHubに登録する」
この3つを済ませるだけです。
ここを越えれば、以後は同じ土台の上で改善していけます。
すでにGitHubやSlackのアカウントを持っている、WebhookURLを発行している場合は、該当箇所を読み飛ばしてください。
GitHubアカウントを作る
GitHub にアクセスしてアカウントを作成します。
今回の段階では、アカウントを作ってログインできれば十分です。
こちらの公式ドキュメントに沿ってアカウント作成を進めましょう。
新しいリポジトリを作る
アカウントができたら、今回のコードを置くリポジトリを作ります。
リポジトリは「ファイル一式をまとめて置く箱」です。
名前は自分で分かればなんでもいいですが、たとえば 「stock-alert」や 「daily-alert」 あたりが分かりやすいと思います。
こちらも公式のドキュメントを貼っておきます。
下記の通り公開リポジトリにしておけば、普通の使い方なら無料でGitHub Actionsを利用できます。

※スクショはiPhoneのものになります
SlackでWebhook URLを取得する
GitHub ActionsからSlackに通知を送るには、Webhook URLが必要です。
これは外部からSlackにメッセージを送るための専用URLで、通知の鍵のようなものです。
手順はこうです。
1. Slackでアプリを作る
1. Incoming Webhooksを有効にする
1. 通知を送りたいチャンネルを選ぶ
1. 発行されたWebhook URLを控える
※この手順はPC(MAC)で実施をおすすめします
セットアップなので初回の一回だけで大丈夫
詳しい手順はこちらの記事が非常にわかりやすいので貼らせていただきます。
GitHubのSecretsにWebhook URLを登録する
取得したWebhook URLは、コードに直接書きません。
GitHubのSecretsに登録して、実行時に環境変数として渡します。
先程作成したGitHubリポジトリの Settings → Secrets and variables → Actions から登録できます。
このあと作るコードと一致させるため、名前は 「SLACK_WEBHOOK_URL」 にしましょう。

4. ChatGPTにコードを作ってもらう
準備ができたら、実際に動かすファイルをChatGPTに作ってもらいます。
必要なのは3つです。
- app.py — 銘柄リストからトレンドテンプレート合致を抽出してSlackに送るPythonコード
- requirements.txt — 実行に必要なライブラリの一覧
- .github/workflows/run.yml — GitHub Actionsの設定ファイル
一気に全部作らせるより、PythonコードとGitHub Actionsのyamlを分けて依頼した方が失敗しにくいです。
プロンプト1:Pythonコード
Pythonで、米国株のミネルヴィニのトレンドテンプレートに合致する銘柄を抽出してSlackに送る最小構成のコードを書いてください。
条件は以下です。
・固定のティッカーリストをコード内に持つ(30-40程度)
・yfinance を使って各ティッカーの過去1年半分の日足データを取得する
・以下のトレンドテンプレート8条件すべてを満たす銘柄だけを抽出する
1. 現在価格 > 150日移動平均線
2. 現在価格 > 200日移動平均線
3. 150日移動平均線 > 200日移動平均線
4. 200日移動平均線が少なくとも1ヶ月(20営業日)上昇トレンド
5. 50日移動平均線 > 150日移動平均線
6. 50日移動平均線 > 200日移動平均線
7. 現在価格 > 50日移動平均線
8. 現在価格が52週安値から少なくとも25%以上高い
・各銘柄の判定結果(価格・各MA値・52週安値比)を見やすい文字列に整形する
・Slack Webhook URL は環境変数 SLACK_WEBHOOK_URL から取得する
・Webhook URL をコードに直書きしない
・python app.py で動く形にする
・エラー時は標準出力に原因が分かるログを出す
・app.py のファイル全体を省略せずに出力する
・必要な requirements.txt の中身も別で出力するちなみにトレンドテンプレートとは、伝説的トレーダーであるマーク・ミネルヴィニが提唱する8つの条件で、価格が主要移動平均線(50日・150日・200日)の上にあり、移動平均線同士も正しい順序で並び、200日線が上向きで、52週安値から25%以上離れている状態です。要するに、長期・中期・短期すべてのトレンドが揃って上を向いている”本物の上昇トレンド銘柄”だけを機械的にふるい落とす基準です。
ですが今の段階では手順を進めることが優先なので、ひとまず読み飛ばしていただいて大丈夫です。
プロンプト2:GitHub Actions yaml
GitHub Actionsで app.py を実行する最小構成の yaml を書いてください。
条件は以下です。
・main ブランチへの push をトリガーにする
・手動実行もできるようにする
・Ubuntu 環境で実行する
・Python をセットアップする
・requirements.txt をインストールする
・python app.py を実行する
・GitHub Secrets の SLACK_WEBHOOK_URL を環境変数として渡す
・ファイルパスは .github/workflows/run.yml を想定する
・yaml 全体を省略せずに出力する
5. GitHubにファイルを置いて動かす
ChatGPTから受け取ったファイルを、GitHubのリポジトリに置きます。作成は下記の順番で実施しましょう。
① app.py
② requirements.txt
③ .github/workflows/run.yml
リポジトリでファイルを新規作成
作成したファイルに生成したコードをコピペ
を上記順で3回繰り返せば大丈夫です。




codex(有料)を使えば直接AIがファイル作成や更新までしてくれるのでもっと楽です。
3回目、プロンプト2で作ったyamlをmainブランチにコミットすることで、自動でGitHub Actionsの処理が走ります。
もし動かない場合は、まずyamlファイルの配置場所を確認してください。
.github/workflows/ の中に置かれていないと、GitHub Actionsは認識しません。
6. Slackに通知が届いたか確認する
mainにpushできたら、Slackを開いて通知を確認します。
- トレンドテンプレートに合致した銘柄があれば、その一覧が届く
- 該当銘柄がなければ「該当なし」と届く
どちらかが届いていれば成功です。

通知が届いていない場合は、GitHub Actionsの実行ログを見てください。
エラーメッセージが出ていれば、それをそのままChatGPTに貼って聞くのが最短の解決方法です。
Actionの履歴からログファイルをダウンロード
→生成aiにファイルを添付でオッケーです。

ちなみに「ワークフローの実行」より手動実行可能です。
7. ここから先の育て方
いかがでしたでしょうか。
生成aiが作ったコードをGitHubに反映し、Actionが実行され、Slack送信さえできれば、一旦は問題ありません。送信内容は最初はなんでもOKです。
こういう流れなんだなというのをなんとなくでも実感してもらえれば大丈夫です。
ここまでで、GitHub → GitHub Actions → Slack の流れがひと通りつながりました。
最初だけ少し手を動かしますが、この土台ができると、以後は毎回セットアップに悩む必要はありません。
スマホだけで淡々と行える改善サイクル、ルーチンに近い運用へ寄せやすくなります。
あとは同じ手順を何度も繰り返すだけです。
今回は少し地味な工程でしたが、毎日の運用を軽くするためには、この最初の一歩が最も大切です。
次は、この土台の上に条件を足して、候補抽出をもう少し実用寄りにしていきます。
たとえば、
- 監視する銘柄リストを増やす
- 出来高の条件を追加する
- 高値判定を足す
- 通知のフォーマットを見やすく整える
- 日次スケジュール実行に切り替える
いきなり全部やる必要はありません。
1つ足して、動かして、確認して、また1つ足す。
前回の記事で書いた「小さい改善の反復で育てる」を、ここから実際に回していく形です。
次の記事では、このトレードテンプレートチェックに出来高条件と高値判定を足して、もう少し実用的な候補抽出に近づけていきます。
最後にひとつだけ。
この記事は、米国株の売買そのものをおすすめするものではなく、あくまで分析や仕組み作りの考え方をまとめたものです。
実際の投資判断は、ご自身の責任でお願いします。
