optz
This commit is contained in:
99
README.md
99
README.md
@@ -1,66 +1,69 @@
|
||||
# collector
|
||||
# QMT数据采集器
|
||||
|
||||
qmt client collector
|
||||
## 项目简介
|
||||
|
||||
QMT数据采集器是一个专门用于从QMT量化交易平台采集实时交易数据的Go语言应用程序。该采集器能够定时获取账户资产、订单状态、持仓信息和市场行情数据,并将这些数据存储到PostgreSQL数据库中,为量化交易策略提供数据支持。
|
||||
|
||||
## 功能说明
|
||||
## 业务功能
|
||||
|
||||
这是一个采集QMT交易客户端状态数据并存储到PostgreSQL数据库的服务。
|
||||
### 1. 实时数据采集
|
||||
- **账户资产监控**:实时采集账户现金、冻结资金、市值、盈亏和总资产等关键财务指标
|
||||
- **订单状态跟踪**:持续监控股票订单的状态变化,包括已成交、未成交、部分成交等各种状态
|
||||
- **持仓信息管理**:记录每只股票的持仓数量、可用数量、成本价、当前价及盈亏情况
|
||||
- **行情数据捕获**:收集股票的实时Tick数据,包括买卖五档价格、成交量、成交额等市场深度信息
|
||||
|
||||
### 主要功能
|
||||
- 使用 `github.com/robfig/cron/v3` 定时调度,每5秒(可配置)从 http://localhost:5000/status 获取JSON数据
|
||||
- 计算数据SHA256哈希值,检测数据变化
|
||||
- 仅在数据变化时使用 `GORM` ORM存储到PostgreSQL数据库
|
||||
- 完整的日志记录和错误处理
|
||||
- 自动数据库表结构迁移
|
||||
### 2. 智能变化检测
|
||||
- 采用SHA256哈希算法对采集的数据进行指纹计算
|
||||
- 只有当数据发生变化时才执行数据库写入操作,避免重复数据存储
|
||||
- 有效减少数据库负载,提高系统运行效率
|
||||
|
||||
### 数据样本
|
||||
数据样本位于 `/exmple/status.json`
|
||||
### 3. 定时任务调度
|
||||
- 基于Cron表达式实现灵活的定时采集策略
|
||||
- 可配置的采集间隔(默认5秒),适应不同的业务需求
|
||||
- 稳定的后台运行机制,支持长时间连续工作
|
||||
|
||||
### 入口文件
|
||||
程序入口在 `cmd/main.go`
|
||||
### 4. 数据持久化存储
|
||||
- 使用PostgreSQL作为数据存储后端,确保数据可靠性和一致性
|
||||
- 支持数据 Upsert 操作(存在则更新,不存在则插入)
|
||||
- 按日期分区管理数据,便于历史数据查询和分析
|
||||
|
||||
## 快速开始
|
||||
### 5. 运行状态监控
|
||||
- 完整的采集日志记录,包括成功/失败状态和数据变化情况
|
||||
- 详细的错误信息记录,便于问题排查和系统维护
|
||||
|
||||
### 1. 初始化数据库
|
||||
## 技术特性
|
||||
|
||||
执行SQL脚本创建数据表:
|
||||
```bash
|
||||
psql -U your_user -d your_database -f scripts/schema.sql
|
||||
```
|
||||
- **高性能**:采用Go语言开发,具有出色的并发处理能力
|
||||
- **低延迟**:优化的HTTP客户端配置,确保快速响应数据请求
|
||||
- **高可靠性**:完善的错误处理机制和事务保证
|
||||
- **易扩展**:模块化设计,便于功能扩展和维护
|
||||
- **资源友好**:智能的变化检测机制,减少不必要的数据库操作
|
||||
|
||||
### 2. 配置环境变量
|
||||
## 应用场景
|
||||
|
||||
复制 `.env.example` 为 `.env` 并修改配置:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
- 量化交易策略的数据支撑
|
||||
- 投资组合实时监控
|
||||
- 交易行为分析与回溯
|
||||
- 风险管理数据基础
|
||||
- 自动化交易系统的数据输入
|
||||
|
||||
编辑 `.env`:
|
||||
```env
|
||||
COLLECTOR_URL=http://localhost:5000/status
|
||||
DATABASE_URL=postgres://user:password@localhost:5432/qmt_db?sslmode=disable
|
||||
COLLECTION_INTERVAL=5
|
||||
```
|
||||
## 系统要求
|
||||
|
||||
### 3. 运行程序
|
||||
- Go 1.26.1 或更高版本
|
||||
- PostgreSQL 数据库
|
||||
- 网络连接(访问QMT平台API)
|
||||
|
||||
Windows:
|
||||
```bash
|
||||
start.bat
|
||||
```
|
||||
## 部署说明
|
||||
|
||||
Linux/Mac:
|
||||
```bash
|
||||
chmod +x start.sh
|
||||
./start.sh
|
||||
```
|
||||
1. 克隆代码库
|
||||
2. 配置环境变量:
|
||||
- `COLLECTOR_URL`: QMT数据接口地址
|
||||
- `DATABASE_URL`: PostgreSQL连接字符串
|
||||
- `COLLECTION_INTERVAL`: 采集间隔(秒)
|
||||
3. 编译并运行程序
|
||||
|
||||
或直接运行:
|
||||
```bash
|
||||
go run cmd/main.go
|
||||
```
|
||||
## 注意事项
|
||||
|
||||
## 详细说明
|
||||
|
||||
详细文档请查看 [README_NEW.md](README_NEW.md)
|
||||
- 确保QMT平台服务正常运行并可访问
|
||||
- 数据库需要具备相应的读写权限
|
||||
- 建议在生产环境中配置合适的日志级别和监控告警
|
||||
Reference in New Issue
Block a user