# QNT_OKX
**Repository Path**: Andy688/qnt_-okx
## Basic Information
- **Project Name**: QNT_OKX
- **Description**: 这是一个基于OKX交易所的智能合约量化交易系统,集成多种经典交易策略,支持模拟盘和实盘交易,预留LLM Agent接口实现智能化自动交易。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-10-30
- **Last Updated**: 2025-11-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 合约量化交易系统
## 项目简介
这是一个基于OKX交易所的智能合约量化交易系统,集成多种经典交易策略,支持模拟盘和实盘交易,预留LLM Agent接口实现智能化自动交易。
## 项目前景:智能Agent量化交易系统
### 系统愿景
构建一个具有"感知-记忆-思考-决策-执行"完整闭环的智能量化交易系统,通过实时数据感知、历史数据学习、智能策略选择和风险管理,实现自适应的量化交易。
### Agent工作流程
```
┌─────────────────────────────────────────────────────────────────┐
│ 智能Agent量化交易系统 │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第一阶段:感知与数据采集(Perception & Data Collection) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ WebSocket实时流 │ │ REST API历史数据 │ │
│ │ =============== │ │ =============== │ │
│ │ • 标记价格 │ │ • 历史K线数据 │ │
│ │ • 资金费率 │ │ • 资金费率历史 │ │
│ │ • 持仓总量 │ │ • 持仓量历史 │ │
│ │ • 爆仓单信息 │ │ • 交易历史 │ │
│ │ • 指数行情 │ │ • 经济日历 │ │
│ │ • 限价变化 │ │ • 市场指标 │ │
│ └──────────────────┘ └──────────────────┘ │
│ │ │ │
│ └────────────────┬───────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 数据预处理与清洗 │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第二阶段:存储与记忆(Storage & Memory) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 时序数据库 │ │
│ │ ================================================ │ │
│ │ • 实时行情数据(分钟级/秒级) │ │
│ │ • 技术指标计算结果 │ │
│ │ • 市场情绪指标 │ │
│ │ • 资金流向数据 │ │
│ │ • 持仓分布数据 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 关系型数据库 │ │
│ │ ================================================ │ │
│ │ • 交易记录(订单、成交、盈亏) │ │
│ │ • 策略执行日志 │ │
│ │ • 风险事件记录 │ │
│ │ • 回测结果存档 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第三阶段:分析与学习(Analysis & Learning) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 回测引擎(Backtesting Engine) │ │
│ │ ================================================ │ │
│ │ • 使用历史数据验证策略有效性 │ │
│ │ • 计算策略收益率、夏普比率、最大回撤 │ │
│ │ • 分析策略在不同市场环境下的表现 │ │
│ │ • 优化策略参数 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 市场状态识别(Market Regime Detection) │ │
│ │ ================================================ │ │
│ │ • 趋势市场(强上涨/强下跌) │ │
│ │ • 震荡市场(横盘整理) │ │
│ │ • 高波动市场(剧烈波动) │ │
│ │ • 低波动市场(平稳运行) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 未来走势预测(Trend Forecasting) │ │
│ │ ================================================ │ │
│ │ • 基于历史模式识别 │ │
│ │ • 技术指标组合分析 │ │
│ │ • 市场情绪量化评估 │ │
│ │ • 资金流向趋势判断 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第四阶段:智能决策(Intelligent Decision) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 策略选择器(Strategy Selector) │ │
│ │ ================================================ │ │
│ │ 根据市场状态和预测结果,智能选择最优策略: │ │
│ │ │ │
│ │ • 强趋势市场 → 趋势跟踪策略(MA Cross, MACD) │ │
│ │ • 震荡市场 → 网格交易策略(Grid Trading) │ │
│ │ • 高波动市场 → 动量策略(RSI, KDJ) │ │
│ │ • 低波动市场 → 做市策略(Market Making) │ │
│ │ • 费率异常 → 套利策略(Funding Rate Arbitrage) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 参数优化器(Parameter Optimizer) │ │
│ │ ================================================ │ │
│ │ • 根据当前市场特征动态调整策略参数 │ │
│ │ • 优化仓位大小 │ │
│ │ • 调整止损止盈位置 │ │
│ │ • 适配杠杆倍数 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第五阶段:风险管理(Risk Management) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 多层风险控制体系 │ │
│ │ ================================================ │ │
│ │ • 仓位控制:单笔≤2%,总仓位≤80% │ │
│ │ • 止损机制:固定止损、追踪止损、时间止损 │ │
│ │ • 杠杆限制:根据波动率动态调整杠杆 │ │
│ │ • 熔断机制:日亏损≥5%暂停交易 │ │
│ │ • 连损保护:连续亏损3次降低仓位 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 第六阶段:执行与反馈(Execution & Feedback) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 订单执行(Order Execution) │ │
│ │ ================================================ │ │
│ │ • 使用REST API下单 │ │
│ │ • 智能拆单(大单拆分) │ │
│ │ • 滑点控制 │ │
│ │ • 订单状态监控 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 持仓管理(Position Management) │ │
│ │ ================================================ │ │
│ │ • 实时监控持仓盈亏 │ │
│ │ • 动态调整止损止盈 │ │
│ │ • 自动平仓管理 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 绩效评估(Performance Evaluation) │ │
│ │ ================================================ │ │
│ │ • 记录交易结果 │ │
│ │ • 分析策略表现 │ │
│ │ • 反馈优化建议 │ │
│ │ • 更新策略评分 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
│ 循环反馈
▼
┌──────────────────┐
│ 持续优化与进化 │
└──────────────────┘
```
### 核心优势
#### 1. 双通道数据感知
- **WebSocket实时流** = 眼睛(实时观察市场)
- 毫秒级价格更新
- 即时市场情绪感知
- 快速响应市场变化
- **REST API历史数据** = 手脚(获取数据、执行交易)
- 完整历史数据回溯
- 深度市场分析
- 精确交易执行
#### 2. 数据驱动决策
- **时序数据库**:存储海量实时行情,支持快速查询和分析
- **关系型数据库**:记录交易历史,积累经验数据
- **数据持久化**:所有感知信息永久保存,形成系统"记忆"
#### 3. 智能策略选择
- **市场状态识别**:自动识别当前市场环境(趋势/震荡/高波/低波)
- **回测验证**:使用历史数据验证策略在当前市场环境下的有效性
- **动态切换**:根据市场变化自动切换最优策略
- **参数优化**:实时调整策略参数以适应市场
#### 4. 预测性交易
- **趋势预测**:基于历史模式和技术指标预测未来走势
- **风险预警**:提前识别潜在风险(爆仓风险、流动性风险)
- **机会捕捉**:自动发现套利机会和异常波动
#### 5. 闭环学习系统
```
数据采集 → 存储记忆 → 回测分析 → 预测判断 → 策略选择
↑ ↓
└──────────── 绩效反馈 ← 执行交易 ←──────────────┘
```
### 系统特色
**这就是为什么我们需要同时开发WebSocket和REST API两套系统:**
1. **WebSocket**:提供实时"感知"能力,让系统能够即时响应市场
2. **REST API**:提供"行动"能力,获取历史数据和执行交易
3. **数据库**:提供"记忆"能力,积累经验和知识
4. **回测引擎**:提供"学习"能力,从历史中总结规律
5. **策略算法**:提供"思考"能力,分析和决策
6. **风险管理**:提供"自保"能力,控制风险
### 未来扩展方向
1. **机器学习集成**:使用ML模型预测价格走势
2. **情绪分析**:整合社交媒体和新闻情绪
3. **多交易所套利**:跨交易所价差套利
4. **高频交易**:毫秒级交易执行
5. **组合优化**:多策略组合优化配置
## 核心特性
- 支持OKX交易所模拟盘和实盘
- 集成8大类20+种经典交易策略
- 完善的风险管理和仓位控制
- 实时监控和告警系统
- 策略回测和性能分析
- LLM Agent智能决策接口
- 中文日志和报表系统
## 技术架构
### 系统分层架构
```mermaid
graph TB
subgraph 数据采集层
A1[WebSocket实时流
实时价格、资金费率
持仓量、爆仓单]
A2[REST API历史数据
历史K线、交易记录
市场指标]
end
subgraph 数据存储层
B1[时序数据库
InfluxDB/TimescaleDB
行情数据、技术指标]
B2[关系型数据库
PostgreSQL/MySQL
交易记录、策略日志]
B3[缓存层
Redis
热点数据、限流控制]
end
subgraph 数据处理层
C1[数据清洗
Pandas
验证、转换、过滤]
C2[技术指标计算
TA-Lib
MA、MACD、RSI、KDJ]
C3[特征工程
NumPy/Scikit-learn
特征提取、指标组合]
end
subgraph 分析决策层
D1[回测引擎
Backtrader/自研
策略验证、参数优化]
D2[市场状态识别
统计分析+ML
趋势/震荡/高波/低波]
D3[策略选择器
规则引擎+评分系统
智能选择最优策略]
D4[风险评估
VaR/CVaR
风险度量、压力测试]
end
subgraph 策略执行层
E1[订单管理
自研
订单生成、拆单、跟踪]
E2[仓位管理
Kelly公式/固定比例
仓位计算、动态调整]
E3[风险控制
多层风控体系
止损止盈、仓位限制]
end
subgraph 监控告警层
F1[实时监控
Prometheus+Grafana
账户、持仓、策略状态]
F2[告警系统
邮件/钉钉/微信
风险告警、异常告警]
end
subgraph 接口服务层
G1[Agent API
FastAPI
RESTful API接口]
G2[认证授权
OAuth 2.0
JWT Token认证]
end
A1 --> C1
A2 --> C1
C1 --> B1
C1 --> B2
C1 --> B3
B1 --> C2
B2 --> C2
B3 --> C2
C2 --> C3
C3 --> D1
C3 --> D2
D1 --> D3
D2 --> D3
D3 --> D4
D4 --> E3
E3 --> E2
E2 --> E1
E1 --> F1
F1 --> F2
E1 --> G1
G1 --> G2
E1 -.反馈.-> D1
style A1 fill:#e1f5ff
style A2 fill:#e1f5ff
style B1 fill:#fff4e1
style B2 fill:#fff4e1
style B3 fill:#fff4e1
style C1 fill:#f0e1ff
style C2 fill:#f0e1ff
style C3 fill:#f0e1ff
style D1 fill:#e1ffe1
style D2 fill:#e1ffe1
style D3 fill:#e1ffe1
style D4 fill:#e1ffe1
style E1 fill:#ffe1e1
style E2 fill:#ffe1e1
style E3 fill:#ffe1e1
style F1 fill:#ffe1f5
style F2 fill:#ffe1f5
style G1 fill:#f5ffe1
style G2 fill:#f5ffe1
```
### 数据流向
```
实时数据流(WebSocket)
↓
┌─────────────────────────────────────┐
│ 数据采集与预处理 │
│ • 数据验证 │
│ • 格式转换 │
│ • 异常过滤 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 数据存储 │
│ • 时序数据库(实时行情) │
│ • 关系数据库(交易记录) │
│ • 缓存(热点数据) │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 数据分析 │
│ • 技术指标计算 │
│ • 市场状态识别 │
│ • 趋势预测 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 策略决策 │
│ • 回测验证 │
│ • 策略选择 │
│ • 参数优化 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 风险管理 │
│ • 仓位控制 │
│ • 止损检查 │
│ • 风险评估 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 订单执行 │
│ • 订单生成 │
│ • 订单提交(REST API) │
│ • 状态跟踪 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 绩效评估与反馈 │
│ • 交易结果记录 │
│ • 策略表现分析 │
│ • 参数调整建议 │
└─────────────────────────────────────┘
↓
(循环反馈到数据分析)
```
### 核心模块
```
crypto-quant-trading/
├── config/ # 配置管理
│ ├── config.yaml # 主配置文件
│ ├── strategies.yaml # 策略配置
│ └── risk.yaml # 风险配置
├── core/ # 核心引擎
│ ├── engine.py # 交易引擎
│ ├── order_manager.py # 订单管理
│ ├── position_manager.py # 持仓管理
│ └── scheduler.py # 调度器
├── strategies/ # 策略模块
│ ├── base_strategy.py # 策略基类
│ ├── trend/ # 趋势策略
│ │ ├── ma_cross.py # 双均线
│ │ ├── macd.py # MACD
│ │ └── bollinger.py # 布林带
│ ├── grid/ # 网格策略
│ │ ├── fixed_grid.py # 固定网格
│ │ └── dynamic_grid.py # 动态网格
│ ├── arbitrage/ # 套利策略
│ │ ├── funding_rate.py # 资金费率套利
│ │ └── cross_period.py # 跨期套利
│ ├── market_making/ # 做市策略
│ │ └── dual_side.py # 双边做市
│ └── momentum/ # 动量策略
│ ├── rsi.py # RSI策略
│ └── kdj.py # KDJ策略
├── exchange/ # 交易所接口
│ ├── okx_client.py # OKX客户端
│ ├── market_data.py # 行情数据
│ └── trade_api.py # 交易接口
├── risk/ # 风险管理
│ ├── risk_manager.py # 风险管理器
│ ├── position_sizer.py # 仓位计算
│ └── stop_loss.py # 止损管理
├── data/ # 数据管理
│ ├── database.py # 数据库操作
│ ├── models.py # 数据模型
│ └── cache.py # 数据缓存
├── backtest/ # 回测系统
│ ├── backtest_engine.py # 回测引擎
│ ├── performance.py # 性能分析
│ └── report.py # 回测报告
├── monitor/ # 监控告警
│ ├── monitor.py # 监控模块
│ ├── alert.py # 告警模块
│ └── dashboard.py # 监控面板
├── agent/ # LLM Agent接口
│ ├── api_server.py # API服务
│ ├── auth.py # 身份验证
│ └── decision_log.py # 决策日志
├── utils/ # 工具函数
│ ├── logger.py # 日志工具
│ ├── config_loader.py # 配置加载
│ └── indicators.py # 技术指标
├── logs/ # 日志目录
├── tests/ # 测试代码
└── main.py # 主程序入口
```
## 快速开始
### 环境要求
- Python 3.9+
- pip 或 conda
### 安装依赖
```bash
pip install -r requirements.txt
```
### 配置说明
1. 复制配置模板:`cp config/config.example.yaml config/config.yaml`
2. 编辑配置文件,填入OKX API密钥(模拟盘)
3. 配置策略参数和风险控制参数
### 运行模拟盘
```bash
python main.py --mode demo --strategy ma_cross
```
### 查看日志
```bash
tail -f logs/trading_YYYYMMDD.log
```
## 策略说明
### 1. 趋势跟踪策略
- **双均线策略**:快慢均线交叉信号
- **MACD策略**:MACD金叉死叉信号
- **布林带策略**:价格突破布林带上下轨
### 2. 网格交易策略
- **固定网格**:固定价格区间网格交易
- **动态网格**:根据波动率动态调整网格
### 3. 套利策略
- **资金费率套利**:利用正负费率差套利
- **跨期套利**:现货与合约价差套利
### 4. 做市策略
- **双边做市**:同时挂买卖单赚取价差
### 5. 动量策略
- **RSI策略**:超买超卖信号
- **KDJ策略**:KDJ指标交叉信号
## 风险控制
### 资金管理
- 单笔交易最大风险:2%
- 总持仓限制:80%
- 单策略持仓限制:30%
### 止损机制
- 强制止损:单笔亏损达到2%
- 日内止损:当日亏损达到5%
- 连续止损:连续亏损3次暂停策略
### 杠杆控制
- 最大杠杆:10倍
- 建议杠杆:3-5倍
## 监控告警
### 监控指标
- 账户余额变化
- 持仓情况
- 策略收益率
- 系统运行状态
### 告警方式
- 邮件告警
- 钉钉机器人
- 微信通知(可选)
## LLM Agent接口
### API端点
```
POST /api/v1/strategy/start # 启动策略
POST /api/v1/strategy/stop # 停止策略
GET /api/v1/position # 查询持仓
GET /api/v1/balance # 查询余额
GET /api/v1/performance # 查询收益
```
### 调用示例
```python
import requests
# 启动策略
response = requests.post(
'http://localhost:8000/api/v1/strategy/start',
json={
'strategy': 'ma_cross',
'symbol': 'BTC-USDT-SWAP',
'params': {'fast_period': 10, 'slow_period': 20}
},
headers={'Authorization': 'Bearer YOUR_TOKEN'}
)
```
## 开发指南
### 添加新策略
1. 在对应策略目录创建策略文件
2. 继承BaseStrategy基类
3. 实现必要方法:`generate_signal()`, `calculate_position()`, `check_risk()`
4. 在配置文件中注册策略
5. 编写单元测试
6. 进行回测验证
### 策略模板
```python
from strategies.base_strategy import BaseStrategy
class MyStrategy(BaseStrategy):
"""我的自定义策略"""
def __init__(self, config):
super().__init__(config)
self.param1 = config.get('param1', 10)
def generate_signal(self, market_data):
"""生成交易信号"""
# 实现信号逻辑
return signal
def calculate_position(self, signal, account):
"""计算仓位"""
# 实现仓位计算
return position_size
def check_risk(self, position, account):
"""风险检查"""
# 实现风险检查
return is_safe
```
## 测试
### 运行单元测试
```bash
pytest tests/
```
### 运行策略回测
```bash
python backtest/run_backtest.py --strategy ma_cross --start 2024-01-01 --end 2024-10-01
```
## 注意事项
1. 本系统仅供学习研究使用
2. 虚拟币交易存在极高风险
3. 务必先在模拟盘充分测试
4. 实盘交易请谨慎,控制仓位
5. 不要投入超过承受能力的资金
## 免责声明
使用本系统进行实盘交易造成的任何损失由使用者自行承担,开发者不承担任何责任。
## 许可证
MIT License
## 联系方式
如有问题或建议,联系wx:cd6996cd,欢迎提交Issue。
---
## 如果认可我,可以请我喝杯☕