Skip to content

bombbb/cex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

量化交易系统

基于 Kronos + XGBoost 的智能量化交易系统,支持实时数据采集、特征工程、双模型预测和信号生成。

🚀 快速开始

1. 环境要求

  • Python 3.8+
  • Docker & Docker Compose
  • 8GB+ 内存推荐
  • 支持多核 CPU

2. 安装依赖

# 安装 Python 依赖
pip install -r requirements.txt

# 安装 Kronos 依赖(如果需要)
cd data_layer/Kronos
pip install -r requirements.txt

3. 配置环境

# 复制配置文件
cp run/config.env.example run/config.env

# 编辑配置文件
vim run/config.env

4. 启动系统

启动核心交易系统

# 一键启动
chmod +x run/start.sh
./run/start.sh

# 或手动启动
python main.py
Windows 全栈一键启动
# 使用原有启动脚本
admin_layer\run\start_all.bat

# 或使用改进版启动脚本(推荐,修复了前端启动问题)
admin_layer\run\start_all_fixed.bat

运行结束后使用 admin_layer\run\stop_all.bat 可安全停止所有Windows端服务(Docker、数据采集、预测、Kronos UI 及 Admin 前后端)。

注意: 如果前端服务无法在 http://localhost:3000 正常访问,请使用 admin_layer\admin_frontend\diagnose-frontend.bat 进行诊断和修复。

启动后台管理系统

# 启动后端API (终端1)
cd admin_backend
python start.py

# 启动前端界面 (终端2)
cd admin_frontend
npm install
npm run dev

5. 访问界面

📚 文档导航

📖 完整文档索引 - 查看所有文档的分类索引和快速导航 ⭐

快速开始

项目规则

模型相关

策略相关

后台管理

架构设计

快速开始 & 状态

分层状态概览

📁 项目结构

cex/
├── main.py                    # 主程序入口 (完整功能)
├── main_simple.py             # 简化版主程序 (数据采集+特征)
├── main_simple_v2.py          # 简化版主程序 V2 (测试版本)
├── run_tests.py               # 测试运行脚本
├── requirements.txt           # Python依赖
├── README.md                  # 项目说明
├── config-defaults.json       # 默认配置
├── scripts/                   # 工具脚本
│   ├── fix_imports.py        # 导入修复工具
│   ├── fix_all_imports.py    # 批量导入修复工具
│   ├── start_simple_v2.bat   # Windows启动脚本
│   └── start_simple_v2.sh    # Linux启动脚本
├── data_layer/                # 数据层
│   ├── Kronos/                # Kronos 模型
│   ├── adapters/              # 数据源适配器
│   │   ├── binance_adapter.py # Binance WebSocket
│   │   └── cmc_adapter.py     # CoinMarketCap API
│   ├── processors/            # 数据处理器
│   │   ├── feature_engineer.py # 特征工程
│   │   └── kline_processor.py  # K线处理
│   ├── predictors/            # 预测器
│   │   ├── kronos_predictor.py    # Kronos 封装
│   │   ├── xgboost_predictor.py   # XGBoost 方向判断
│   │   └── ensemble_predictor.py  # 集成预测器
│   ├── interfaces/            # 对外接口
│   │   └── data_interface.py
│   ├── configs/               # 配置文件
│   │   └── data_config.json
│   ├── xgboost/               # XGBoost相关
│   │   ├── training/          # 训练脚本 (13个文件)
│   │   ├── execution/         # 执行脚本 (3个文件)
│   │   └── diagnosis/         # 诊断脚本 (2个文件)
│   └── database_manager.py    # 数据库管理
├── strategy_layer/            # 策略层
│   ├── ai-ordering-strategy.md  # AI策略文档
│   └── trading_rules.md       # 交易规则文档
├── tests/                     # 测试文件
│   ├── adapters/              # 适配器测试 (1个文件)
│   ├── system/                # 系统测试 (6个文件)
│   ├── xgboost/               # XGBoost测试 (空目录)
│   └── integration/           # 集成测试 (空目录)
├── utils/                     # 工具函数
├── config/                    # 配置文件
├── logs/                      # 日志文件
├── middleware/                # 中间件
│   ├── docker-compose.yml     # PostgreSQL + TimescaleDB
│   ├── init.sql              # 数据库初始化
│   └── schemas/              # 数据库表结构
│       ├── klines.sql
│       ├── features.sql
│       ├── predictions.sql
│       └── signals.sql
├── run/                      # 启动脚本
│   ├── start.sh             # 启动脚本
│   ├── stop.sh              # 停止脚本
│   └── config.env           # 环境配置
├── config/                   # 全局配置
│   └── trading_config.json
├── logs/                     # 日志文件
├── models/                   # 模型文件
└── main.py                   # 主程序入口

🔧 核心功能

1. 实时数据采集

  • Binance WebSocket: 实时K线、深度、成交数据
  • CoinMarketCap: 市场深度和情绪数据
  • 数据清洗: 异常值检测、缺失值处理
  • 数据存储: PostgreSQL + TimescaleDB 时序数据库

2. 特征工程

  • 技术指标: 收益率、ATR、波动率、RSI、MACD
  • 微结构指标: 盘口不平衡、点差、深度比率
  • 资金流指标: 资金流入、大单比例、VWAP偏差
  • 特征归一化: Z-score标准化,动态计算
  • 异常检测: IsolationForest + LOF双重检测

3. 双模型预测

  • Kronos模型: 预测未来120个5分钟K线价格走势
  • XGBoost模型: 基于预测结果和特征判断多空方向
  • 集成融合: 智能信号生成,提高预测准确性

4. 信号生成

  • 做多条件: Kronos预测涨幅>1% + XGBoost score>0.7
  • 做空条件: Kronos预测跌幅>1% + XGBoost score<-0.7
  • 观望条件: 其他情况
  • 信号管理: 冷却时间、置信度阈值、风险控制

📊 数据流程

实时数据 → 特征工程 → 双模型预测 → 信号生成 → 数据库存储
    ↓           ↓           ↓           ↓           ↓
Binance   技术指标    Kronos预测  智能融合    PostgreSQL
WebSocket  微结构指标   XGBoost判断  信号管理    TimescaleDB
CMC API    资金流指标   集成预测    风险控制    时序存储

🎯 使用指南

1. 配置交易参数

编辑 config/trading_config.json:

{
  "trading": {
    "symbol": "BTC/USDT",
    "timeframe": "5m",
    "lookback_window": 400,
    "prediction_length": 120
  },
  "signals": {
    "long_threshold": 0.7,
    "short_threshold": -0.7,
    "cooldown_seconds": 60
  }
}

2. 监控系统状态

# 查看实时日志
tail -f logs/*.log

# 查看服务状态
ps aux | grep python

# 查看数据库状态
docker logs trading_timescaledb

3. 查看预测结果

  • 访问 Kronos Web UI: http://localhost:7070
  • 选择模型: kronos-small
  • 选择设备: CPU
  • 加载数据: XSHG_5min_600977.csv
  • 开始预测

4. 数据库查询

-- 查看最新预测
SELECT * FROM predictions 
WHERE symbol = 'BTC/USDT' 
ORDER BY prediction_time DESC 
LIMIT 10;

-- 查看交易信号
SELECT * FROM signals 
WHERE symbol = 'BTC/USDT' 
ORDER BY signal_time DESC 
LIMIT 10;

-- 查看特征数据
SELECT * FROM features 
WHERE symbol = 'BTC/USDT' 
ORDER BY timestamp DESC 
LIMIT 10;

🔍 系统监控

1. 性能指标

  • 预测准确率: 方向预测正确率
  • 预测延迟: 从数据到预测的时间
  • 系统资源: CPU、内存、磁盘使用率
  • 数据库性能: 查询响应时间、连接数

2. 日志分析

# 查看错误日志
grep "ERROR" logs/*.log

# 查看预测日志
grep "预测完成" logs/ensemble_predictor.log

# 查看数据采集日志
grep "处理K线数据" logs/binance_adapter.log

3. 数据库监控

-- 查看表大小
SELECT schemaname, tablename, 
       pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as size
FROM pg_tables 
WHERE schemaname = 'public'
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;

-- 查看预测统计
SELECT model_type, 
       COUNT(*) as total_predictions,
       AVG(confidence) as avg_confidence
FROM predictions 
GROUP BY model_type;

🛠️ 开发指南

1. 添加新的数据源

  1. data_layer/adapters/ 创建新的适配器
  2. 实现标准的数据接口
  3. main.py 中注册适配器
  4. 更新配置文件

2. 添加新的特征

  1. feature_engineer.py 中添加特征计算函数
  2. 更新特征配置
  3. 更新数据库表结构
  4. 测试特征计算正确性

3. 添加新的预测模型

  1. data_layer/predictors/ 创建新的预测器
  2. 实现标准的预测接口
  3. ensemble_predictor.py 中集成
  4. 更新模型配置

🐛 故障排除

1. 常见问题

  • 数据库连接失败: 检查Docker是否运行,数据库是否启动
  • 模型加载失败: 检查模型文件是否存在,依赖是否安装
  • 预测准确率低: 检查特征质量,调整模型参数
  • 内存不足: 调整批处理大小,清理历史数据
  • 前端无法访问: 检查端口3000是否被占用,使用诊断工具 admin_layer\admin_frontend\diagnose-frontend.bat 进行修复

2. 调试模式

# 启用详细日志
export LOG_LEVEL=DEBUG
python main.py

# 单独测试组件
python data_layer/adapters/binance_adapter.py
python data_layer/predictors/ensemble_predictor.py

3. 性能优化

  • 调整数据库连接池大小
  • 优化特征计算算法
  • 使用更快的模型推理
  • 调整数据保留策略

📈 性能基准

1. 预测性能

  • 预测延迟: < 1秒
  • 预测准确率: > 70%
  • 系统吞吐量: 1000+ 预测/小时

2. 数据性能

  • 数据延迟: < 100ms
  • 存储效率: 压缩比 > 80%
  • 查询性能: < 10ms

3. 系统资源

  • 内存使用: < 4GB
  • CPU使用: < 50%
  • 磁盘使用: < 10GB

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📞 支持

如有问题或建议,请:

  1. 查看项目文档
  2. 提交 Issue
  3. 联系开发团队

注意: 本系统仅用于学习和研究目的,不构成投资建议。使用前请充分了解风险。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors