2025-12-30 16:28:13 +08:00
<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>
<p align="center">
<strong>🤖 AI 네이티브 · 🔒 프라이버시 우선 · 🚀 올인원 퀀트 워크스페이스</strong>
</p>
<p align="center">
<i>차세대 로컬 퀀트 플랫폼: 멀티 마켓 데이터, AI 리서치, 시각적 백테스팅 및 자동 거래.</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://github.com/brokermr810/QuantDinger/issues"><strong>버그 신고</strong></a> ·
<a href="https://github.com/brokermr810/QuantDinger/discussions"><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/worldinbroker"><img src="https://img.shields.io/badge/Telegram-Join%20Chat-26A5E4?style=for-the-badge&logo=telegram" alt="Telegram"></a>
<a href="https://discord.gg/cn6HVE2KC"><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**는 트레이더, 연구원 및 괴짜들을 위해 설계된 **로컬 우선(Local-First)** 퀀트 거래 워크스페이스입니다.
비싼 SaaS 플랫폼과 달리, QuantDinger는 **데이터 소유권**을 귀하에게 돌려드립니다. **LLM 기반 멀티 에이전트 리서치 팀**이 내장되어 있어 웹에서 금융 정보를 자율적으로 수집하고, 로컬 시장 데이터와 결합하여 전문 분석 보고서를 생성하며, 전략 개발, 백테스팅 및 실거래 워크플로우와 원활하게 통합됩니다.
### 핵심 가치
- **🛡️ 프라이버시 우선**: 모든 전략, 거래 로그 및 API 키는 로컬 SQLite 데이터베이스에 저장됩니다.
- **🧠 AI 강화**: 단순한 코드 완성이 아닌, OpenRouter/LLM으로 구동되는 진정한 AI 리서치 애널리스트입니다.
- **⚡ 멀티 마켓**: **암호화폐** , **미국 주식** , **중국/홍콩 주식** , **외환** 및 **선물**을 기본 지원합니다.
- **🔌 즉시 사용 가능**: Docker를 통한 원클릭 배포. 복잡한 환경 설정이 필요 없습니다.
---
2025-12-30 17:03:22 +08:00
## 📚 문서
- [Python 전략 개발 가이드 ](docs/STRATEGY_DEV_GUIDE_KO.md )
2025-12-30 16:28:13 +08:00
## 📸 비주얼 투어
<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>
</table>
---
## ✨ 주요 기능
### 1. 범용 데이터 엔진
더 이상 데이터 API에 대해 걱정하지 마세요. QuantDinger는 강력한 데이터 소스 팩토리 패턴을 갖추고 있습니다:
- **암호화폐**: 거래를 위한 **직접 API 연결** (10개 이상의 거래소)과 시장 데이터를 위한 **CCXT** (100개 이상의 소스) 결합.
- **주식**: Yahoo Finance, Finnhub, Tiingo(미국) 및 AkShare(중국/홍콩) 통합.
- **선물/외환**: OANDA 및 주요 선물 데이터 소스 지원.
- **프록시 지원**: 제한된 네트워크 환경을 위한 내장 프록시 구성.
### 2. AI 멀티 에이전트 리서치
지치지 않는 분석가 팀:
- **코디네이터 에이전트**: 작업을 분해하고 워크플로우를 관리합니다.
- **리서치 에이전트**: 거시 뉴스를 위해 전체 웹(Google/Bing)을 검색합니다.
- **암호화폐/주식 에이전트**: 특정 시장에 대한 기술적 분석 및 자금 흐름 분석을 전문으로 합니다.
- **보고서 생성**: 구조화된 일일/주간 리서치 보고서를 자동으로 생성합니다.
2025-12-30 21:02:38 +08:00
### 2.1 🧠 메모리 증강 에이전트(Memory-Augmented Agents)
QuantDinger의 에이전트는 매번 “처음부터” 시작하지 않습니다. 백엔드에는 **로컬 메모리 DB + 리플렉션(검증) 루프**가 내장되어 있어, 과거 경험을 검색해 system prompt에 주입하는 RAG 스타일의 강화가 동작합니다.
- **무엇인가**: 경험 검색 기반 프롬프트 강화(모델 파인튜닝/학습이 아님)
- **저장 위치**: 로컬 SQLite (`backend_api_python/data/memory/` )
#### 흐름도(요청 → 메모리 폐루프)
```mermaid
2025-12-30 21:14:30 +08:00
flowchart TB
%% ===== 🌐 진입 레이어 =====
subgraph Entry["🌐 API 진입점"]
A["📡 POST /api/analysis/multi"]
A2["🔄 POST /api/analysis/reflect"]
end
2025-12-30 21:02:38 +08:00
2025-12-30 21:14:30 +08:00
%% ===== ⚙️ 서비스 레이어 =====
subgraph Service["⚙️ 서비스 오케스트레이션"]
B[AnalysisService]
C[AgentCoordinator]
D["📊 컨텍스트 구성<br/>price · kline · news · indicators"]
end
2025-12-30 21:02:38 +08:00
2025-12-30 21:14:30 +08:00
%% ===== 🤖 멀티에이전트 워크플로우 =====
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
2025-12-30 21:02:38 +08:00
```
#### 검색 랭킹(간략)
\[
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`
2025-12-30 16:28:13 +08:00
### 3. 강력한 전략 런타임
- **스레드 기반 실행기**: 전략 실행을 위한 독립적인 스레드 풀 관리.
- **자동 복구**: 시스템 재시작 후 실행 중인 전략을 자동으로 재개합니다.
- **지정가 주문 워커**: 안정적인 백그라운드 대기열은 정확한 신호 실행을 보장하고 슬리피지를 방지합니다.
### 4. 최신 기술 스택
- **백엔드**: Python (Flask) + SQLite + Redis (옵션) — 간단하고 강력하며 확장이 용이합니다.
- **프론트엔드**: Vue 2 + Ant Design Vue + KlineCharts/ECharts — 반응형이며 인터랙티브합니다.
- **배포**: Docker Compose 오케스트레이션.
---
## 🏦 지원되는 거래소 및 리베이트
QuantDinger는 저지연 실행을 위해 주요 암호화폐 거래소에 **직접 연결**을 지원하며, 광범위한 시장 데이터 커버리지를 위해 **CCXT**를 사용합니다.
> 💡 **독점 혜택**: 아래 파트너 링크를 통해 계정을 생성하면 **거래 수수료 할인** 및 **독점 보너스**를 받을 수 있습니다. 이는 추가 비용 없이 프로젝트를 지원하는 데 도움이 됩니다!
| 거래소 | 특징 | 가입 보너스 |
|:--------:|:---------|:-------------:|
| <img src="https://img.shields.io/badge/Binance-F0B90B?style=for-the-badge&logo=binance&logoColor=white" height="35"/> | 🥇 **세계 최대** <br/>현물, 선물, 마진 | <a href="https://www.bjwebptyiou.com/join/14449926"><img src="https://img.shields.io/badge/💰_수수료_20%25_절약-00C853?style=for-the-badge" height="35"/></a> |
| <img src="https://img.shields.io/badge/OKX-000000?style=for-the-badge&logo=okx&logoColor=white" height="35"/> | 🚀 **Web3 & 파생상품** <br/>현물, 무기한, 옵션 | <a href="https://www.bmwweb.ac/referral/earn-together/refer2earn-usdc/claim?hl=zh-CN&ref=GRO_28502_9OSOJ"><img src="https://img.shields.io/badge/🎁_미스터리_박스-00C853?style=for-the-badge" height="35"/></a> |
| <img src="https://img.shields.io/badge/Bitget-00C7B1?style=for-the-badge&logoColor=white" height="35"/> | 👥 **소셜 트레이딩** <br/>카피 트레이딩, 선물 | <a href="https://www.bitget.rocks/zh-CN/referral/register?clacCode=91AWLH0U&from=%2Fzh-CN%2Fevents%2Freferral-all-program&source=events&utmSource=PremierInviter"><img src="https://img.shields.io/badge/🔥_보너스_청구-00C853?style=for-the-badge" height="35"/></a> |
<br>
**또한 지원됨 (Direct/CCXT):**
| <img src="https://img.shields.io/badge/Bybit-F7931A?style=for-the-badge&logoColor=white"/> | <img src="https://img.shields.io/badge/Gate.io-17E6A1?style=for-the-badge&logoColor=white"/> | <img src="https://img.shields.io/badge/Kraken-5741D9?style=for-the-badge&logo=kraken&logoColor=white"/> | <img src="https://img.shields.io/badge/KuCoin-24AE8F?style=for-the-badge&logoColor=white"/> | <img src="https://img.shields.io/badge/HTX-1A73E8?style=for-the-badge&logoColor=white"/> |
|:---:|:---:|:---:|:---:|:---:|
---
### 다국어 지원
QuantDinger는 포괄적인 국제화를 통해 글로벌 사용자를 위해 구축되었습니다:
<p>
<img src="https://img.shields.io/badge/🇺🇸_English-Supported-2563EB?style=flat-square" alt="English" />
<img src="https://img.shields.io/badge/🇨🇳_简体中文-Supported-2563EB?style=flat-square" alt="Simplified Chinese" />
<img src="https://img.shields.io/badge/🇹🇼_繁體中文-Supported-2563EB?style=flat-square" alt="Traditional Chinese" />
<img src="https://img.shields.io/badge/🇯🇵_日本語-Supported-2563EB?style=flat-square" alt="Japanese" />
<img src="https://img.shields.io/badge/🇰🇷_한국어-Supported-2563EB?style=flat-square" alt="Korean" />
<img src="https://img.shields.io/badge/🇩🇪_Deutsch-Supported-2563EB?style=flat-square" alt="German" />
<img src="https://img.shields.io/badge/🇫🇷_Français-Supported-2563EB?style=flat-square" alt="French" />
<img src="https://img.shields.io/badge/🇹🇭_ไทย-Supported-2563EB?style=flat-square" alt="Thai" />
<img src="https://img.shields.io/badge/🇻🇳_Tiếng_Việt-Supported-2563EB?style=flat-square" alt="Vietnamese" />
<img src="https://img.shields.io/badge/🇸🇦_العربية-Supported-2563EB?style=flat-square" alt="Arabic" />
</p>
모든 UI 요소, 오류 메시지 및 문서는 완벽하게 번역되어 있습니다. 언어는 브라우저 설정에 따라 자동으로 감지되거나 앱에서 수동으로 전환할 수 있습니다.
---
### 지원되는 시장
| 시장 유형 | 데이터 소스 | 거래 |
|-------------|--------------|---------|
| **암호화폐** | Binance, OKX, Bitget, + 100 거래소 | ✅ 완전 지원 |
| **미국 주식** | Yahoo Finance, Finnhub, Tiingo | ✅ 브로커 API 경유 |
| **중국/홍콩 주식** | AkShare, East Money | ⚡ 데이터만 |
| **외환** | Finnhub, OANDA | ✅ 브로커 API 경유 |
| **선물** | 거래소 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를 실행하는 가장 빠른 방법입니다.
2025-12-30 17:38:47 +08:00
#### 1. 원클릭 시작
2025-12-30 16:28:13 +08:00
2025-12-30 17:38:47 +08:00
**Linux / macOS**
2025-12-30 16:28:13 +08:00
```bash
2025-12-30 17:38:47 +08:00
git clone https://github.com/brokermr810/QuantDinger.git && \
cd QuantDinger && \
cp docker.env.example backend_api_python/.env && \
2025-12-30 16:28:13 +08:00
docker-compose up -d --build
```
2025-12-30 17:38:47 +08:00
**Windows (PowerShell)**
```powershell
git clone https : // github . com / brokermr810 / QuantDinger . git
cd QuantDinger
2025-12-30 18:36:07 +08:00
Copy-Item docker . env . example -Destination backend_api_python \. env
2025-12-30 17:38:47 +08:00
docker-compose up -d - -build
```
#### 2. 접속 및 구성
2025-12-30 18:02:32 +08:00
- **프론트엔드 UI**: http://localhost:8888
2025-12-30 17:38:47 +08:00
- **기본 계정**: `quantdinger` / `123456`
> **참고**: AI 기능이나 프로덕션 환경의 보안을 위해, `backend_api_python/.env`를 편집하여( `OPENROUTER_API_KEY` 추가, 비밀번호 변경) `docker-compose restart backend`로 서비스를 재시작하십시오.
2025-12-30 16:28:13 +08:00
#### 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 # 로그
2025-12-30 21:02:38 +08:00
- ./backend_api_python/data:/app/data # 데이터 디렉토리(quantdinger.db 포함)
2025-12-30 16:28:13 +08:00
- ./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`
- **AI / LLM**: `OPENROUTER_API_KEY` , `OPENROUTER_MODEL`
- **웹 검색**: `SEARCH_PROVIDER` , `SEARCH_GOOGLE_*` , `SEARCH_BING_API_KEY`
- **프록시 (옵션)**: `PROXY_PORT` 또는 `PROXY_URL`
---
## 🤝 커뮤니티 및 지원
전략 공유 및 기술 지원을 위해 글로벌 커뮤니티에 참여하십시오:
- **Telegram (공식)**: [t.me/worldinbroker ](https://t.me/worldinbroker )
- **Discord**: [서버 참여 ](https://discord.gg/cn6HVE2KC )
- **YouTube**: [@quantdinger ](https://youtube.com/@quantdinger )
- **Email**: [brokermr810@gmail.com ](mailto:brokermr810@gmail.com )
- **GitHub Issues**: [버그 신고 / 기능 요청 ](https://github.com/brokermr810/QuantDinger/issues )
---
## ☕ 프로젝트 후원
QuantDinger가 수익을 내는 데 도움이 되었다면 개발자에게 커피 한 잔을 사주시는 것을 고려해 보십시오. 귀하의 후원은 프로젝트를 살아있게 합니다!
**ERC-20 / BEP-20 / Polygon / Arbitrum**
```
0x96fa4962181bea077f8c7240efe46afbe73641a7
```
<img src="https://img.shields.io/badge/USDT-Accepted-26A17B?style=flat-square&logo=tether" alt="USDT">
<img src="https://img.shields.io/badge/ETH-Accepted-3C3C3D?style=flat-square&logo=ethereum" alt="ETH">
---
### 상용 서비스
QuantDinger를 최대한 활용할 수 있도록 전문 서비스를 제공합니다:
| 서비스 | 설명 |
|---------|-------------|
| **배포 및 설정** | 서버 배포, 구성 및 최적화에 대한 일대일 지원 |
| **맞춤형 전략 개발** | 귀하의 특정 요구와 시장에 맞춘 거래 전략 설계 |
| **엔터프라이즈 업그레이드** | 상용 라이선스, 우선 지원 및 비즈니스를 위한 고급 기능 |
| **교육 및 컨설팅** | 거래 팀을 위한 실전 교육 세션 및 전략 컨설팅 |
**관심이 있으십니까?** 다음을 통해 문의하십시오:
- 📧 Email: [brokermr810@gmail.com ](mailto:brokermr810@gmail.com )
- 💬 Telegram: [@worldinbroker ](https://t.me/worldinbroker )
---
### 감사의 말
QuantDinger는 Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineCharts 등과 같은 훌륭한 오픈 소스 프로젝트의 어깨 위에 서 있습니다.
모든 관리자와 기여자에게 감사드립니다! ❤️