「LLMに『次は上がる?』と聞いて、その答えに従ってボタンを押す」
そんな単純な仕組みを想像しているなら、悪いが期待外れだ。
現在の生成AI(LLM)の推論能力は強力だが、金融市場のようにノイズが多く、かつ決定的なルール(損切りラインや資金管理)が求められる領域において、プロンプト一つで勝てるほど甘い世界ではない。LLMの出力には常に「非決定論的な揺らぎ」がつきまとう。
本連載では、単一のAIモデルに依存するのではなく、「確率的な推論を行うAIエージェント」と「決定論的なルールベース・エンジン」を組み合わせたハイブリッド型自動トレーディングシステムの構築プロセスを、泥臭い実装ログとして記録していく。
何を作るのか:AIハイブリッド型自動トレード・アーキテクチャ
目指すのは、以下の4つのレイヤーが独立して動作し、相互にフィードバックを行う自律的なエージェント・システムだ。
1. Data Ingestion Layer (データ収集)
取引所のAPI、オンチェーンデータ、SNS(X等)のスクレイピング結果を、構造化された状態でストックする。
2. AI Agent Layer (推論・解釈)
ローカルLLM(Llama 3系などを想定)を活用し、テクニカル指標のパターン認識や、ニュースのセンチメント分析を行う。「なぜ今、この動きが起きているのか」という文脈を言語化させ、スコアリングする。
3. Decision Engine Layer (ルールベース・ロジック)
AIが出したスコアに対し、厳格な数学的ルール(RSI、ボリンジャーバンド、移動平均乖離率など)と、あらかじめ定義した資金管理ロジックを適用する。ここで「AIが強気でも、リスク許容度を超えていればエントリーしない」というガードレールを敷く。
4. Execution & Risk Management Layer (実行・監視)
最初は実資金を使わず、ペーパートレードで注文判断・ストップロス(損切り)・テイクプロフィット(利確)の動作を検証する。検証ログが十分に溜まるまでは、実注文に接続しない。
構成・実装のポイント
このシステムの肝は、「AIに判断をさせすぎない」ことにある。
- マルチエージェント化:
単一の巨大なプロンプトを作るのではなく、「テクニカル分析担当」「ニュース解析担当」「リスク評価担当」のように役割を分担させる。これにより、コンテキストウィンドウの節約と、推論精度の向上を図る。
- ローカルLLMの活用:
APIコストの爆発を防ぎ、かつ戦略の秘匿性を保つため、可能な限りローカル環境(または自前サーバー)で動作するモデルをベースにする。
- 構造化出力の強制:
LLMの回答が「なんとなく」にならないよう、JSON形式での出力を徹底させる。Pydanticなどのライブラリを用い、プログラムがそのままロジックに組み込めるスキーマを定義する。
予想されるハマりどころ
構築にあたって、すでにいくつか壁が見えている。
- 非決定論的な出力への対処:
LLMの回答が、同じ入力でも微妙に変わってしまう問題。これをどうやって「ルールベース・エンジン」が受け入れられる形式で固定化するか。
- レートリミットと遅延(Latency):
API取得、さらにはローカルLLMの推論プロセスが重なると、意思決定に致命的な遅延が発生する。リアルタイム性と計算コストのトレードオフは避けて通れない。SNSやニュースを扱う場合も、規約・取得頻度・キャッシュ設計を守る必要がある。
- コンテキストの断片化:
過去のチャートデータと最新のニュースをどうやって一つの「文脈」としてLLMに流し込むか。情報の抽象化レベルの設計が難しい。
次にやること
まずは、最も基礎となる「Data Ingestion Layer」のプロトタイプ構築から着手する。
具体的には、特定の取引所APIからOHLCV(始値・高値・安値・終値・出来高)を取得し、それをローカルのデータベースへ時系列で格納するパイプラインを実装する。
その後、そのデータに対して、どの程度の粒度のテクニカル指標を生成し、LLMにどのようなプロンプトで食わせるのが最も「解釈」として有用かを検証していく予定だ。
注意点
本プロジェクトは、あくまでシステム構築の技術的な実験であり、自動化されたエージェントがどのように動くかを観察するためのものである。市場のボラティリティや予期せぬバグにより、資産を失うリスクは常に存在する。実装コードをそのまま運用に投入することは推奨しない。
※この記事は投資助言ではなく、システム構築・検証ログです。