本文へスキップ
実績一覧へ
フルスタック稼働中

AIトレーディングターミナル

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

20244か月
15秒間隔のライブチャート更新バックテストでシャープレシオ1.8以上AIシグナルの確信度90%
AIトレーディングターミナル

担当領域

フルスタックで構築。リアルタイムのチャートエンジン、WebSocketのデータパイプライン、AIシグナルの生成、ペーパートレードのシミュレーションをすべて一から作った。

期間

4か月

2024

技術スタック

Next.js 15FastAPIWebSocketsRedisClaude 3.5 SonnetRechartsTA-LibClerk

ステータス

稼働中
概要

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

解決すべき課題

個人トレーダーや小規模なトレーディングデスクは、Bloomberg水準の分析環境を手にできない。オープンソースのチャートツールは価格を表示するだけで、AIによる分析やバックテスト、ポートフォリオ最適化は備えていない。プロ向けの端末は年間$24k以上かかり、多くのトレーダーやフィンテックのスタートアップには手が届かない。

アプローチ

1分足のライブ表示(15秒ごとに更新)、25種類以上のテクニカル指標、そして値動きとマクロ指標を併せて読むClaudeベースの売買シグナルを組み合わせた、プロ仕様のダッシュボードを構築した。組み込みのペーパートレードはスリッページと手数料を織り込んだ現実的な約定を再現し、バックテストは実際の市場条件を踏まえたシャープレシオで戦略を検証する。

主な機能
1

リアルタイム市場データのパイプライン

WebSocketベースのストリーミング構成で、SPY/TSLAの1分足を15秒周期で更新し、板情報と約定履歴も配信する。描画はRecharts v3で行い、1フレーム未満の遅延に収めている。

2

AIシグナルエンジン

Claude 3.5 Sonnetが価格、RSI、MACD、VIX、イールドカーブといった複数の文脈をまとめて評価し、「強い買い:RSI 28、MACDのクロス、VIXの急騰」のように確信度付きのシグナルを返す。

3

ペーパートレードのシミュレーター

$100kの仮想ポートフォリオで、現実的な約定、スリッページ、手数料を再現する。ポジションサイズはケリー基準とポートフォリオの相関から提案する。

4

バックテストエンジン

Backtraderと連携した過去データでの戦略検証により、シャープレシオ、最大ドローダウン、勝率、資産曲線を、現実的な約定前提のもとで確認できる。

5

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による分析とペーパートレードのシミュレーションを重ねた、リアルタイムのストリーミング構成。

01

データ取り込み

yfinance、AlphaVantage、FREDのAPI → Redis Streams(市場データのバッファ)

02

指標の計算

TA-Libが25種類以上の指標を算出 → FastAPIが複数時間軸の分析を集約

03

AI分析

Claude 3.5 Sonnetが価格、指標、マクロ環境を評価 → 確信度付きのシグナルを生成

04

配信

WebSocketでNext.jsのUIへプッシュ → Rechartsがライブのローソク足とシグナルを描画

05

シミュレーション

ペーパートレードがライブデータに対して約定 → ポートフォリオの損益、シャープレシオ、ドローダウンを更新

技術的な壁と学び

開発中にぶつかった難所と、どう乗り越えたか。

技術課題1

リアルタイム描画の性能

問題

1万点を超えるローソク足に指標を重ねて描くと、Reactの再描画が200ms以上に膨らみ、15秒ごとの更新で目に見えるカクつきが出ていた。

解決策

チャートの描画を仮想化したCanvas層へ移し、指標の計算はWeb Workerでメインスレッドから外した。さらにティックごとに配列全体を差し替えるのをやめ、差分だけを追加する方式に変えた。

結果

フレーム時間は200msから8msへ短縮した。25個すべての指標を表示しても60fpsで滑らかに描画される。

技術課題2

シグナルの遅延と相場の速さ

問題

Claudeの応答に2〜3秒かかるため、値動きの速い相場ではシグナルが間に合わなかった。「買い」が表示された時点で、価格はすでに0.3%以上動いていることが多かった。

解決策

先読み計算の仕組みを入れた。AIが流入するデータを常時分析してシグナルを事前に用意しておき、相場が事前計算済みのシナリオに一致した時点で200ms未満で表示する。

結果

実効的なシグナルの遅延は、全体の70%について2.8秒から180msへ短縮した。残りの30%、つまり前例のない相場条件では1.8秒かかるため、「計算中」の表示を出している。

NEXT

LumoraTechと、次のシステムをつくりませんか。

エンジニアリングの質を重視するチームや創業者のために、こうした本番システムを構築しています。東京のチームが日本語と英語の両方で対応します。