# qmt_django **Repository Path**: GPF_Master/qmt_django ## Basic Information - **Project Name**: qmt_django - **Description**: qmt的web展示 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-14 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QMT Django 看板系统 一个基于 Django 的 QMT(量化交易平台)实时看板系统,用于展示账户资产、持仓、订单、交易记录等交易数据。 ## 📋 项目概述 该项目包含两个主要部分: 1. **QMT 数据采集器** (`qmt_collector.py`) - 在 QMT 客户端中运行 - 定时采集行情、账户、持仓等数据 - 通过 HTTP 将数据发送给 Django 后端 2. **Django 看板后端** - 提供 Web 界面 - 实时展示交易数据 - 存储数据到 DuckDB 和 SQLite ## 🚀 快速开始 ### 环境要求 - Python 3.11+ - Django 4.0+ - DuckDB - QMT 客户端(可选,用于实时数据) ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/GPF_Master/qmt_django.git cd qmt_django ``` 2. **创建虚拟环境(可选但推荐)** ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **启动 Django 服务** Windows: ```bash run_django.bat ``` Linux/macOS: ```bash bash qmt_django/run_django.sh ``` 或直接运行: ```bash python manage.py runserver ``` 访问 http://127.0.0.1:8000 查看看板 ## 📁 项目结构 ``` qmt_django/ ├── dashboard/ # Django 应用 │ ├── views.py # 看板视图(账户、持仓、订单等) │ ├── urls.py # 路由配置 │ ├── models.py # 数据模型 │ ├── qmt_client.py # QMT 数据接口 │ └── admin.py # Django 管理后台 ├── qmt_django/ # Django 项目配置 │ ├── settings.py # 项目设置 │ ├── urls.py # 项目路由 │ └── wsgi.py # WSGI 配置 ├── templates/ # HTML 模板 │ └── dashboard/ # 看板模板 │ ├── base.html # 基础模板 │ ├── index.html # 首页 │ ├── account.html # 账户信息 │ ├── backtest.html # 回测结果 │ ├── finance.html # 财务数据 │ ├── monitor.html # 监控面板 │ ├── strategy.html # 策略管理 │ └── ... ├── static/ # 静态文件 │ ├── css/dashboard.css # 样式表 │ └── js/dashboard.js # 脚本 ├── data/ # 数据存储 │ ├── qmt.duckdb # DuckDB 数据库 │ ├── qmt_kline.duckdb # K线数据库 │ ├── qmt_config.json # 配置文件 │ └── db.sqlite3 # SQLite 数据库 ├── qmt_collector.py # QMT 数据采集脚本(运行在 QMT 客户端) ├── manage.py # Django 管理脚本 └── README.md # 本文件 ``` ## 🔌 使用方式 ### 方式一:使用 QMT 实时数据(推荐) 1. **配置数据采集器** - 将 `qmt_collector.py` 复制到 QMT 安装目录的 `python/` 文件夹 - 根据需要修改 `DJANGO_URL` 为实际的 Django 服务地址 2. **在 QMT 中加载脚本** - 打开 QMT 客户端 - 进入 Python策略 - 加载 `qmt_collector.py` - 运行脚本 3. **启动 Django 服务** ```bash python manage.py runserver ``` 4. **访问看板** 浏览器访问 http://127.0.0.1:8000 ### 方式二:手动数据导入 如果 QMT 环境配置困难,可以: 1. 手动将数据导出为 JSON 格式 2. 上传到 Django 后端 3. 系统自动存储到数据库 ## 📊 看板功能 - **账户信息** - 实时账户资产、可用资金 - **持仓管理** - 当前持仓详情、成本、收益 - **订单查询** - 订单历史、状态追踪 - **交易记录** - 成交明细、手续费统计 - **行情数据** - 实时股价、K线图表 - **财务数据** - 基本面数据、财务报表 - **回测结果** - 策略回测收益、风险指标 - **监控面板** - 系统运行状态、数据更新时间 - **策略管理** - 策略配置、参数调整 - **系统配置** - 后台设置、数据导入导出 ## 🛠️ 开发说明 ### 添加新功能 1. **新增视图**(`dashboard/views.py`) 2. **更新路由**(`dashboard/urls.py`) 3. **创建模板**(`templates/dashboard/`) 4. **添加样式**(`static/css/dashboard.css`) ### 数据库 项目使用两个数据库: - **SQLite** (`db.sqlite3`) - Django 默认数据库,用于用户、会话等 - **DuckDB** (`data/qmt.duckdb`) - 时序数据库,用于存储交易数据 ### 环境变量 在 `qmt_django/settings.py` 中配置: ```python DEBUG = True # 开发环境 ALLOWED_HOSTS = ["*"] # 允许所有主机(生产环境应限制) ``` ## ⚙️ 配置说明 ### Django 设置 - **SECRET_KEY** - 安全密钥(生产环境应修改) - **DEBUG** - 调试模式(生产环境应关闭) - **ALLOWED_HOSTS** - 允许的主机列表 ### QMT 连接 在 `dashboard/qmt_client.py` 中配置 QMT 连接参数: ```python # QMT 服务器地址和端口 # 根据实际环境修改 ``` ## 📝 API 端点 ### 数据接收端点 - `POST /api/market_data/` - 接收市场数据 - `POST /api/account_data/` - 接收账户数据 - `POST /api/position_data/` - 接收持仓数据 ### 查询端点 - `GET /dashboard/account/` - 账户信息 - `GET /dashboard/monitor/` - 监控数据 - `GET /api/kline/` - K线数据 - `GET /api/quotes/` - 行情数据 ## 🐛 常见问题 ### QMT 导入失败 如果 `is_qmt_importable()` 返回 False,说明 QMT 环境未配置: 1. 检查 QMT 安装路径 2. 确保 Python 环境版本与 QMT 兼容 3. 可使用手动数据导入方式 ### 数据库连接错误 1. 确保 `data/` 目录存在且有写权限 2. DuckDB 文件损坏时删除 `.duckdb` 文件,系统会自动重建 ### 端口被占用 如果 8000 端口已占用,使用: ```bash python manage.py runserver 8080 ``` ## 📦 依赖清单 主要依赖(更新 `requirements.txt`): ``` Django>=4.0 duckdb>=0.8.0 requests>=2.28.0 ``` ## 📄 许可证 本项目为私有项目,未明确指定许可证。 ## 👤 作者 GPF_Master ## 🔗 相关链接 - [QMT 官网](https://www.qmtrader.net/) - [Django 文档](https://docs.djangoproject.com/) - [DuckDB 文档](https://duckdb.org/docs/) --- **最后更新**: 2026年6月