Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
27 KiB
QuantDinger
次世代 AI 定量的取引プラットフォーム
🤖 AIネイティブ · 🐍 ビジュアルPython · 🌍 グローバルマルチマーケット · 🔒 プライバシーファースト
AIコパイロットを搭載した構築、バックテスト、取引プラットフォーム。PineScriptより強力、SaaSよりスマート。
📖 はじめに
QuantDingerとは?
QuantDingerは ローカルファースト、プライバシー重視のセルフホスト型定量取引インフラ です。あなたのマシン/サーバー上で実行され、PostgreSQL によるマルチユーザーアカウント を提供しつつ、戦略・取引データ・APIキーを完全にコントロールできます。
なぜローカルファーストなのか?
データと戦略をクラウドにロックするSaaSプラットフォームとは異なり、QuantDingerはローカルで実行されます。あなたの戦略、取引ログ、APIキー、分析結果はすべてあなたのマシンに保存されます。ベンダーロックインなし、サブスクリプション費用なし、データ流出なし。
誰のためのものか?
QuantDingerは以下のユーザー向けに構築されています:
- データ主権とプライバシーを重視するトレーダー、研究者、エンジニア
- 透明で監査可能な取引インフラストラクチャを必要とする人
- マーケティングよりもエンジニアリングを好む人
- 完全なワークフローが必要な人:データ、分析、バックテスト、実行
コア機能
QuantDingerには、ウェブから金融情報を収集し、ローカル市場データと組み合わせて分析レポートを生成する、内蔵の LLMベースのマルチエージェント研究システム が含まれています。これは戦略開発、バックテスト、実取引ワークフローと統合されています。
コアバリュー
- 🔓 Apache 2.0 オープンソース(コード): 寛容で商用利用に適しています。Apache 2.0 の範囲で fork/改変が可能ですが、ライセンス/著作権表示など必要な告知は保持してください。
- 🐍 Pythonネイティブ & ビジュアル: 標準のPythonでインジケーターを作成(PineScriptより簡単)、AIが支援します。チャート上でシグナルを直接可視化 ——「ローカル版TradingView」体験を構築。
- 🤖 AIループ最適化: 戦略を実行するだけでなく、AIがバックテスト結果を分析してパラメータ調整(ストップロス/利益確定/MACD設定)を提案し、閉ループ最適化を形成します。
- 🌍 グローバルマーケットアクセス: 暗号資産(実取引)、米国/中国株、FX、先物(データ/通知)をサポートする統一システム。
- ⚡ Docker & クリーンアーキテクチャ: 4行のコマンドで高速デプロイ。モダンな技術スタック(Vue + Python)、クリーンなアーキテクチャ、関心の分離。
📺 動画デモ
📚 ドキュメント
開発ガイド
通知設定
📸 ビジュアルツアー
✨ 主な機能
1. ビジュアルPython戦略ワークベンチ
PineScriptより強力、SaaSよりスマート。
- Pythonネイティブ: Pythonでインジケーターと戦略を記述。PineScriptのような専用言語ではなく、完全なPythonエコシステム(Pandas, Numpy, TA-Lib)を活用。
- "Mini-TradingView" 体験: 内蔵のKラインチャート上でPythonインジケーターを直接実行。過去データ上で売買シグナルを視覚的にデバッグ。
- AI支援コーディング: 内蔵AIに複雑なロジックを書いてもらいましょう。アイデアからコードまで数秒で完了。
2. 完全な取引ライフサイクル
インジケーターから実行まで、シームレスに。
- インジケーター: 市場のエントリー/エグジットシグナルを定義。
- 戦略設定: リスク管理ルール(ポジションサイジング、ストップロス、利益確定)を追加。
- バックテスト & AI最適化: バックテストを実行し、豊富なパフォーマンス指標を表示し、AIに結果を分析させて改善を提案させます(例:「MACD閾値をXに調整」)。
- 実行モード:
- 実取引:
- 暗号資産: 直接API実行、10以上の取引所(Binance, OKX, Bitget, Bybitなど)をサポート
- 米国/香港株式: Interactive Brokers (IBKR)経由 🆕
- 外国為替: MetaTrader 5 (MT5)経由 🆕
- シグナル通知: 実取引をサポートしていない市場(A株/先物)向けに、Telegram, Discord, Email, SMS, Webhook経由でシグナルを送信。
- 実取引:
3. AI マルチエージェントリサーチ
あなたの24時間365日稼働するAI投資委員会。
システムは、戦略の二次フィルターとして機能するマルチエージェントチームを雇用します:
- リサーチエージェント: ウェブニュースとマクロイベント(Google/Bing)を収集。
- 分析エージェント: テクニカル指標と資金フローを分析。
- 戦略統合: AIの判断を「市場フィルター」として使用可能 —— AIのセンチメントが一致する場合にのみ戦略の取引を許可(例:「AIリスクアナリストがマクロリスクが高いと判断した場合は購入しない」)。
4. ユニバーサルデータエンジン
QuantDingerは複数の市場にわたる統一されたデータインターフェースを提供します:
- 暗号資産: 取引のための直接API接続(10以上の取引所)と、市場データのためのCCXT統合(100以上のソース)
- 株式: Yahoo Finance、Finnhub、Tiingo(米国株)、AkShare(中国/香港株)
- 先物/FX: OANDAおよび主要な先物データソース
- プロキシサポート: 制限されたネットワーク環境のための内蔵プロキシ設定
5. 🧠 記憶拡張エージェント(Memory-Augmented Agents)
QuantDinger のエージェントは毎回「ゼロから」ではありません。バックエンドに ローカル記憶DB + 反省(検証)ループ を内蔵し、過去の経験を検索して system prompt に注入します(RAG 風)。
- これは何か:経験検索によるプロンプト拡張(※モデルの学習/微調整ではありません)
- 保存先:ローカル SQLite(
backend_api_python/data/memory/)
フロー図(リクエスト → 記憶閉ループ)
flowchart TB
%% ===== 🌐 入口層 =====
subgraph Entry["🌐 API エントリー"]
A["📡 POST /api/analysis/multi"]
A2["🔄 POST /api/analysis/reflect"]
end
%% ===== ⚙️ サービス層 =====
subgraph Service["⚙️ サービス編成"]
B[AnalysisService]
C[AgentCoordinator]
D["📊 コンテキスト構築<br/>price · kline · news · indicators"]
end
%% ===== 🤖 マルチエージェントワークフロー =====
subgraph Agents["🤖 マルチエージェントワークフロー"]
subgraph P1["📈 Phase 1 · 多次元分析(並列)"]
E1["🔍 MarketAnalyst<br/><i>テクニカル</i>"]
E2["📑 FundamentalAnalyst<br/><i>ファンダメンタル</i>"]
E3["📰 NewsAnalyst<br/><i>ニュース</i>"]
E4["💭 SentimentAnalyst<br/><i>センチメント</i>"]
E5["⚠️ RiskAnalyst<br/><i>リスク評価</i>"]
end
subgraph P2["🎯 Phase 2 · 強気弱気論争(並列)"]
F1["🐂 BullResearcher<br/><i>強気の論点</i>"]
F2["🐻 BearResearcher<br/><i>弱気の論点</i>"]
end
subgraph P3["💹 Phase 3 · 取引判断"]
G["🎰 TraderAgent<br/><i>総合判定 → BUY / SELL / HOLD</i>"]
end
end
%% ===== 🧠 記憶層 =====
subgraph Memory["🧠 ローカル SQLite 記憶庫(data/memory/)"]
M1[("market_analyst")]
M2[("fundamental")]
M3[("news_analyst")]
M4[("sentiment")]
M5[("risk_analyst")]
M6[("bull_researcher")]
M7[("bear_researcher")]
M8[("trader_agent")]
end
%% ===== 🔄 反省ループ =====
subgraph Reflect["🔄 反省ループ(オプション)"]
R[ReflectionService]
RR[("reflection_records.db")]
W["⏰ ReflectionWorker"]
end
%% ===== メインフロー =====
A --> B --> C --> D
D --> P1 --> P2 --> P3
%% ===== 記憶読み書き =====
E1 <-.-> M1
E2 <-.-> M2
E3 <-.-> M3
E4 <-.-> M4
E5 <-.-> M5
F1 <-.-> M6
F2 <-.-> M7
G <-.-> M8
%% ===== 反省フロー =====
C --> R --> RR
W --> RR
W -.->|"検証 + 学習"| M8
A2 -.->|"手動復習"| M8
検索ランキング(簡略)
[ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns_score ]
学習の入口
- 手動復習(推奨):
POST /api/analysis/reflectで実際の結果(returns/result)を記憶へ - 自動検証(任意):
ENABLE_REFLECTION_WORKER=true、REFLECTION_WORKER_INTERVAL_SECで定期検証→記憶へ反映
主な環境変数(.env)
ENABLE_AGENT_MEMORY,AGENT_MEMORY_TOP_K,AGENT_MEMORY_CANDIDATE_LIMITAGENT_MEMORY_ENABLE_VECTOR,AGENT_MEMORY_EMBEDDING_DIMAGENT_MEMORY_HALF_LIFE_DAYS,AGENT_MEMORY_W_SIM,AGENT_MEMORY_W_RECENCY,AGENT_MEMORY_W_RETURNSENABLE_REFLECTION_WORKER,REFLECTION_WORKER_INTERVAL_SEC
6. 戦略ランタイム
- スレッドベースのエグゼキューター: 戦略実行のための独立したスレッドプール
- 自動復元: システム再起動後に実行中の戦略を再開
- 注文キュー: 注文実行のためのバックグラウンドワーカー
7. マルチLLMプロバイダーサポート
QuantDinger は複数の AI プロバイダーをサポートし、自動検出機能を備えています:
| プロバイダー | 特徴 |
|---|---|
| OpenRouter | マルチモデルゲートウェイ(デフォルト)、100+ モデル |
| OpenAI | GPT-4o, GPT-4o-mini |
| Google Gemini | Gemini 1.5 Flash/Pro |
| DeepSeek | DeepSeek Chat(コスパ良好) |
| xAI Grok | Grok Beta |
.env でお好みのプロバイダーの API キーを設定するだけで、システムが利用可能なプロバイダーを自動検出します。
8. ユーザー管理とセキュリティ
- マルチユーザーサポート:PostgreSQL ベースのユーザーアカウント、ロールベースの権限管理
- OAuth ログイン:Google および GitHub OAuth 統合
- メール認証:メール認証コードによる登録とパスワードリセット
- セキュリティ機能:Cloudflare Turnstile キャプチャ、IP/アカウントレート制限
- デモモード:公開デモ用の読み取り専用モード
9. 技術スタック
- バックエンド: Python (Flask) + PostgreSQL + Redis(オプション)
- フロントエンド: Vue 2 + Ant Design Vue + KlineCharts/ECharts
- デプロイ: Docker Compose
🔌 対応取引所とブローカー
QuantDingerは複数の市場タイプに対して複数の実行方法をサポートしています:
暗号資産取引所(直接API)
| 取引所 | 市場 |
|---|---|
| Binance | 現物, 先物, マージン |
| OKX | 現物, 無期限, オプション |
| Bitget | 現物, 先物, コピートレーディング |
| Bybit | 現物, リニア先物 |
| Coinbase Exchange | 現物 |
| Kraken | 現物, 先物 |
| KuCoin | 現物, 先物 |
| Gate.io | 現物, 先物 |
| Bitfinex | 現物, デリバティブ |
| Deepcoin | 現物, 無期限 |
伝統的なブローカー
| ブローカー | 市場 | プラットフォーム |
|---|---|---|
| Interactive Brokers (IBKR) | 米国株式, 香港株式 | TWS / IB Gateway 🆕 |
| MetaTrader 5 (MT5) | 外国為替 | MT5ターミナル 🆕 |
市場データ(CCXT経由)
Bybit、Gate.io、Kraken、KuCoin、HTX、および100以上のその他の取引所が市場データ用にサポートされています。
多言語サポート
QuantDingerは、包括的な国際化対応により、世界中のユーザー向けに構築されています。
全てのUI要素、エラーメッセージ、ドキュメントは完全に翻訳されています。言語はブラウザの設定に基づいて自動検出されますが、アプリ内で手動で切り替えることも可能です。
対応市場
| 市場タイプ | データソース | 取引 |
|---|---|---|
| 暗号資産 | Binance, OKX, Bitget, + 100 取引所 | ✅ 完全サポート |
| 米国株 | Yahoo Finance, Finnhub, Tiingo | ✅ IBKR経由 🆕 |
| 香港株 | AkShare, East Money | ✅ IBKR経由 🆕 |
| 中国株(A株) | AkShare, East Money | ⚡ データのみ |
| FX | Finnhub, OANDA | ✅ MT5経由 🆕 |
| 先物 | 取引所API, AkShare | ⚡ データのみ |
アーキテクチャ (現在のリポジトリ)
┌─────────────────────────────┐
│ quantdinger_vue │
│ (Vue 2 + Ant Design Vue) │
└──────────────┬──────────────┘
│ HTTP (/api/*)
▼
┌─────────────────────────────┐
│ backend_api_python │
│ (Flask + 戦略ランタイム) │
└──────────────┬──────────────┘
│
├─ SQLite (quantdinger.db)
├─ Redis (オプション キャッシュ)
└─ データプロバイダー / LLMs / 取引所
リポジトリ構造
.
├─ backend_api_python/ # Flask API + AI + バックテスト + 戦略ランタイム
│ ├─ app/
│ ├─ env.example # ローカル設定用に .env にコピー
│ ├─ requirements.txt
│ └─ run.py # エントリーポイント
└─ quantdinger_vue/ # Vue 2 UI (開発サーバーは /api をバックエンドにプロキシ)
クイックスタート
オプション 1: Docker デプロイ (推奨)
QuantDingerを実行する最速の方法です。
1. ワンクリック起動
Linux / macOS
git clone https://github.com/brokermr810/QuantDinger.git && \
cd QuantDinger && \
cp backend_api_python/env.example backend_api_python/.env && \
docker-compose up -d --build
Windows (PowerShell)
git clone https://github.com/brokermr810/QuantDinger.git
cd QuantDinger
Copy-Item backend_api_python\env.example -Destination backend_api_python\.env
docker-compose up -d --build
2. アクセスと設定
- フロントエンド UI: http://localhost:8888
- デフォルトアカウント:
quantdinger/123456
注意: AI機能や本番環境のセキュリティのために、
backend_api_python/.envを編集し(OPENROUTER_API_KEYの追加、パスワードの変更)、docker-compose restart backendでサービスを再起動してください。
3. アプリケーションへのアクセス
- フロントエンド UI: http://localhost
- バックエンド API: http://localhost:5000
Docker コマンドリファレンス
# 実行状態の表示
docker-compose ps
# ログの表示
docker-compose logs -f
# サービスの停止
docker-compose down
# 停止してボリュームを削除 (警告: データベースが削除されます!)
docker-compose down -v
データの永続化
以下のデータはホストにマウントされ、コンテナの再起動後も保持されます:
volumes:
- ./backend_api_python/logs:/app/logs # ログ
- ./backend_api_python/data:/app/data # データディレクトリ(quantdinger.db を含む)
- ./backend_api_python/.env:/app/.env # 設定ファイル
オプション 2: ローカル開発
前提条件
- Python 3.10+ (推奨)
- Node.js 16+ (推奨)
1. バックエンドの起動 (Flask API)
cd backend_api_python
pip install -r requirements.txt
cp env.example .env # Windows: copy env.example .env
python run.py
バックエンドは http://localhost:5000 で利用可能になります。
2. フロントエンドの起動 (Vue UI)
cd quantdinger_vue
npm install
npm run serve
フロントエンド開発サーバーは http://localhost:8000 で実行され、/api/* を http://localhost:5000 にプロキシします。
設定 (.env)
backend_api_python/env.example をテンプレートとして使用してください。一般的な設定:
- 認証:
SECRET_KEY,ADMIN_USER,ADMIN_PASSWORD - サーバー:
PYTHON_API_HOST,PYTHON_API_PORT,PYTHON_API_DEBUG - データベース:
DATABASE_URL(PostgreSQL 接続文字列) - AI / LLM:
LLM_PROVIDER(openrouter/openai/google/deepseek/grok), 各プロバイダー API キー - OAuth:
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GITHUB_CLIENT_ID,GITHUB_CLIENT_SECRET - セキュリティ:
TURNSTILE_SITE_KEY,TURNSTILE_SECRET_KEY,ENABLE_REGISTRATION - ウェブ検索:
SEARCH_PROVIDER,SEARCH_GOOGLE_*,SEARCH_BING_API_KEY - 注文執行:
ORDER_MODE(maker/market),MAKER_WAIT_SEC,MAKER_OFFSET_BPS - プロキシ (オプション):
PROXY_PORTまたはPROXY_URL - バックグラウンドサービス:
ENABLE_PENDING_ORDER_WORKER,ENABLE_PORTFOLIO_MONITOR
🤝 コミュニティとサポート
- 貢献: 貢献ガイド · 貢献者
- Telegram: QuantDingerグループ
- Discord: サーバーに参加
- 📺 動画デモ: プロジェクト紹介
- YouTube: @quantdinger
- Email: brokermr810@gmail.com
- GitHub Issues: バグ報告 / 機能リクエスト
💼 商用ライセンス & スポンサー(Commercial License & Sponsorship)
QuantDinger のコードは Apache License 2.0 で提供されています。ただし Apache 2.0 は商標権を付与しません。QuantDinger の名称/ロゴ/ブランドは商標およびブランドポリシーの対象です(コードライセンスとは別扱い):
- 著作権/帰属表示:LICENSE/NOTICE など、必要な著作権・ライセンス告知は保持してください。
- 商標(名称/ロゴ/ブランド):QuantDinger の名称/ロゴ/ブランドを用いて、出所の誤認や背書きを示唆してはいけません。改変版を再配布する場合、書面許可がない限り QuantDinger ブランド表示の削除/置換が必要になることがあります。
再配布物で QuantDinger のブランド表示を保持/変更したい場合(UI 上のロゴ使用などを含む)、商用ライセンスについてお問い合わせください。
参照:TRADEMARKS.md
商用ライセンスで得られるもの
- 合意に基づく ブランド/表示の商用許諾
- 運用サポート:デプロイ、アップグレード、障害対応、保守ガイダンス
- コンサルティング:アーキテクチャレビュー、性能チューニング、戦略ワークフロー相談
- スポンサー枠:スポンサーとしてロゴ/広告掲載(README/サイト/アプリ内など合意に基づく)
連絡先
- Telegram: QuantDinger Group
- Email: brokermr810@gmail.com
💝 直接サポート(寄付)
あなたのご支援は QuantDinger の維持・改善に役立ちます。
暗号通貨寄付 (ERC-20 / BEP-20 / Polygon / Arbitrum)
0x96fa4962181bea077f8c7240efe46afbe73641a7
🎓 サポートパートナー
量的金融の教育と研究を推進する学術機関や組織からのサポートを光栄に思います。
💡 サポートパートナーになりませんか? 大学、研究機関、組織との協力を歓迎します。brokermr810@gmail.com または Telegram でお問い合わせください。
謝辞
QuantDingerは、Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineChartsなどの素晴らしいオープンソースプロジェクトの上に成り立っています。
すべてのメンテナとコントリビューターに感謝します! ❤️






