【Dify中級】銘柄コードを入れるだけ!株価自動取得+財務健全性診断+投資判断サマリーを自動生成するアプリの作り方

alt="【Dify中級】銘柄コードを入れるだけで株価自動取得・財務健全性診断・投資判断サマリーを自動生成するアプリの作り方を解説したブログ記事のアイキャッチ画像(第162話)" Difyワークフロー

皆さんこんにちは、横浜で清掃業をしているヤスです。

前回は【Dify中級】服の一覧を入れるだけ!コーディネート7日分+捨て判定+買い足し提案を全自動生成

のアプリを作りましたね。今回はこちらです。

1. 銘柄調査に20分かかる問題をAIが解決します

投資の銘柄調査に毎回20分以上かかっていませんか?証券会社のサイトでPERを調べて・PBRを調べて・ROEを調べて・52週高値安値を確認して・それを自分でメモにまとめて…。このアプリはその作業を数分に短縮します。

今回紹介する「株価・財務分析くん」は、銘柄コードと財務指標を入力するだけで以下を全自動生成します。

  • 株価データの自動取得(現在株価・52週高値安値・高値比下落率・安値比上昇率・出来高)
  • 財務指標の評価(PER・PBR・ROE・自己資本比率・営業利益率・配当利回りを評価コメント付きで分析)
  • 財務健全性スコア(入力済み指標×5点満点で算出)
  • 現在株価の52週レンジ内ポジション解説
  • 投資判断サマリー(強み・リスク・向いている投資家像・確認すべきこと)

実際にトヨタ自動車(7203)でテストしたところ、株価3,062円・52週高値4,000円・52週安値2,434円のデータが自動取得され、PER8.5(割安)・ROE15.2%(優良)という分析と「割安なPERと高ROEを重視する長期投資家に向いている」というサマリーが数分で完成しました。

⚠️ このアプリは情報提供・学習目的のみです。投資助言・売買推奨ではありません。投資の最終判断はご自身の責任で行ってください。

2. 実際の出力サンプル

📈 株価・財務分析レポート 銘柄:7203(日本株・東証) 分析目的:総合診断 投資スタイル:長期投資 📊 基本データ 銘柄名:Toyota Motor Corporation(7203) 現在株価:3,062円 52週高値:4,000円 52週安値:2,434円 高値からの下落率:約23.45%下 安値からの上昇率:約25.78%上 出来高:6,598,400株 💹 財務指標分析 PER 8.5 → 割安(市場平均より低い) PBR 1.1 → 適正(資産価値に対して適正) ROE 15.2% → 優良(高い収益性) 自己資本比率 35.2% → 普通(適度な財務安定性) 営業利益率 8.1% → 普通(業界平均程度) 配当利回り 2.5% → 普通(安定した配当) 🏆 財務健全性スコア:23/30点 特にROEの高さが目立つ 自己資本比率の改善が望まれる 👤 向いている投資家像: 割安なPERと高ROEを重視する長期投資家 配当収入を重視する投資家にも適している ⚖️ 免責事項:投資助言ではありません 投資判断はご自身の責任で行ってください

3. 【正直レポート】API設定で発生した失敗の全記録

このアプリを作る過程で複数のAPIエラーが発生しました。同じ問題で詰まる読者のために全て正直に公開します。

失敗①:最初のHTTPリクエストで404エラー

最初の設定: URL:https://query1.finance.yahoo.com/ v8/finance/chart/{{開始.ticker}}.T 結果:404 Not Found 原因: ・URLの「chart」と変数の間に 「/」スラッシュが抜けていた chart{{開始.ticker}} ← 間違い chart/{{開始.ticker}} ← 正しい ・ヘッダーにUser-Agentが設定されていなかった

💡 DifyのHTTPリクエストブロックの基本設定はこちらの記事で詳しく解説しています

【Dify】スプレッドシート連携・完結編!HTTPリクエストでデータを飛ばそう

失敗②:Jina AI経由に変更したら接続成功するもデータが空

Jina AI経由に変更後: URL:https://r.jina.ai/https://query1.finance.yahoo.com/ v8/finance/chart/{{開始.ticker}}.T 結果:SUCCESS(ステータス200) しかし入力がnullでデータが空 原因: 単体テスト実行時に ticker変数に値を入力していなかった 解決: ▷ ボタンを押したときに ticker = 7203 と入力してから実行

失敗③:財務データAPI(v10)が401 Unauthorized

財務データ取得のURL: https://r.jina.ai/https://query1.finance.yahoo.com/ v10/finance/quoteSummary/7203.T? modules=financialData,defaultKeyStatistics 結果: “error”:{“code”:”Unauthorized”, “description”:”Invalid Crumb”} 原因: Yahoo Finance v10 APIは 「Crumb(セッショントークン)」が必要 ブラウザからは自動付与されるが APIから直接叩くと401エラーになる

