https://github.com/TIZZYONE/ICRX.git

ICRX

Intelligent Cryptocurrency Robot X:
一个基于 FastAPI + Vue3 的 OKX 交易所 K线数据管理平台,支持自动获取、存储和可视化展示 K线数据。

🚀 功能特性

📊 数据管理

  • 自动数据获取: 每5小时自动获取最新K线数据 (最多300条记录)
  • 智能重试机制: 获取失败时每1分钟自动重试
  • 产品ID验证: 添加产品时自动验证ID有效性
  • 数据统计: 提供完整的数据统计和监控功能

🎯 产品管理

  • 产品配置: 支持添加、编辑、删除交易产品
  • 状态控制: 可启用/禁用数据获取
  • 常用产品: 预设热门交易对快速添加
  • 手动获取: 支持手动触发数据更新

📈 数据展示

  • 实时监控: Dashboard 显示系统状态和数据概览
  • 图表可视化: 支持 K线图表展示 (集成 ECharts)
  • 数据查询: 灵活的数据查询和筛选功能

🛠️ 系统特性

  • 现代化UI: 基于 Element Plus 的响应式设计
  • 双层菜单: 清晰的导航结构
  • 错误处理: 完善的错误提示和处理机制
  • 日志记录: 详细的任务执行日志

🏗️ 技术架构

后端 (FastAPI)

  • 框架: FastAPI + Uvicorn
  • 数据库: MySQL + SQLAlchemy ORM
  • 任务调度: APScheduler
  • API接口: RESTful API + 自动文档生成

前端 (Vue3)

  • 框架: Vue 3 + Composition API
  • 路由: Vue Router 4
  • 状态管理: Pinia
  • UI组件: Element Plus
  • 图表库: ECharts + vue-echarts
  • 构建工具: Vite

📋 系统要求

  • Python 3.10+
  • Node.js 16+
  • MySQL 5.7+
  • 网络连接 (访问 OKX API)

🚀 快速开始

1. 克隆项目

git clone https://github.com/TIZZYONE/ICRX.git

2. 后端设置

安装依赖
cd back
pip install -r requirements.txt
配置环境

复制并编辑环境配置文件:

copy env_example.txt .env

编辑 .env 文件,配置数据库连接:

# 数据库配置
DATABASE_URL=mysql+pymysql://username:password@localhost:3306/okx_data

# Redis配置 (可选)
REDIS_URL=redis://localhost:6379/0

# OKX API配置
OKX_API_KEY=your_api_key
OKX_SECRET_KEY=your_secret_key
OKX_PASSPHRASE=your_passphrase

# 任务配置
FETCH_INTERVAL_MINUTES=300  # 数据获取间隔(分钟)
RETRY_INTERVAL_MINUTES=1    # 重试间隔(分钟)
MAX_CANDLES_LIMIT=300       # 最大获取数量

3. 前端设置

安装依赖
cd frontend
npm install
配置API地址

编辑 vite.config.js 确认后端地址配置正确。

4. 启动服务

方法一:分别启动

启动后端:

cd back
python main.py

启动前端:

cd frontend
npm run dev

5. 访问系统

  • 前端界面: http://localhost:5173
  • 后端API: http://localhost:8000
  • API文档: http://localhost:8000/docs

📖 使用指南

添加交易产品

  1. 访问 “产品管理” -> “添加产品”
  2. 输入产品ID (如: BTC-USDT)
  3. 系统会自动验证产品ID有效性
  4. 验证通过后创建配置并开始获取数据

支持的产品类型

  • 现货交易对: BTC-USDT, ETH-USDT, etc.
  • 合约交易对: BTC-USD-SWAP, ETH-USD-SWAP, etc.
  • 期权合约: BTC-USD-OPTIONS, etc.

数据获取机制

  • 自动获取: 每5小时获取一次最新数据
  • 获取数量: 每次最多300条K线记录
  • 重试机制: 失败时每1分钟重试一次
  • 手动获取: 支持立即触发数据更新

🔧 开发说明

项目结构

ICRX/
├── back/                    # 后端代码
│   ├── api/                # API路由
│   ├── core/               # 核心业务逻辑
│   ├── models/             # 数据模型
│   ├── services/           # 业务服务
│   ├── tasks/              # 定时任务
│   └── main.py             # 应用入口
├── frontend/               # 前端代码
│   ├── src/
│   │   ├── api/           # API接口
│   │   ├── components/    # 组件
│   │   ├── layout/        # 布局组件
│   │   ├── router/        # 路由配置
│   │   ├── stores/        # 状态管理
│   │   └── views/         # 页面视图
│   └── package.json
└── README.md

添加新的交易产品类型

  1. back/core/okx_ops.py 中添加相应的API调用
  2. 更新数据模型 back/models.py
  3. 在前端 frontend/src/views/instruments/InstrumentAdd.vue 中添加产品模板

🐛 故障排除

常见问题

1. 数据库连接失败

  • 检查MySQL服务是否启动
  • 验证数据库配置信息
  • 确认数据库已创建

2. API调用失败

  • 检查网络连接
  • 验证OKX API配置
  • 确认产品ID格式正确

3. 前端页面空白

  • 检查后端服务是否启动
  • 查看浏览器控制台错误信息
  • 确认API接口地址配置

4. Node.js 警告信息

(node:xxx) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated

这是依赖包的警告,不影响功能,可通过更新依赖解决:

cd frontend
npm update

📝 更新日志

v1.0.0

  • 基础的K线数据获取和管理功能
  • 产品配置管理
  • 自动化数据获取和重试机制
  • 现代化Web界面
  • API文档自动生成

🤝 贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开 Pull Request

📄 许可证

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

📞 联系方式

如有问题或建议,请通过以下方式联系:

  • 邮箱: cdb699@163.com
  • Issues: 在GitHub上提交issue

注意: 使用本系统前请确保遵守OKX交易所的API使用条款和限制。

持续更新:

  1. 增加bianace相关功能
  2. 套利功能

2025年6月10日

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