データを武器に、AIとマーケティングで未来を創る
データを武器に、AIとマーケティングで未来を創る

AIの「嘘」を数式で封じる。Python × OpenAIで構築する、高精度な個人投資アシスタントの設計思想

「今の株価のトレンドを教えて」

最新のAI(LLM)にそう問いかければ、もっともらしい答えが即座に返ってくる時代になりました。Google Geminiの予約アクションなどのエージェント機能を使えば、株価情報の取得から分析までを自動でこなしてくれるようにも見えます。

しかし、「自分のお金を預ける」という局面において、その回答を100%信じ切ることはできるでしょうか?

LLMには、もっともらしい嘘をつく「ハルシネーション(幻覚)」のリスクが常に付きまといます。特に数値データやテクニカル指標の計算において、わずかな読み間違いが致命的な判断ミスに繋がりかねません。

そこで私は、「決定論的な計算(Python)」と「生成的な解釈(OpenAI)」を切り離した、ハイブリッド型の投資アシスタント「Portfolio Monitor」を構築しました。今回は、AIの利便性を享受しつつ、その精度を極限まで高めるための設計思想について共有します。


1. コンセプト:AIエージェントを超越する「ハルシネーション・フリー」の実現

多くのAIエージェントは、ブラウジング機能や外部APIを介して情報を取得しますが、その「データと取得と解釈」のプロセスに不確実性が残ります。これに対し、私の構築したシステムは、以下の二段構えで精度を担保しています。

テクニカル指標の計算(Python)

株価データの取得には yfinance を、RSIやMACDといった指標計算には厳密な数学ライブラリを使用します。ここではAIの推論を一切挟まず、「1+1=2」と同じレベルの正確さでテクニカル指標を算出します。

生成的な文脈解析(OpenAI)

AI(GPT-5-mini)の役割は計算ではなく、「計算結果という事実に基づいた分析と説明」に限定しています。

なぜGeminiの予約アクションより精度が高いのか?

標準的なAIエージェントは、データの取得・計算・解釈のすべてをブラックボックスの中で行います。一方、この仕組みでは「計算」という最もミスの許されない工程をローカルのPythonコードで実行するため、数値の捏造(ハルシネーション)が入り込む余地を物理的に排除しているからです。

詳細は過去記事「投資を『作業』から『洞察』へ。Geminiのスケジュールアクションで構築する、私専用のAI投資アシスタント」でgemeniの予約アクションで検証した結果を御覧ください。


2. アーキテクチャ:持続可能な「自分専用」のモニタリングと通知

このシステムは、サーバーの維持管理コストを最小限に抑えつつ、信頼性を最大化するように設計しています。

  • Platform: Railway(軽量なCron実行環境)
  • Data Source: Yahoo Finance API
  • Engine: Python (Pandas, Indicators.py)
  • Intelligence: OpenAI API (gpt-5-mini)
  • Notification: Slack / Discord Webhook

あえてデータベース(DB)を使用せず、portfolio.json による銘柄管理と環境変数のみで動作させることで、運用負荷を徹底的に削ぎ落としています。


3. 処理の核心:10以上の指標による「多角的な証拠」の提示

単一の指標だけで売買を判断するのは危険です。本システムでは、以下の10以上のテクニカル指標をリアルタイムで並列計算しています。

  • オシレーター系: RSI, Stochastic, Volume Ratio(過熱感の検知)
  • トレンド系: MACD, EMA/SMA, ADX(方向性の確認)
  • ボラティリティ・需給系: Bollinger Bands, ATR, VWAP, Chandelier Exit

これらが特定の閾値を超えた時(例:RSIが30以下、かつMACDがゴールデンクロス)、初めて「重要シグナル」として検知されます。

AIによる「意味付け」の魔法

システムが強いシグナルを検知すると、その指標データ群をプロンプトとしてOpenAIに送信します。AIはそれを受け取り、以下のような人間味のある、かつ鋭い分析コメントを生成します。

「現在RSIは28.5と売られすぎ水準にあり、直近の出来高も1.8倍に急増しています。過去のサポートラインである200日SMA付近での反発の兆しが見えるため、買い場を探るフェーズと言えます。」

このように、「機械的な検知」に「戦略的な文脈」を添えることで、投資家(私)の意思決定スピードを圧倒的に高めています。


4. 実際の通知フォーマット:情報を「資産」に変える

いくら高度な分析を行っても、それが「読まれない通知」であれば意味がありません。

本システムでは、SlackのWebhookを活用し、一目で現状と次のアクションが判断できるフォーマットにこだわっています。

Slackの通知例:

📊 **投資アラート:Portfolio Monitor** 📊

🏢 銘柄: Apple Inc. (AAPL)
💰 最新終値: 150.25 (前日比: +1.2%)
📈 主要指標: RSI 28.5 / MACD Golden Cross

🤖 **AI分析要約**:
「現在の価格は200日移動平均線をサポートに反発を試みています。RSIの売られすぎ水準とMACDの好転が重なっており、短期的なリバウンドの確率が高い局面です。ただし、出来高が伴っていないため、打診買いから検討するのが妥当でしょう。」

🚨 **シグナル検出**: 
・RSI: 売られすぎ (28.5)
・Stochastic: %Kが%Dを上抜け

【テクニカル詳細】
・VWAP: 148.90
・ATR(22): 3.45 (低ボラティリティ)
・損切りライン(目安): 139.10

この通知のポイントは、「客観的な事実(数値)」と「主観的な提案(AIコメント)」が明確に分かれていることです。

人間は感情に左右されやすい生き物ですが、朝一番にこの「冷静なレポート」を受け取ることで、パニック売りや根拠のない飛びつき買いを劇的に減らすことができます。


5. 「持続可能」な自動化の重要性

ローカルPCで実施してもいいし、私はこの仕組みをクラウドプラットフォーム Railway 上でCron(定期実行)されています。色んなホスティングサービスがありますので、お使い慣れているサービスでも問題ないです。ホスティング比較に興味がある人は、「Railway / Render / Fly.ioのホスティング比較」記事を御覧ください。

なぜわざわざ外部環境で動かすのか。それは、個人のPCで実行する手間を省き、「忘れていても、チャンスだけは確実に届く」という信頼性と利便性を担保するためです。

  • DBレス設計: データベースを持たず、環境変数とJSONファイルのみで完結させることで、システムを極限まで軽量化。
  • 低コスト: Railwayのホスティングコストは極めて安価であり、月数百円程度の「コーヒー1杯分」の投資で、24時間体制の監視チームを雇っているような感覚です。

「データ分析」や「マーケティング」の世界でも同じですが、複雑すぎる仕組みは長続きしません。 運用コストを削ぎ落とし、コアとなる「分析の質」にリソースを集中させることが、プロの仕事術だと言えます。


6. おわりに:AIと共生する「次世代の意思決定」

今回構築した「Portfolio Monitor」は、単なる投資ツールではありません。

それは、「AIの得意なこと(要約・言語化)」と「コンピュータの得意なこと(正確な計算)」を正しく分配した、新しい意思決定のプロトタイプです。

Google GeminiなどのAIエージェントが進化しても、その「根拠となるデータ」の正確性を検証するのは、常に私たち人間の、あるいは厳密なプログラムの役割です。

テクノロジーにすべてを丸投げするのではなく、テクノロジーの「特性」を理解し、自分の右腕として再構築する。

このスタンスこそが、データとAIが主役となるこれからの時代において、私たちの価値を最大化する鍵になると確信しています。

最後にPortfolio Monitorのコードはgithubに公開していますので、興味がある方はgithubでダウンロードして、使ってみてください。私は投資の専門家ではありませんので、使用の前に、必ず分析ロジックとシグナルの確認と調整してください。