失敗④:query2・key-statistics・Alpha Vantage全て451エラー

試した方法: ① query2.finance.yahoo.com に変更 → 451 ② /quote/7203.T/key-statistics/ → 451 ③ /quote/7203.T/financials/ → 451 ④ Alpha Vantage API → 451 451エラーとは: 「法的・地域的な理由でアクセス制限」 原因: Difyのクラウドサーバー(米国)からの 自動アクセスが全てブロックされている 結論: 外部の株価・財務APIを Difyのクラウド版HTTPリクエストで 叩くのは現時点では難しい

最終的な解決策:財務指標を手入力に変更

試行錯誤の末、以下の設計に落ち着きました。

データ取得方法結果
株価・52週高値安値・出来高HTTPリクエスト(Jina AI経由)✅ 自動取得成功
PER・PBR・ROE・配当利回りなど開始ブロックで手入力✅ 動作確認済み

株価データだけ自動取得して財務指標は手入力という設計でも、分析・サマリー生成は完全自動で動作します。証券会社のサイトで数値をコピーして貼り付けるだけなので実用上の問題はありません。

💡 失敗談を全て公開したのはこのブログの大切なポリシーです。「作ってみたら想定通りに動かなかった」という経験こそが読者の役に立ちます。

4. 全体のブロック構成(最終版)

#ブロック名種類役割
1ユーザー入力開始銘柄コード・市場・財務指標6つを入力
2株価データ取得HTTPリクエストJina AI経由でYahoo Finance v8から株価を自動取得
3財務スコアリングLLM①株価データ+手入力財務指標を分析・スコアリング
4投資判断サマリーLLM②強み・リスク・投資家像・確認事項を生成
5最終整形テンプレート変換全レポートを1つにまとめる
6出力終了最終レポートを出力

5. 事前準備|必要なものはこれだけ

  • Difyのアカウント(無料プランOK)
  • OpenAIのAPIキー(GPT-4oが使えるプラン)
  • 調べたい銘柄コード(例:7203)
  • 証券会社のサイトで確認した財務指標(PER・PBR・ROEなど)
  • 所要時間:60〜90分(API設定のトラブルシューティング含む)

💡 財務指標はYahoo Japan ファイナンス・楽天証券・SBI証券などの銘柄情報ページで確認できます。コピーして貼り付けるだけでOKです。

6. 【作り方】ステップごとに丁寧に解説

STEP 1|新しいワークフローアプリを作成する

  1. Difyにログインして「アプリを作成」をクリック
  2. 種類は「ワークフロー」を選ぶ
  3. アプリ名に「株価・財務分析くん」と入力
  4. 「作成する」をクリック

STEP 2|開始ブロックを設定する(変数10個)

変数名表示名種類必須
ticker銘柄コードテキスト(短文)✅ 必須
market市場セレクトボックス✅ 必須
analysis_type分析の目的セレクトボックス✅ 必須
investment_style投資スタイルセレクトボックス✅ 必須
perPER(株価収益率)テキスト(短文)任意
pbrPBR(株価純資産倍率)テキスト(短文)任意
roeROE(%)テキスト(短文)任意
dividend_yield配当利回り(%)テキスト(短文)任意
equity_ratio自己資本比率(%)テキスト(短文)任意
operating_margin営業利益率(%)テキスト(短文)任意

【market】選択肢:日本株(東証)/米国株(NYSE・NASDAQ)

【analysis_type】選択肢:総合診断(全項目)/割高・割安チェック(バリュー)/成長性チェック(グロース)/配当チェック(インカム)

【investment_style】選択肢:長期投資(5年以上)/中期投資(1〜3年)/短期トレード/積立投資

⚠️ 財務指標(per〜operating_margin)は全て「任意」に設定してください。未入力でも動作して入力済み指標のみでスコアリングされます。

STEP 3|HTTPリクエストブロックを設定する

ここが最大のポイントです。以下の通り設定してください。

メソッド:GET URL: https://r.jina.ai/https://query1.finance.yahoo.com/v8/finance/chart/{{開始.ticker}}.T ヘッダー: キー:Accept 値 :application/json ボディ:none タイムアウト:接続10000ms・読み取り15000ms 出力変数:body(String) 失敗時再試行:ON・3回・100ms間隔

