0b37aa4a67
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
631 lines
28 KiB
Markdown
631 lines
28 KiB
Markdown
<div align="center">
|
||
<a href="README.md">🇺🇸 English</a> |
|
||
<a href="README_CN.md">🇨🇳 简体中文</a> |
|
||
<a href="README_TW.md">🇹🇼 繁體中文</a> |
|
||
<a href="README_JA.md">🇯🇵 日本語</a> |
|
||
<a href="README_KO.md">🇰🇷 한국어</a>
|
||
</div>
|
||
<br/>
|
||
|
||
<div align="center">
|
||
<a href="https://github.com/brokermr810/QuantDinger">
|
||
<img src="https://ai.quantdinger.com/img/logo.e0f510a8.png" alt="QuantDinger Logo" width="160" height="160">
|
||
</a>
|
||
|
||
<h1 align="center">QuantDinger</h1>
|
||
|
||
<h3 align="center">
|
||
次世代 AI 定量的取引プラットフォーム
|
||
</h3>
|
||
|
||
<p align="center">
|
||
<strong>🤖 AIネイティブ · 🐍 ビジュアルPython · 🌍 グローバルマルチマーケット · 🔒 プライバシーファースト</strong>
|
||
</p>
|
||
<p align="center">
|
||
<i>AIコパイロットを搭載した構築、バックテスト、取引プラットフォーム。PineScriptより強力、SaaSよりスマート。</i>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://www.quantdinger.com"><strong>公式コミュニティ</strong></a> ·
|
||
<a href="https://ai.quantdinger.com"><strong>ライブデモ</strong></a> ·
|
||
<a href="https://youtu.be/HPTVpqL7knM"><strong>📺 動画デモ</strong></a> ·
|
||
<a href="CONTRIBUTORS.md"><strong>🌟 参加する</strong></a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=apache" alt="License"></a>
|
||
<img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python">
|
||
<img src="https://img.shields.io/badge/Vue.js-2.x-4FC08D?style=flat-square&logo=vue.js&logoColor=white" alt="Vue">
|
||
<img src="https://img.shields.io/badge/Docker-Ready-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker">
|
||
<img src="https://img.shields.io/github/stars/brokermr810/QuantDinger?style=flat-square&logo=github" alt="Stars">
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://t.me/quantdinger"><img src="https://img.shields.io/badge/Telegram-QuantDinger%20Group-26A5E4?style=for-the-badge&logo=telegram" alt="Telegram Group"></a>
|
||
<a href="https://discord.gg/vwJ8zxFh9Q"><img src="https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=for-the-badge&logo=discord" alt="Discord"></a>
|
||
<a href="https://x.com/HenryCryption"><img src="https://img.shields.io/badge/X-Follow%20Us-000000?style=for-the-badge&logo=x" alt="X"></a>
|
||
</p>
|
||
</div>
|
||
|
||
---
|
||
|
||
## 📖 はじめに
|
||
|
||
### 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)、クリーンなアーキテクチャ、関心の分離。
|
||
|
||
---
|
||
|
||
## 📺 動画デモ
|
||
|
||
<div align="center">
|
||
<a href="https://youtu.be/HPTVpqL7knM">
|
||
<img src="docs/screenshots/video_demo.png" alt="QuantDinger プロジェクト紹介動画" width="100%" style="border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); max-width: 800px;">
|
||
</a>
|
||
<p><strong>上の動画をクリックしてQuantDingerプロジェクト紹介をご覧ください</strong></p>
|
||
</div>
|
||
|
||
---
|
||
|
||
## 📚 ドキュメント
|
||
|
||
### 開発ガイド
|
||
- [Python 戦略開発ガイド](docs/STRATEGY_DEV_GUIDE_JA.md)
|
||
- [Interactive Brokers (IBKR) トレーディングガイド](docs/IBKR_TRADING_GUIDE_EN.md) 🆕
|
||
- [MetaTrader 5 (MT5) トレーディングガイド](docs/MT5_TRADING_GUIDE_EN.md) 🆕
|
||
|
||
### 通知設定
|
||
- [Telegram 通知設定](docs/NOTIFICATION_TELEGRAM_CONFIG_EN.md)
|
||
- [メール (SMTP) 通知設定](docs/NOTIFICATION_EMAIL_CONFIG_EN.md)
|
||
- [SMS (Twilio) 通知設定](docs/NOTIFICATION_SMS_CONFIG_EN.md)
|
||
|
||
## 📸 ビジュアルツアー
|
||
|
||
<div align="center">
|
||
<h3>🗺️ システムアーキテクチャ概要</h3>
|
||
<p>QuantDinger の AI 駆動型リサーチ、バックテスト、自動取引機能の全体像。</p>
|
||
<img src="docs/screenshots/tuopu.png" alt="QuantDinger システムトポロジー" width="100%" style="border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); max-width: 800px;">
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<div align="center">
|
||
<h3>📊 プロフェッショナル・クオンツダッシュボード</h3>
|
||
<p>市場の動向、資産、戦略ステータスをリアルタイムで監視。</p>
|
||
<img src="docs/screenshots/dashboard.png" alt="QuantDinger Dashboard" width="100%" style="border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);">
|
||
</div>
|
||
|
||
<br/>
|
||
|
||
<table align="center" width="100%">
|
||
<tr>
|
||
<td width="50%" align="center" valign="top">
|
||
<h3>🤖 AI ディープリサーチ</h3>
|
||
<p>市場センチメントとテクニカル分析のためのマルチエージェント・コラボレーション。</p>
|
||
<img src="docs/screenshots/ai_analysis1.png" alt="AI Market Analysis" style="border-radius: 6px;">
|
||
</td>
|
||
<td width="50%" align="center" valign="top">
|
||
<h3>💬 スマートトレーディングアシスタント</h3>
|
||
<p>即座に市場の洞察を得るための自然言語インターフェース。</p>
|
||
<img src="docs/screenshots/trading_assistant.png" alt="Trading Assistant" style="border-radius: 6px;">
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%" align="center" valign="top">
|
||
<h3>📈 インタラクティブなインジケーター分析</h3>
|
||
<p>ドラッグ&ドロップ分析を備えた豊富なテクニカルインジケーターライブラリ。</p>
|
||
<img src="docs/screenshots/indicator_analysis.png" alt="Indicator Analysis" style="border-radius: 6px;">
|
||
</td>
|
||
<td width="50%" align="center" valign="top">
|
||
<h3>🐍 Python 戦略生成</h3>
|
||
<p>AI支援による戦略コーディングが可能な内蔵エディタ。</p>
|
||
<img src="docs/screenshots/indicator_creat_python_code.png" alt="Code Generation" style="border-radius: 6px;">
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2" align="center" valign="top">
|
||
<h3>📊 ポートフォリオモニター</h3>
|
||
<p>ポジション追跡、アラート設定、メール/Telegram経由でAI分析レポートを受信。</p>
|
||
<img src="docs/screenshots/portfolio.jpg" alt="Portfolio Monitor" style="border-radius: 6px; max-width: 90%;">
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
---
|
||
|
||
## ✨ 主な機能
|
||
|
||
### 1. ビジュアルPython戦略ワークベンチ
|
||
*PineScriptより強力、SaaSよりスマート。*
|
||
|
||
- **Pythonネイティブ**: Pythonでインジケーターと戦略を記述。PineScriptのような専用言語ではなく、完全なPythonエコシステム(Pandas, Numpy, TA-Lib)を活用。
|
||
- **"Mini-TradingView" 体験**: 内蔵のKラインチャート上でPythonインジケーターを直接実行。過去データ上で売買シグナルを視覚的にデバッグ。
|
||
- **AI支援コーディング**: 内蔵AIに複雑なロジックを書いてもらいましょう。アイデアからコードまで数秒で完了。
|
||
|
||
### 2. 完全な取引ライフサイクル
|
||
*インジケーターから実行まで、シームレスに。*
|
||
|
||
1. **インジケーター**: 市場のエントリー/エグジットシグナルを定義。
|
||
2. **戦略設定**: リスク管理ルール(ポジションサイジング、ストップロス、利益確定)を追加。
|
||
3. **バックテスト & AI最適化**: バックテストを実行し、豊富なパフォーマンス指標を表示し、**AIに結果を分析させて改善を提案**させます(例:「MACD閾値をXに調整」)。
|
||
4. **実行モード**:
|
||
- **実取引**:
|
||
- **暗号資産**: 直接API実行、10以上の取引所(Binance, OKX, Bitget, Bybitなど)をサポート
|
||
- **米国/香港株式**: Interactive Brokers (IBKR)経由 🆕
|
||
- **外国為替**: MetaTrader 5 (MT5)経由 🆕
|
||
- **シグナル通知**: 実取引をサポートしていない市場(A株/先物)向けに、Telegram, Discord, Email, SMS, Webhook経由でシグナルを送信。
|
||
|
||
### 3. AI分析システム
|
||
*高速・正確・プロフェッショナルなレポート。*
|
||
|
||
QuantDingerは効率的なAI分析システムを搭載:
|
||
|
||
- **高速分析モード**: 単一LLM呼び出しアーキテクチャによる迅速で正確な分析(複雑なマルチエージェントシステムに代わる)
|
||
- **グローバル市場統合**: リアルタイム市場データ、ヒートマップ、経済カレンダーを分析ページに統合
|
||
- **ATRベースの取引レベル**: テクニカル分析(ATR、サポート/レジスタンス)に基づくストップロス・利確の推奨
|
||
- **分析メモリ**: 履歴確認と継続学習のための分析結果の保存
|
||
- **戦略統合**: 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/`)
|
||
|
||
#### フロー図(リクエスト → 記憶閉ループ)
|
||
|
||
```mermaid
|
||
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_LIMIT`
|
||
- `AGENT_MEMORY_ENABLE_VECTOR`, `AGENT_MEMORY_EMBEDDING_DIM`
|
||
- `AGENT_MEMORY_HALF_LIFE_DAYS`, `AGENT_MEMORY_W_SIM`, `AGENT_MEMORY_W_RECENCY`, `AGENT_MEMORY_W_RETURNS`
|
||
- `ENABLE_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. インジケーターコミュニティ
|
||
*共有、発見、取引。*
|
||
|
||
- **公開と共有**: Pythonインジケーターをコミュニティと共有
|
||
- **購入システム**: 他のユーザーからプレミアムインジケーターを購入
|
||
- **評価とレビュー**: 購入したインジケーターを評価・レビュー
|
||
- **管理者レビュー**: 品質管理のためのモデレーションシステム
|
||
|
||
### 9. ユーザー管理とセキュリティ
|
||
|
||
- **マルチユーザーサポート**:PostgreSQL ベースのユーザーアカウント、ロールベースの権限管理
|
||
- **OAuth ログイン**:Google および GitHub OAuth 統合
|
||
- **メール認証**:メール認証コードによる登録とパスワードリセット
|
||
- **セキュリティ機能**:Cloudflare Turnstile キャプチャ、IP/アカウントレート制限
|
||
- **デモモード**:公開デモ用の読み取り専用モード
|
||
|
||
### 10. 技術スタック
|
||
|
||
- **バックエンド**: Python (Flask) + PostgreSQL + Redis(オプション)
|
||
- **フロントエンド**: Vue 2 + Ant Design Vue + KlineCharts/ECharts
|
||
- **デプロイ**: Docker Compose
|
||
- **現在のバージョン**: V2.1.1 ([更新履歴](docs/CHANGELOG.md))
|
||
|
||
---
|
||
|
||
## 🔌 対応取引所とブローカー
|
||
|
||
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 | ⚡ データのみ |
|
||
|
||
---
|
||
|
||
### アーキテクチャ (現在のリポジトリ)
|
||
|
||
```text
|
||
┌─────────────────────────────┐
|
||
│ quantdinger_vue │
|
||
│ (Vue 2 + Ant Design Vue) │
|
||
└──────────────┬──────────────┘
|
||
│ HTTP (/api/*)
|
||
▼
|
||
┌─────────────────────────────┐
|
||
│ backend_api_python │
|
||
│ (Flask + 戦略ランタイム) │
|
||
└──────────────┬──────────────┘
|
||
│
|
||
├─ SQLite (quantdinger.db)
|
||
├─ Redis (オプション キャッシュ)
|
||
└─ データプロバイダー / LLMs / 取引所
|
||
```
|
||
|
||
---
|
||
|
||
### リポジトリ構造
|
||
|
||
```text
|
||
.
|
||
├─ 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**
|
||
```bash
|
||
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)**
|
||
```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 コマンドリファレンス
|
||
|
||
```bash
|
||
# 実行状態の表示
|
||
docker-compose ps
|
||
|
||
# ログの表示
|
||
docker-compose logs -f
|
||
|
||
# サービスの停止
|
||
docker-compose down
|
||
|
||
# 停止してボリュームを削除 (警告: データベースが削除されます!)
|
||
docker-compose down -v
|
||
```
|
||
|
||
#### データの永続化
|
||
|
||
以下のデータはホストにマウントされ、コンテナの再起動後も保持されます:
|
||
|
||
```yaml
|
||
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)
|
||
|
||
```bash
|
||
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)
|
||
|
||
```bash
|
||
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`
|
||
|
||
---
|
||
|
||
## 🤝 コミュニティとサポート
|
||
|
||
- **貢献**: [貢献ガイド](CONTRIBUTING.md) · [貢献者](CONTRIBUTORS.md)
|
||
- **Telegram**: [QuantDingerグループ](https://t.me/quantdinger)
|
||
- **Discord**: [サーバーに参加](https://discord.gg/vwJ8zxFh9Q)
|
||
- **📺 動画デモ**: [プロジェクト紹介](https://youtu.be/HPTVpqL7knM)
|
||
- **YouTube**: [@quantdinger](https://youtube.com/@quantdinger)
|
||
- **Email**: [brokermr810@gmail.com](mailto:brokermr810@gmail.com)
|
||
- **GitHub Issues**: [バグ報告 / 機能リクエスト](https://github.com/brokermr810/QuantDinger/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](https://t.me/worldinbroker)
|
||
- **Email**: [brokermr810@gmail.com](mailto:brokermr810@gmail.com)
|
||
|
||
---
|
||
|
||
### 💝 直接サポート(寄付)
|
||
|
||
あなたのご支援は QuantDinger の維持・改善に役立ちます。
|
||
|
||
**暗号通貨寄付 (ERC-20 / BEP-20 / Polygon / Arbitrum)**
|
||
|
||
```
|
||
0x96fa4962181bea077f8c7240efe46afbe73641a7
|
||
```
|
||
|
||
<p>
|
||
<img src="https://img.shields.io/badge/USDT-Accepted-26A17B?style=for-the-badge&logo=tether&logoColor=white" alt="USDT">
|
||
<img src="https://img.shields.io/badge/ETH-Accepted-3C3C3D?style=for-the-badge&logo=ethereum&logoColor=white" alt="ETH">
|
||
</p>
|
||
|
||
---
|
||
|
||
### 🎓 サポートパートナー
|
||
|
||
量的金融の教育と研究を推進する学術機関や組織からのサポートを光栄に思います。
|
||
|
||
<div align="center">
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="50%">
|
||
<a href="https://beinvolved.indiana.edu/organization/quantfiniu" target="_blank">
|
||
<img src="docs/screenshots/qfs_logo.png" alt="インディアナ大学量的金融学会" width="280" style="border-radius: 8px;">
|
||
</a>
|
||
<br/><br/>
|
||
<strong>量的金融学会 (QFS)</strong><br/>
|
||
<small>インディアナ大学ブルーミントン校</small><br/>
|
||
<small>次世代の量的金融専門家を育成</small>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
> 💡 **サポートパートナーになりませんか?** 大学、研究機関、組織との協力を歓迎します。[brokermr810@gmail.com](mailto:brokermr810@gmail.com) または [Telegram](https://t.me/worldinbroker) でお問い合わせください。
|
||
|
||
---
|
||
|
||
### 謝辞
|
||
|
||
QuantDingerは、Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineChartsなどの素晴らしいオープンソースプロジェクトの上に成り立っています。
|
||
|
||
すべてのメンテナとコントリビューターに感謝します! ❤️
|
||
|