Skip to content

Tightfist/cryptoquant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CryptoQuant 高性能加密货币量化交易系统

CryptoQuant是一个高性能、模块化的加密货币量化交易系统,专注于捕捉短期市场机会和风险控制。系统采用异步架构,支持多策略并行执行,提供实时数据处理和信号生成能力。

系统架构

┌──────────────────────────────────────────────────────────────────────────────┐
│                          CryptoQuant 系统架构                                 │
├──────────────────┬───────────────────────────┬───────────────────────────────┤
│                  │                           │                               │
│  应用层           │         核心框架          │         工具和服务             │
│                  │                           │                               │
├──────────────────┼───────────────────────────┼───────────────────────────────┤
│                  │                           │                               │
│ ┌───────────────┐│ ┌─────────────────────┐   │  ┌─────────────────────────┐  │
│ │ 短线逐利策略   ││ │   交易框架          │   │  │      数据分析工具        │  │
│ └───────────────┘│ │ TradingFramework    │   │  │    (因子分析、回测)      │  │
│                  │ └─────────────────────┘   │  └─────────────────────────┘  │
│ ┌───────────────┐│                           │                               │
│ │ TradingView   ││ ┌─────────────────────┐   │  ┌─────────────────────────┐  │
│ │ 信号追踪器     ││ │    仓位管理器       │   │  │       HTTP服务器         │  │
│ └───────────────┘│ │  PositionManager    │   │  │      HttpServer         │  │
│                  │ └─────────────────────┘   │  └─────────────────────────┘  │
│ ┌───────────────┐│                           │                               │
│ │ 资金费率套利   ││ ┌─────────────────────┐   │  ┌─────────────────────────┐  │
│ └───────────────┘│ │     数据缓存         │   │  │       风控模块          │  │
│                  │ │    DataCache        │   │  │     RiskControl         │  │
│ ┌───────────────┐│ └─────────────────────┘   │  └─────────────────────────┘  │
│ │   价格监控     ││                           │                               │
│ └───────────────┘│ ┌─────────────────────┐   │  ┌─────────────────────────┐  │
│                  │ │    交易接口         │   │  │    异步事件循环          │  │
│ ┌───────────────┐│ │     Trader         │   │  │    AsyncEventLoop       │  │
│ │   交易工具     ││ └─────────────────────┘   │  └─────────────────────────┘  │
│ └───────────────┘│                           │                               │
│                  │ ┌─────────────────────┐   │  ┌─────────────────────────┐  │
│ ┌───────────────┐│ │  行情数据订阅器     │   │  │      日志系统           │  │
│ │   策略模板     ││ │ MarketSubscriber   │   │  │       Logger            │  │
│ └───────────────┘│ └─────────────────────┘   │  └─────────────────────────┘  │
│                  │                           │                               │
├──────────────────┴───────────────────────────┴───────────────────────────────┤
│                                                                              │
│                                交易所接口层                                   │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│                                 OKEx API                                     │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

主要特点

  • 高性能异步架构: 采用Python AsyncIO异步编程范式,最大化I/O密集型操作效率
  • 实时数据处理: 通过WebSocket接口实时接收和处理行情数据,毫秒级响应
  • 多策略支持: 支持多个交易策略并行执行,便于分散风险和捕捉不同市场机会
  • 风控机制: 内置多层次风险控制,包括仓位管理、止盈止损、下单频率限制和资金使用限制
  • 高效缓存: 基于内存的数据缓存系统,减少API调用频率,提高性能并避免触发交易所限流
  • HTTP API接口: 提供RESTful API接口用于监控和控制策略执行,支持远程管理
  • 分析工具: 内置多种分析工具,用于评估策略性能、市场状况和因子有效性
  • 灵活配置: 通过JSON配置文件,灵活调整策略参数、风控设置和系统行为
  • 模块化设计: 组件化、松耦合设计,便于扩展和自定义新功能

主要组件

核心框架

  • 交易框架 (TradingFramework): 提供策略执行的基础架构,处理信号接收、分析和执行
  • 仓位管理器 (PositionManager): 管理和跟踪所有交易仓位,提供统一的仓位操作接口
  • 数据缓存 (DataCache): 缓存行情数据、K线和其他市场信息,减少API调用频率
  • 交易接口 (Trader): 提供统一的交易接口,处理订单创建、修改和取消
  • 行情订阅器 (MarketSubscriber): 通过WebSocket接收实时市场数据
  • 风控模块 (RiskControl): 提供多层风险控制机制,保护资金安全