⚠️ URLの「chart/」の後ろに必ず「/」を入れてください。「chart{{開始.ticker}}」と書くと404エラーになります。変数は「{{」と入力してサジェストから選択することを強くおすすめします。

設定後は必ず単体テストを実行してください。

▷ボタンを押してticker = 7203と入力して実行 ✅ 成功の場合: bodyに以下が返ってくる “symbol”:”7203.T” “regularMarketPrice”:3071.0 “fiftyTwoWeekHigh”:4000.0 ❌ 失敗した場合: 404 → URLのスラッシュを確認 451 → Jina AI経由に変更(上記URLで対応済み)

STEP 4|LLM①(財務スコアリング)を設定する

temperature:0.1(分析系は正確性重視)に設定してください。

プロンプトの変数参照で最も重要なポイントがあります。

# Input の設定: – 銘柄コード  :{{開始.ticker}} – 市場     :{{開始.market}} – 分析の目的  :{{開始.analysis_type}} – 投資スタイル :{{開始.investment_style}} – 株価データ  :{{HTTPリクエスト.body}} ← 自動取得データ – PER     :{{開始.per}} ← 手入力 – PBR     :{{開始.pbr}} – ROE     :{{開始.roe}} – 配当利回り  :{{開始.dividend_yield}} – 自己資本比率 :{{開始.equity_ratio}} – 営業利益率  :{{開始.operating_margin}}

💡 スコアリングは「入力済み指標×5点満点」で算出します。6指標全入力なら30点満点、3指標入力なら15点満点になります。未入力指標を0点にしない設計が重要です。

STEP 5|LLM②(投資判断サマリー)を設定する

temperature:0.4・最大トークン:2000に設定してください。LLM①の出力を受け取って投資家向けのサマリーを生成します。

最重要のMust Notが2つあります。

## Must Not ・「買い」「売り」「今が買い時」などの 売買推奨を絶対にしない ・「絶対に儲かる」などの断言をしない → このルールを守らないと 金融商品取引法上のリスクが生じます 必ず設定してください

alt="Difyで構築した株価自動取得・財務健全性診断AIアプリのワークフロー画面と財務スコアリングノードの設定解説画像"

7. テスト実行と確認ポイント

以下の3パターンでテストしてください。

パターン銘柄特徴analysis_type確認ポイント
7203トヨタ・大型株総合診断財務指標全項目の評価
8316三井住友FG・高配当配当チェック配当利回りが重点分析されるか
4689LINEヤフー・グロース成長性チェックROE・営業利益率が重点分析されるか
  • STEP1:銘柄名・現在株価・52週高値安値が正しく出ているか
  • STEP1:高値からの下落率・安値からの上昇率が計算されているか
  • STEP1:財務健全性スコアが「入力済み指標×5点満点」で出ているか
  • STEP2:強み・リスクに数値的な根拠があるか
  • STEP2:「買い」「売り」などの断言が出ていないか
  • STEP2:免責事項が末尾に出ているか

8. よくある質問(FAQ)

Q1. 財務指標はどこで調べればいいですか?

Yahoo Japanファイナンス(finance.yahoo.co.jp)・楽天証券・SBI証券の銘柄情報ページで確認できます。銘柄コードを入力すると「指標」「財務」タブにPER・PBR・ROE・配当利回りなどが表示されます。コピーして貼り付けるだけです。

Q2. 財務指標を全部入力しなくても動きますか?

動きます。全て任意変数なので未入力でも問題ありません。入力した指標だけでスコアリングされます。例えばPERとROEだけ入力した場合は10点満点のスコアが算出されます。

Q3. 米国株にも使えますか?

株価データの自動取得は現時点では日本株(末尾.T)のみ動作確認済みです。米国株の場合はtickerにティッカーシンボル(例:AAPL)を入力して試してみてください。

Q4. 「売買推奨を出さない」設計はなぜ重要ですか?

金融商品取引法では投資助言業の登録なしに特定の投資判断を勧めることは規制されています。「買い」「売り」などの断言をプロンプトのMust Notで明示的に禁止することが法的リスクを避けるために重要です。

9. まとめ

  • 銘柄コードを入力するだけで株価・52週高値安値・高値比下落率を自動取得
  • PER・PBR・ROE・配当利回りなど6指標を手入力すれば財務健全性スコアと評価コメントが自動生成
  • Yahoo Finance v10 APIは451エラーでブロックされるため財務データは手入力が現実的
  • 株価自動取得はJina AI経由(r.jina.ai)を使えばDifyからでも安定して動作
  • 売買推奨なし・免責事項付きの安全設計で法的リスクを回避

銘柄調査に毎回20分かかっていた作業が数分に短縮されます。API設定でいくつかの壁にぶつかりましたが全て解決方法を公開しています。投資の勉強中の方・銘柄分析を効率化したい方にぜひ試していただきたいアプリです。

今回はだいぶはまりました!何度リンク先のURLを張り直してもブロックされて

エラーが連続で結局手打ちの部分を増やして何とか作った感じです。

次におすすめの記事

第82話:URLを3つ送るだけ!Difyで「競合比較表」を自動生成する実戦アプリ構築ガイド

xもやってるので良かったら見に来てください

私のエックスです。

次回も是非お楽しみに!

失敗から学ぶことは多いですね。

コメント

タイトルとURLをコピーしました