QuantDinger: 오픈소스 로컬 퀀트 트레이딩 플랫폼
Source: Dev.to
프로젝트 포지셔닝
QuantDinger는 “Local‑First” 오픈소스 AI 정량적 트레이딩 워크벤치를 만들고자 합니다. TradingView와 QuantConnect에 대한 자체 호스팅 대안으로 설계되었으며, 핵심 원칙은 데이터 소유권을 사용자에게 반환하는 것입니다. 비용이 많이 드는 SaaS 플랫폼의 문제점을 해결함으로써 QuantDinger는 다음을 통합하는 자체 호스팅 솔루션을 제공합니다:
- 데이터 수집
- AI 기반 투자 연구
- 전략 백테스팅
- 실시간 트레이딩
핵심 기능 엔티티
다중 소스 데이터 집계
통합 데이터 인터페이스:
- 암호화폐 – CCXT를 통해
- 미국 주식 – YFinance / Finnhub를 통해
- 중국 A주 – AkShare를 통해
모든 소스는 표준화된 OHLCV(시가, 고가, 저가, 종가, 거래량) 형식을 제공합니다.

전략 개발 환경
Monaco Editor 기반의 내장 코드 편집기로 Python 전략 개발을 지원합니다.

시각화 차트
캔들스틱 차트 표시와 기술 지표 분석을 위한 TradingView Lightweight Charts 라이브러리 통합.

LLM 지원 도구
외부 대형 언어 모델(LLM) 서비스(OpenRouter API를 통해)가 코드 스니펫 생성이나 시장 뉴스 해석을 도와줍니다.
참고: 이는 기능 모듈이며 시스템의 핵심 부분은 아닙니다.

실시간 / 시뮬레이션 트레이딩
주문 라우팅 및 자산 관리를 위한 거래소 API 연결을 지원합니다.

기술 선택 및 아키텍처 다이어그램
코드베이스 디렉터리 구조
QuantDinger/
├── backend_api_python/ # Flask backend
│ ├── app/
│ │ ├── routes/ # API endpoints
│ │ ├── services/ # Business logic
│ │ ├── models/ # ORM models
│ │ └── utils/ # Helper utilities
│ ├── quantdinger.db # SQLite DB
│ ├── requirements.txt # Python dependencies
│ └── run.py # Application entry point
├── quantdinger_vue/ # Vue frontend
│ ├── src/
│ └── package.json
└── docker-compose.yml # Docker orchestration
기술 스택 상세
| 레이어 | 기술 스택 |
|---|---|
| 프론트엔드 | Vue.js 3, Vite, TypeScript, Lightweight Charts, Element Plus |
| 백엔드 | Python 3, Flask, SQLAlchemy (ORM), Pydantic (validation) |
| 데이터 어댑테이션 | ccxt (crypto exchanges), akshare (A‑share data), yfinance (US stocks) |
| 퍼시스턴스 | SQLite (file‑based DB – no separate MySQL/PostgreSQL needed) |
데이터베이스 설계
이 프로젝트는 메타데이터를 저장하기 위해 SQLite (quantdinger.db)를 사용하며, 무거운 데이터베이스 유지관리를 피합니다.
테이블
| Table | Purpose | Key Fields |
|---|---|---|
| users | 기본 인증 | id, username, password_hash, api_token |
| api_keys | 거래소 자격 증명 (AES‑암호화) | id, exchange_name, api_key, secret_key, user_id |
| strategies | 사용자 작성 전략 코드 및 설정 | id, name, code_content (Python source), timeframe, symbol, status |
| logs / trade_history | 신호 및 거래 내역 | id, strategy_id, timestamp, action (BUY/SELL), price, amount, message |
핵심 모듈의 상세 구현
4.1 백엔드 인터페이스 레이어 (app/routes)
(추가 구현 세부 사항은 소스 저장소에 계속됩니다.)
QuantDinger – 개요 및 배포 가이드
1. Flask Blueprint (RESTful API)
| 경로 | 메서드 | 설명 |
|---|---|---|
| /api/market | GET | 프론트엔드로부터 time range와 symbol 파라미터를 받아 데이터‑서비스 레이어를 호출하고 JSON 형식의 캔들스틱 차트 배열을 반환합니다. |
| /api/strategy | — | |
POST /save | POST | 파이썬 코드 문자열을 받아 데이터베이스에 저장합니다. |
| … | — | (추가 엔드포인트 생략) |