应用层

  • 短线逐利策略 (Short-Term Profit Strategy): 基于多因子模型的短期交易策略,专注捕捉价格波动
  • TradingView信号追踪器: 接收并执行来自TradingView的交易信号,支持多交易对和自定义参数
  • 资金费率套利 (Funding Arbitrage): 针对永续合约和交割合约之间的资金费率差异进行套利
  • 价格监控 (Price): 实时监控加密货币价格和资产信息,支持多种显示和提醒方式
  • 交易工具 (Trader Tools): 提供多种实用交易工具,如批量下单、仓位计算和杠杆设置
  • 策略模板 (Strategy Template): 用于快速开发新策略的基础模板,包含完整的框架集成

服务和工具

  • HTTP服务器: 提供RESTful API,用于远程控制和监控策略执行
  • 异步事件循环: 管理异步任务执行,提供高效的I/O操作
  • 日志系统: 详细记录系统操作和异常情况,支持多级别日志
  • 配置加载器: 处理JSON配置文件的加载和验证
  • 分析工具: 提供因子分析、回测和性能评估功能

应用程序详情

短线逐利策略 (Short-Term Profit Strategy)

专注于捕捉短期价格波动机会的量化交易策略,基于多因子分析模型。

主要特点:

  • 多因子分析: 综合价格变化、持仓量变化和成交量比率等因子
  • 自动扫描: 定期扫描所有交易对,寻找符合条件的交易机会
  • 优化的5分钟级别分析: 专注于最近5分钟的市场变化,捕捉短期机会
  • 自动止盈止损: 内置多层次止盈止损机制,保护资金安全
  • 实时监控: 持续监控开仓条件,及时调整持仓

详细文档

TradingView信号追踪器 (TradingView Signal Tracker)

接收并执行来自TradingView的交易信号,支持多种交易对和交易策略。

主要特点:

  • WebSocket服务器: 接收TradingView的Alert Webhook信号
  • HTTP API: 提供手动触发信号的API接口
  • 多交易对支持: 可同时监控和交易多个交易对
  • 仓位持久化: 在程序重启后恢复仓位信息
  • 止损设置: 支持跟踪止损和固定止损

详细文档

资金费率套利 (Funding Arbitrage)

利用永续合约和交割合约之间的资金费率差异进行套利的策略。

主要特点:

  • 自动识别: 识别资金费率显著偏离的合约对
  • 仓位对冲: 在永续合约和交割合约之间建立对冲仓位
  • 资金费获取: 通过持有对冲仓位获取资金费收益
  • 风险控制: 监控价差风险,动态调整仓位

详细文档

价格监控 (Price)

实时监控加密货币价格和资产信息的工具。

主要特点:

  • 价格监控: 实时显示加密货币价格和涨跌幅
  • 资产查询: 查询账户资产和仓位信息
  • 历史数据分析: 支持K线数据查询和简单分析
  • 自定义刷新间隔: 可设置数据刷新频率
  • 多种输出方式: 支持控制台、通知和API返回

详细文档

交易工具 (Trader Tools)

提供多种实用交易工具和功能的应用。

主要特点:

  • 快速下单: 支持快速市价和限价订单
  • 批量操作: 批量设置杠杆和下单
  • 仓位计算: 根据风险和账户余额计算合适的仓位大小
  • 杠杆设置: 快速调整合约杠杆
  • 余额查询: 查询账户余额和资产分布
  • IPO参与: 简化新币上线认购流程

详细文档

策略模板 (Strategy Template)

用于快速开发新策略的基础模板,包含完整的框架集成。

主要特点:

  • 完整框架: 集成交易框架的所有核心功能
  • 标准接口: 提供标准的信号处理和仓位管理接口
  • 示例实现: 包含示例策略实现和注释
  • HTTP API: 预配置的API接口
  • 配置示例: 包含详细的配置文件示例

详细文档

快速开始

安装

  1. 克隆项目仓库:
