0b37aa4a67
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
644 lines
27 KiB
Markdown
644 lines
27 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 네이티브 · 🐍 비주얼 파이썬 · 🌍 글로벌 멀티 마켓 · 🔒 프라이버시 우선</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/수정이 가능하지만, 라이선스/저작권 고지 등 필요한 표기는 유지해야 합니다.
|
||
- **🐍 파이썬 네이티브 & 비주얼**: 표준 파이썬으로 지표를 작성(PineScript보다 쉬움)하고 AI의 지원을 받으세요. 차트에서 신호를 직접 시각화하여 "로컬 버전의 TradingView" 경험을 구축하세요.
|
||
- **🤖 AI 루프 최적화**: 전략을 실행할 뿐만 아니라, AI가 백테스트 결과를 분석하여 매개변수 조정(손절매/이익실현/MACD 설정)을 제안하고 폐루프 최적화를 형성합니다.
|
||
- **🌍 글로벌 마켓 액세스**: 암호화폐(실거래), 미국/중국 주식, 외환 및 선물(데이터/알림)을 지원하는 통합 시스템.
|
||
- **⚡ 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_KO.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. 비주얼 파이썬 전략 워크벤치
|
||
*PineScript보다 강력하고, SaaS보다 똑똑합니다.*
|
||
|
||
- **파이썬 네이티브**: 파이썬으로 지표와 전략을 작성하세요. PineScript와 같은 전용 언어 대신 완전한 파이썬 생태계(Pandas, Numpy, TA-Lib)를 활용하세요.
|
||
- **"Mini-TradingView" 경험**: 내장된 K-라인 차트에서 파이썬 지표를 직접 실행하세요. 과거 데이터에서 매수/매도 신호를 시각적으로 디버깅하세요.
|
||
- **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(중국/홍콩 주식)
|
||
- **선물/외환**: 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. 인디케이터 커뮤니티
|
||
*공유, 발견, 거래.*
|
||
|
||
- **게시 및 공유**: 파이썬 인디케이터를 커뮤니티와 공유
|
||
- **구매 시스템**: 다른 사용자로부터 프리미엄 인디케이터 구매
|
||
- **평점 및 리뷰**: 구매한 인디케이터 평가 및 리뷰
|
||
- **관리자 검토**: 품질 관리를 위한 모더레이션 시스템
|
||
|
||
### 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는 포괄적인 국제화를 통해 글로벌 사용자를 위해 구축되었습니다:
|
||
|
||
<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 | ✅ IBKR 경유 🆕 |
|
||
| **홍콩 주식** | AkShare, East Money | ✅ IBKR 경유 🆕 |
|
||
| **중국 주식(A주)** | AkShare, East Money | ⚡ 데이터만 |
|
||
| **외환** | 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의 이름/로고/브랜딩을 사용해 출처를 오인시키거나 보증(endorsement)을 암시해서는 안 됩니다. 수정 버전을 재배포할 때는 서면 허가가 없는 한 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 등과 같은 훌륭한 오픈 소스 프로젝트의 어깨 위에 서 있습니다.
|
||
|
||
모든 관리자와 기여자에게 감사드립니다! ❤️
|
||
|