Skip to content

Nano-Li/LightQuant-public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightQuant

异步量化交易管理平台

LightQuant 是一个面向 Web3 中心化交易所的量化交易系统,支持多并发策略、低延迟行情处理和高容错性设计。系统采用全异步架构,基于 Python 3.10+ 开发,提供完整的策略管理、订单执行和风险控制能力,已在 Gate.io 合约与现货杠杆市场经过实盘验证。

PyQt5 深色主题主界面


架构特点(Architecture Features)

1. 异步事件驱动

采用 asyncio 事件循环处理底层网络 I/O,通过 PyQt5 信号槽机制与 UI 线程通信,将行情数据处理与界面渲染分离,避免阻塞主线程。Executor 运行在独立事件循环中,通过自定义 Protocol 与策略层交互,支持多策略并发运行。系统可稳定接收 Ticker 更新与订单簿推送,支持较高频率的行情更新处理。

技术实现

  • 底层 Executor 运行在独立 asyncio 事件循环中
  • 通过自定义 Protocol 实现系统内部通信
  • 支持多策略并发运行

2. 策略状态快照(异常恢复)

基于 Preserver 模块和独立进程监控机制,实现策略状态的恢复。系统会定期将网格状态、持仓信息、订单信息等关键数据序列化到本地,配合 PIDmonitor 进程守护,即使遇到以下异常情况也能快速恢复:

  • 交易所 WebSocket 连接断开
  • 服务器意外重启或程序崩溃
  • API 限流导致的临时中断

核心价值:确保策略交易的连续性与资金安全,避免因程序中断导致的策略失效或平仓风险。恢复过程全自动化,无需重新配置参数。

3. 基础风控与限额管理

针对加密货币期货合约的高波动特性,设计了多层次风控逻辑:

  • 动态仓位调整:根据市场价格和账户杠杆,实时计算网格密度与单笔下单量
  • 动态网格保护:随价格上涨,设置阶梯式网格下限,避免因插针导致仓位过重
  • 资金利用率提示:计算并显示保证金占用比例,为交易决策提供数据支持(注:系统提供风险提示)
  • 预留风控接口:针对止损机制、API 限流、订单簿深度检查等功能预留了扩展接口,支持后续迭代接入

系统架构

系统模块架构示意图

项目主要代码位于 LightQuant 目录,采用三层模块化设计,各层职责清晰,便于横向扩展:

1. 交易所接口层

位于 LightQuant/hands/ 目录,负责与交易所 API 对接的底层实现。

  • GateFuturesExecutor.py - Gate.io U本位合约交易接口
  • GateMarginExecutor.py - Gate.io 现货杠杆交易接口

主要功能

  • WebSocket 实时行情订阅(Ticker、订单簿、成交数据)
  • 订单管理(限价单、市价单、POC订单)
  • 批量下单与撤单
  • 仓位查询与杠杆调整
  • 账户资金查询

扩展性设计:通过自定义的 Protocol 通信协议,Executor 层与上层策略完全分离。新增交易所接口(如 Binance)时,只需实现统一的接口规范,无需修改策略代码。目前 BinanceAnalyzer 目录已预留。

2. Strategy - 策略层

位于 LightQuant/strategy/ 目录,实现各类量化交易策略。所有策略继承自 Analyzer 基类,复用核心逻辑。

已实现策略(Gate所):

  • ArithmeticGridFutures.py - 等差网格策略(合约)
  • SmartGridFutures.py - 智能网格策略(合约)
  • SmartFundGridFutures.py - 智能资金网格策略(合约)
  • ArithmeticGridMargin.py - 等差网格策略(现货杠杆)

策略特点

  • 支持网格交易、自动化套利、动态调仓等多种策略类型
  • 适用于非极端单边市场
  • 支持挂单触发、仓位动态调整
  • 实时盈亏统计

盘面实盘交易与网格策略动态平移示意图

3. UI - 用户界面层

位于 LightQuant/ui/ 目录,基于 PyQt5 开发的 深色/浅色 主题图形化交易界面。

界面功能

  • 策略创建、启动、停止、恢复
  • 实时显示持仓、盈亏、订单状态
  • 策略参数可视化配置(支持参数校验与预设模板)
  • 交易日志输出

策略参数配置界面


核心组件

Executor(执行器)

负责与交易所通信,处理订单执行、行情订阅等底层操作。采用 asyncio 异步架构,支持高并发订单处理,单实例可同时管理 50+ 活跃订单。

Analyzer(分析器)

策略逻辑的核心,负责市场分析、信号生成、订单决策。每个策略继承自 Analyzer 基类,复用行情处理、订单管理、状态持久化等通用逻辑,开发新策略只需关注交易信号生成部分。

Recorder(记录器)

交易日志记录,保存策略运行过程中的关键信息(开仓/平仓/调仓事件、盈亏变化、异常告警),便于回溯分析与策略优化。

Preserver(保存器)

策略状态持久化,支持策略意外中断后的一键恢复功能。保存内容包括:网格配置、当前持仓、未完成订单、累计盈亏等。