git clone https://github.com/yourusername/cryptoquant.git
cd cryptoquant
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置API密钥: 在config目录下创建相应的配置文件,填入交易所API密钥和策略参数。

运行应用

短线逐利策略:

python apps/short_term_profit_strategy/main.py

TradingView信号追踪器:

python apps/tradingview_signal_tracker/main.py

资金费率套利:

python apps/funding_arbitrage/main.py

价格监控:

python apps/price/main.py

交易工具:

python apps/trader_tools/main.py

配置

所有策略配置文件位于config目录下。主要配置示例:

短线逐利策略配置 (short_term_profit_strategy.json):

{
  "log": {
    "level": "INFO",
    "file": "logs/short_term_profit_strategy.log"
  },
  "exchange": {
    "api_key": "YOUR_API_KEY",
    "secret_key": "YOUR_SECRET_KEY",
    "passphrase": "YOUR_PASSPHRASE"
  },
  "strategy": {
    "leverage": 3,
    "price_change_threshold": 1.5,
    "volume_ratio_threshold": 2.5,
    "position_change_threshold": 2.0
  },
  "position_manager": {
    "max_positions": 5,
    "position_size_percent": 10,
    "take_profit_percent": 3.0,
    "stop_loss_percent": 2.0
  },
  "http_server": {
    "enabled": true,
    "host": "0.0.0.0",
    "port": 8080
  }
}

HTTP API接口

系统提供以下标准HTTP API接口:

通用端点

  • GET /api/status: 获取策略状态

    curl http://localhost:8080/api/status
    
  • POST /api/trigger: 触发信号处理

    curl -X POST http://localhost:8080/api/trigger -H "Content-Type: application/json" -d '{"action":"scan"}'
    
  • POST /api/close_all: 关闭所有持仓

    curl -X POST http://localhost:8080/api/close_all
    

短线逐利策略专用端点

  • GET /api/factor_analysis: 分析策略因子
    curl http://localhost:8080/api/factor_analysis
    

因子分析工具

使用以下命令运行因子分析:

python scripts/analyze_factors.py --host <IP地址> --port 8080 --max-symbols 50

支持参数:

  • --host: 服务器主机名或IP (默认: localhost)
  • --port: 服务器端口 (默认: 8080)
  • --top: 返回排名前多少的数据 (默认: 10)
  • --max-symbols: 最多分析多少个标的 (默认: 20)
  • --format: 输出格式 (默认: table, 可选: json)

开发指南

系统架构

CryptoQuant采用分层架构设计:

  1. 核心层: 提供基础组件和服务

    • 交易框架、仓位管理、数据缓存等
  2. 应用层: 实现具体的交易策略和功能

    • 短线逐利策略、信号追踪器等
  3. 服务层: 提供API和用户界面

    • HTTP服务器、WebSocket服务等
  4. 交易所接口层: 与交易所API交互

    • 目前主要支持OKEx交易所

创建新策略

  1. 复制apps/strategy_template目录作为起点
  2. 实现自定义的信号处理逻辑
  3. config目录下创建相应的配置文件
  4. 运行新策略的main.py文件

开发规范

  • 使用异步编程模式 (asyncio)
  • 遵循PEP 8命名和代码风格
  • 为所有公共API添加文档字符串
  • 使用类型注解提高代码可读性和安全性
  • 使用日志记录关键操作和异常

性能优化

  • 数据缓存: 减少API调用,提高响应速度
  • 异步处理: 非阻塞I/O操作
  • 延迟启动: 分散多个组件的启动时间
  • 内存优化: 定期清理不再需要的缓存数据
  • 批量操作: 尽可能合并API请求

贡献与许可

欢迎提交问题报告、功能请求和Pull Requests。

贡献指南:

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

许可证

本项目采用 CC BY-NC (Creative Commons Attribution-NonCommercial) 许可证。

这意味着您可以:

  • 分享 - 复制和重新分发本项目的材料,以任何媒介或格式
  • 改编 - 重混、转换材料并以材料为基础进行创作

但须遵守下列条件:

  • 署名 - 您必须给出适当的署名,提供指向本许可证的链接,同时标明是否做出了修改
  • 非商业性使用 - 您不得将本项目用于商业目的

本项目仅供个人和学习研究使用,禁止商业应用。如需商业授权,请联系作者。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages