AIトレーディングターミナル
SPY/TSLAの1分足をライブ表示し、25種類以上のテクニカル指標、AIによる売買シグナル、ペーパートレードのシミュレーション、そしてBloomberg Terminalに匹敵するポートフォリオ分析を提供するプロ仕様のダッシュボード。

担当領域
フルスタックで構築。リアルタイムのチャートエンジン、WebSocketのデータパイプライン、AIシグナルの生成、ペーパートレードのシミュレーションをすべて一から作った。
期間
4か月
年
2024
技術スタック
ステータス
稼働中SPY/TSLAの1分足をライブ表示し、25種類以上のテクニカル指標、AIによる売買シグナル、ペーパートレードのシミュレーション、そしてBloomberg Terminalに匹敵するポートフォリオ分析を提供するプロ仕様のダッシュボード。
個人トレーダーや小規模なトレーディングデスクは、Bloomberg水準の分析環境を手にできない。オープンソースのチャートツールは価格を表示するだけで、AIによる分析やバックテスト、ポートフォリオ最適化は備えていない。プロ向けの端末は年間$24k以上かかり、多くのトレーダーやフィンテックのスタートアップには手が届かない。
1分足のライブ表示(15秒ごとに更新)、25種類以上のテクニカル指標、そして値動きとマクロ指標を併せて読むClaudeベースの売買シグナルを組み合わせた、プロ仕様のダッシュボードを構築した。組み込みのペーパートレードはスリッページと手数料を織り込んだ現実的な約定を再現し、バックテストは実際の市場条件を踏まえたシャープレシオで戦略を検証する。
リアルタイム市場データのパイプライン
WebSocketベースのストリーミング構成で、SPY/TSLAの1分足を15秒周期で更新し、板情報と約定履歴も配信する。描画はRecharts v3で行い、1フレーム未満の遅延に収めている。
AIシグナルエンジン
Claude 3.5 Sonnetが価格、RSI、MACD、VIX、イールドカーブといった複数の文脈をまとめて評価し、「強い買い:RSI 28、MACDのクロス、VIXの急騰」のように確信度付きのシグナルを返す。
ペーパートレードのシミュレーター
$100kの仮想ポートフォリオで、現実的な約定、スリッページ、手数料を再現する。ポジションサイズはケリー基準とポートフォリオの相関から提案する。
バックテストエンジン
Backtraderと連携した過去データでの戦略検証により、シャープレシオ、最大ドローダウン、勝率、資産曲線を、現実的な約定前提のもとで確認できる。
25種類以上のテクニカル指標
RSI、MACD、ボリンジャーバンド、EMA、SMA、ATR、OBV、ストキャスティクス、一目均衡表など。いずれも設定を変えられ、対話的なチャートに重ねて表示できる。
このプロジェクトを形づくった技術選定と、それぞれを選んだ理由。
FastAPI + WebSockets
バックエンド非同期のWebSocketを標準で扱え、OpenAPIのドキュメントも自動生成されるため、ExpressではなくFastAPIを選んだ。市場データのバーストはRedis Streamsで受け止め、ボラティリティの高い局面でも更新を落とさない。
Recharts v3
フロントエンドReactに馴染む描画モデルとカスタマイズの自由度から、Lightweight Chartsではなくこちらを選んだ。Canvas描画は1万点を超えるデータを60fpsで扱え、1分足のチャートを滑らかに動かすうえで重要だった。
Claude 3.5 Sonnet
AI・ML出力が保守的で筋の通った説明を伴うため、トレード分析にはGPT-4oではなくClaudeを使った。GPT-4oはシグナルに自信を持ちすぎる傾向があり、市場に内在する不確実性にはClaudeの慎重な応答のほうが合っていた。
Redis Streams
インフラ市場データのパイプラインにはKafkaではなくRedis Streamsを使った。毎秒1万件未満という流量ではKafkaの運用コストが見合わない。Redis Streamsなら一度きりの配送を保ちつつ、インフラを80%減らせた。
AIによる分析とペーパートレードのシミュレーションを重ねた、リアルタイムのストリーミング構成。
データ取り込み
yfinance、AlphaVantage、FREDのAPI → Redis Streams(市場データのバッファ)
指標の計算
TA-Libが25種類以上の指標を算出 → FastAPIが複数時間軸の分析を集約
AI分析
Claude 3.5 Sonnetが価格、指標、マクロ環境を評価 → 確信度付きのシグナルを生成
配信
WebSocketでNext.jsのUIへプッシュ → Rechartsがライブのローソク足とシグナルを描画
シミュレーション
ペーパートレードがライブデータに対して約定 → ポートフォリオの損益、シャープレシオ、ドローダウンを更新
開発中にぶつかった難所と、どう乗り越えたか。
リアルタイム描画の性能
1万点を超えるローソク足に指標を重ねて描くと、Reactの再描画が200ms以上に膨らみ、15秒ごとの更新で目に見えるカクつきが出ていた。
チャートの描画を仮想化したCanvas層へ移し、指標の計算はWeb Workerでメインスレッドから外した。さらにティックごとに配列全体を差し替えるのをやめ、差分だけを追加する方式に変えた。
フレーム時間は200msから8msへ短縮した。25個すべての指標を表示しても60fpsで滑らかに描画される。
シグナルの遅延と相場の速さ
Claudeの応答に2〜3秒かかるため、値動きの速い相場ではシグナルが間に合わなかった。「買い」が表示された時点で、価格はすでに0.3%以上動いていることが多かった。
先読み計算の仕組みを入れた。AIが流入するデータを常時分析してシグナルを事前に用意しておき、相場が事前計算済みのシナリオに一致した時点で200ms未満で表示する。
実効的なシグナルの遅延は、全体の70%について2.8秒から180msへ短縮した。残りの30%、つまり前例のない相場条件では1.8秒かかるため、「計算中」の表示を出している。