技术栈

  • Python 3.10.10 - 核心开发语言
  • PyQt5 - 图形界面框架
  • asyncio - 异步事件循环
  • gate-api - Gate.io REST API SDK
  • gate-ws - Gate.io WebSocket API SDK
  • pandas - 数据处理与分析
  • QDarkStyle - 深色/浅色 主题样式

环境要求

  • Python 3.10+
  • 推荐服务器:AWS t3a.medium 或同等配置(2核 4GB 内存)
  • 稳定的网络连接(建议使用海外服务器,延迟 < 100ms)

安装

  1. 克隆项目
git clone https://github.com/Nano-Li/LightQuant-public.git
cd LightQuant-public
  1. 安装依赖
pip install -r requirements.txt
  1. 配置 API 密钥

创建 gate_api.txt 文件,填入以下内容:

api_key=your_api_key_here
api_secret=your_api_secret_here
user_id=your_user_id_here

使用方法

启动主程序

python LightQuant/main.py

启动进程监控(可选)

python monitor/PIDmonitor.py

进程监控工具可以在主程序异常退出时发送钉钉通知,并自动尝试重启。

基本操作流程

  1. 启动程序后,点击"新建策略"
  2. 选择交易所接口(Gate 现货/合约)
  3. 输入 API 密钥或选择配置文件
  4. 选择策略类型并配置参数(网格间距、杠杆倍数、止损阈值等)
  5. 点击"开始运行"启动策略
  6. 实时监控策略运行状态(持仓、盈亏、订单执行情况)
  7. 需要时可以手动停止策略或触发紧急平仓

项目结构

LightQuant-public/
├── LightQuant/              # 主项目目录
│   ├── hands/               # 交易所接口层
│   ├── strategy/            # 策略实现
│   │   ├── GateAnalyzer/    # Gate.io 策略
│   │   └── BinanceAnalyzer/ # 币安策略(预留)
│   ├── ui/                  # 用户界面
│   │   ├── stg_param_widgets/  # 策略参数配置界面
│   │   └── pictures/        # 界面图片资源
│   ├── tools/               # 工具函数
│   ├── protocols/           # 通信协议定义
│   ├── Analyzer.py          # 策略基类
│   ├── Executor.py          # 执行器基类
│   ├── Recorder.py          # 日志记录
│   ├── Preserver.py         # 状态保存
│   └── main.py              # 程序入口
├── monitor/                 # 进程监控工具
├── requirements.txt         # 依赖列表
└── README.md               # 项目文档

支持的交易所

已实现

  • ✅ Gate.io 合约交易
  • ✅ Gate.io 现货杠杆交易

预留接口

  • ⏳ 币安(Binance)- 代码框架已预留

策略说明

网格策略

通过在价格区间内设置多个买卖网格,利用市场波动进行价差套利,适合震荡上涨行情。

智能调仓策略

根据市场趋势自动调整仓位分布,在保持网格套利的同时捕捉趋势收益。支持网格动态平移,避免单边行情下的网格失效。


风险提示

  1. 市场风险:量化策略无法保证盈利,极端行情(如单日 20%+ 下跌)可能导致较大亏损
  2. 技术风险:网络延迟、API限流可能影响策略执行,建议使用低延迟服务器
  3. 资金风险:请使用闲置资金,切勿过度重仓
  4. 代码风险:本项目为业余时间独立开发,当前版本功能稳定,建议使用者根据最新 API 文档进行适配

注意事项

  • 首次使用建议小资金测试(建议 < $100)
  • 定期检查策略运行状态和持仓情况(建议每日至少检查一次)
  • 注意交易所的 API 调用频率限制(Gate.io 限制为 100次/秒)
  • 建议在云服务器上运行,保证网络稳定性
  • 重要操作前请备份策略配置和日志文件

日志与数据

  • 系统交易日志:保存在 trading_logs/ 目录
  • 交易策略状态:保存在 trading_statistics/ 目录
  • 已结束策略:保存在 settled_strategies/ 目录

开发说明

添加新策略

  1. LightQuant/strategy/GateAnalyzer/ 创建策略类,继承 Analyzer
  2. 实现 on_ticker_update()on_order_update() 回调方法
  3. LightQuant/ui/stg_param_widgets/ 创建参数配置界面
  4. MainWindow.py 中注册新策略

添加新交易所

  1. LightQuant/hands/ 创建 Executor 实现类
  2. 实现必要的接口方法(下单、撤单、查询等)
  3. 适配 Protocol 通信协议
  4. MainWindow.py 中注册新接口

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。


免责声明

本软件仅供学习和研究使用。使用本软件进行实盘交易的一切后果由使用者自行承担,开发者不承担任何责任。加密货币交易存在高风险,请谨慎决策。


开发环境:Python 3.10.10
推荐服务器:AWS t3a.medium
最后更新:2024年

About

LightQuant项目公开版本的代码,LightQuant project for standard server (t3a.m), 适用于标准服务器的基础版量化交易系统,包括简单网格策略,智能调仓策略,高频网格策略,仅支持Gate合约

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages