前回の記事では、「売買シグナルだけでは市場は見えなかった」という話を書いた。
RSIや移動平均線だけでは、「今が買い時なのか」は判断できない。
そこで、大口注文や出来高、複数のテクニカル指標を組み合わせ、市場全体の状態を推定する「Forecast Layer」を構築した。
目的はシンプルだった。
AIに「いつ買うか」を判断させること。
ところが、Forecast Layerを作り終えた頃、あることに気付いた。
本当に必要だったのは、AIそのものではなく、AIを改善し続けられる環境だったのである。
シミュレータを先に作ることにした
AIは、一度作れば完成するものではない。
仮説を立てる。
動かす。
結果を分析する。
改善する。
また動かす。
このサイクルを何度も回して精度を上げていく。
ところが、そのための環境がなければ改善のしようがない。
そこで今回、リアルマネーを使う前に、Paper Tradingを中心としたシミュレータ基盤を構築した。
構成はそれほど複雑ではない。
市場データを収集し、Forecast Layerが市場状態を判定する。
その結果をPaper Tradingが売買シミュレーションし、すべての結果をデータベースへ保存する。
さらにReplay機能で過去データを使った再検証もできるようにした。
つまり、
「AIがどう判断し、その結果どうなったのか」を、すべて後から分析できる環境を作ったのである。
数日動かしただけで、想像以上のことが見えてきた
シミュレータはまだ運用開始から数日しか経っていない。
それでも、多くの発見があった。
例えば、
- Opportunity(売買候補)は約1,150件発生
- 実際にPaper Tradingで評価できた売買は約50件
- 勝率は約54%
- 下落相場ではETHの買いが大きな損失源
- Forecast Layerの見逃しや重複通知も発見
ここで一番驚いたのは、
勝率54%でも利益は残らなかったことだった。
普通に考えれば、半分以上勝っているなら利益が出そうに思える。
しかし現実は違った。
勝率54%なのに利益が出ない理由
シミュレーション結果を詳しく分析すると、問題はForecast Layerにはなかった。
利益確定が早すぎる。
損切り幅が大きい。
下落相場で買いを繰り返してしまう。
手数料も利益を削る。
つまり、
「いつ買うか」は正しくても、
「どう売買するか」が最適ではなかったのである。
ここで初めて、
Forecast Layerだけでは利益は作れないことが分かった。
A/B比較ができるようになった
シミュレータを作って一番良かったことは、
改善前と改善後を数字で比較できるようになったことだ。
例えばForecast Layerでは、
| 項目 | 改善前 | 改善後 |
|---|---|---|
| クラスター見逃し率 | 34% | 0% |
| 検知遅延中央値 | 約72秒 | 約44秒 |
| 二重実装 | あり | 解消 |
| 同一イベント通知 | 最大26回 | Episode管理で0回 |
数字だけ見ると地味に見えるかもしれない。
しかし、この改善によって、
Forecast Layerの品質が安定し、
ようやくPaper Tradingの結果を信頼して分析できるようになった。
つまり、
AIを評価する土台が整ったということである。
ここで次の課題が見えた
Forecast Layerは、
市場がどういう状態なのかを教えてくれる。
例えば、
ETHは買い優勢
という判断を返す。
しかし、
それだけでは売買は決められない。
例えば、
- すでに同じ銘柄を保有している
- BTCにも買いシグナルが出ている
- 今日の利益目標は達成している
- 手数料を払うと利益が残らない
- 下落相場なので今回は見送る
こうした判断はForecast Layerの仕事ではない。
市場状態が分かることと、
「今、本当に買うべきか」を判断することは、
まったく別の問題だった。
次に必要なのはPortfolio Layer
そこでシステム全体の役割を整理し直した。
Forecast Layerは市場を見る。
Portfolio Layerは売買判断と資金管理を行う。
Learning Layerは結果を分析する。
今考えている構成は次のようなイメージである。
Orchestrator
│
┌──────┼───────┐
│ │ │
Forecast Portfolio Learning
Forecastは「市場を観測するAI」。
Portfolioは「資金をどう使うかを判断するAI」。
Learningは「結果を分析し、改善案を考えるAI」。
それぞれの役割を分けることで、改善ポイントも明確になる。
LLMの役割も変わってきた
当初は、LLMにリアルタイムの売買判断まで任せようと考えていた。
しかしシミュレータを回しているうちに考え方が変わった。
リアルタイム売買は、ルールベースの方が検証しやすい。
一方、LLMは、
- シミュレーション結果の分析
- Replay結果の要約
- 負けた原因の分析
- 新ルールの提案
- レポート作成
こうした「研究者」のような役割の方が向いている。
昼間にトレードするAIではなく、
夜に一日分の結果を分析し、翌日の改善案を考えてくれるAI。
そんな位置付けが、今のところ一番しっくりきている。
今回一番の成果
Forecast Layerの精度が上がったことも成果である。
Episode管理を導入できたことも成果である。
しかし、一番大きな成果はそこではない。
改善を繰り返せる環境ができたことである。
シミュレータがある。
Replayがある。
Paper Tradingがある。
すべての結果がデータベースへ蓄積される。
改善前後をA/B比較できる。
だから、
「なんとなく良くなった」
ではなく、
「何を変えたら、どれだけ改善したのか」
を客観的に評価できるようになった。
次のテーマ
Forecast Layerは一旦ここで完成とし、現在もシミュレータで継続検証を続けている。
次に取り組むのはPortfolio Layerだ。
市場状態だけではなく、
- 資金配分
- 保有時間
- 同時保有数
- 手数料
- リスク
- 利益期待値
これらを総合的に判断し、
「買う」「見送る」「保有を続ける」を決める仕組みを作っていく。
あとがき
今回作ったのは、トレードAIではない。
トレードAIを育てるための実験環境だった。
数日間シミュレータを回しただけで、
Forecast Layerの課題が見えた。
Portfolio Layerが必要だと分かった。
LLMの役割も変わった。
もし最初から実運用だけをしていたら、ここまで客観的に判断することはできなかったと思う。
AI開発では、新しいアルゴリズムやモデルに目が向きがちだ。
しかし実際には、それ以上に重要なのは改善を繰り返せる環境を作ることなのかもしれない。
トレードAIの開発は、まだ始まったばかりだ。次回は、このシミュレータから見えてきた「Portfolio Layer」の設計についてまとめてみたい。




















