# 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。 --- ## 如果认可我,可以请我喝杯☕
微信赞赏 支付宝赞赏