异步量化交易管理平台
LightQuant 是一个面向 Web3 中心化交易所的量化交易系统,支持多并发策略、低延迟行情处理和高容错性设计。系统采用全异步架构,基于 Python 3.10+ 开发,提供完整的策略管理、订单执行和风险控制能力,已在 Gate.io 合约与现货杠杆市场经过实盘验证。
采用 asyncio 事件循环处理底层网络 I/O,通过 PyQt5 信号槽机制与 UI 线程通信,将行情数据处理与界面渲染分离,避免阻塞主线程。Executor 运行在独立事件循环中,通过自定义 Protocol 与策略层交互,支持多策略并发运行。系统可稳定接收 Ticker 更新与订单簿推送,支持较高频率的行情更新处理。
技术实现:
- 底层 Executor 运行在独立 asyncio 事件循环中
- 通过自定义 Protocol 实现系统内部通信
- 支持多策略并发运行
基于 Preserver 模块和独立进程监控机制,实现策略状态的恢复。系统会定期将网格状态、持仓信息、订单信息等关键数据序列化到本地,配合 PIDmonitor 进程守护,即使遇到以下异常情况也能快速恢复:
- 交易所 WebSocket 连接断开
- 服务器意外重启或程序崩溃
- API 限流导致的临时中断
核心价值:确保策略交易的连续性与资金安全,避免因程序中断导致的策略失效或平仓风险。恢复过程全自动化,无需重新配置参数。
针对加密货币期货合约的高波动特性,设计了多层次风控逻辑:
- 动态仓位调整:根据市场价格和账户杠杆,实时计算网格密度与单笔下单量
- 动态网格保护:随价格上涨,设置阶梯式网格下限,避免因插针导致仓位过重
- 资金利用率提示:计算并显示保证金占用比例,为交易决策提供数据支持(注:系统提供风险提示)
- 预留风控接口:针对止损机制、API 限流、订单簿深度检查等功能预留了扩展接口,支持后续迭代接入
项目主要代码位于 LightQuant 目录,采用三层模块化设计,各层职责清晰,便于横向扩展:
位于 LightQuant/hands/ 目录,负责与交易所 API 对接的底层实现。
- GateFuturesExecutor.py - Gate.io U本位合约交易接口
- GateMarginExecutor.py - Gate.io 现货杠杆交易接口
主要功能:
- WebSocket 实时行情订阅(Ticker、订单簿、成交数据)
- 订单管理(限价单、市价单、POC订单)
- 批量下单与撤单
- 仓位查询与杠杆调整
- 账户资金查询
扩展性设计:通过自定义的 Protocol 通信协议,Executor 层与上层策略完全分离。新增交易所接口(如 Binance)时,只需实现统一的接口规范,无需修改策略代码。目前 BinanceAnalyzer 目录已预留。
位于 LightQuant/strategy/ 目录,实现各类量化交易策略。所有策略继承自 Analyzer 基类,复用核心逻辑。
- ArithmeticGridFutures.py - 等差网格策略(合约)
- SmartGridFutures.py - 智能网格策略(合约)
- SmartFundGridFutures.py - 智能资金网格策略(合约)
- ArithmeticGridMargin.py - 等差网格策略(现货杠杆)
策略特点:
- 支持网格交易、自动化套利、动态调仓等多种策略类型
- 适用于非极端单边市场
- 支持挂单触发、仓位动态调整
- 实时盈亏统计
位于 LightQuant/ui/ 目录,基于 PyQt5 开发的 深色/浅色 主题图形化交易界面。
界面功能:
- 策略创建、启动、停止、恢复
- 实时显示持仓、盈亏、订单状态
- 策略参数可视化配置(支持参数校验与预设模板)
- 交易日志输出
负责与交易所通信,处理订单执行、行情订阅等底层操作。采用 asyncio 异步架构,支持高并发订单处理,单实例可同时管理 50+ 活跃订单。
策略逻辑的核心,负责市场分析、信号生成、订单决策。每个策略继承自 Analyzer 基类,复用行情处理、订单管理、状态持久化等通用逻辑,开发新策略只需关注交易信号生成部分。
交易日志记录,保存策略运行过程中的关键信息(开仓/平仓/调仓事件、盈亏变化、异常告警),便于回溯分析与策略优化。
策略状态持久化,支持策略意外中断后的一键恢复功能。保存内容包括:网格配置、当前持仓、未完成订单、累计盈亏等。
- 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)
- 克隆项目
git clone https://github.com/Nano-Li/LightQuant-public.git
cd LightQuant-public- 安装依赖
pip install -r requirements.txt- 配置 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.pypython monitor/PIDmonitor.py进程监控工具可以在主程序异常退出时发送钉钉通知,并自动尝试重启。
- 启动程序后,点击"新建策略"
- 选择交易所接口(Gate 现货/合约)
- 输入 API 密钥或选择配置文件
- 选择策略类型并配置参数(网格间距、杠杆倍数、止损阈值等)
- 点击"开始运行"启动策略
- 实时监控策略运行状态(持仓、盈亏、订单执行情况)
- 需要时可以手动停止策略或触发紧急平仓
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)- 代码框架已预留
通过在价格区间内设置多个买卖网格,利用市场波动进行价差套利,适合震荡上涨行情。
根据市场趋势自动调整仓位分布,在保持网格套利的同时捕捉趋势收益。支持网格动态平移,避免单边行情下的网格失效。
- 市场风险:量化策略无法保证盈利,极端行情(如单日 20%+ 下跌)可能导致较大亏损
- 技术风险:网络延迟、API限流可能影响策略执行,建议使用低延迟服务器
- 资金风险:请使用闲置资金,切勿过度重仓
- 代码风险:本项目为业余时间独立开发,当前版本功能稳定,建议使用者根据最新 API 文档进行适配
- 首次使用建议小资金测试(建议 < $100)
- 定期检查策略运行状态和持仓情况(建议每日至少检查一次)
- 注意交易所的 API 调用频率限制(Gate.io 限制为 100次/秒)
- 建议在云服务器上运行,保证网络稳定性
- 重要操作前请备份策略配置和日志文件
- 系统交易日志:保存在
trading_logs/目录 - 交易策略状态:保存在
trading_statistics/目录 - 已结束策略:保存在
settled_strategies/目录
- 在
LightQuant/strategy/GateAnalyzer/创建策略类,继承Analyzer - 实现
on_ticker_update()和on_order_update()回调方法 - 在
LightQuant/ui/stg_param_widgets/创建参数配置界面 - 在
MainWindow.py中注册新策略
- 在
LightQuant/hands/创建 Executor 实现类 - 实现必要的接口方法(下单、撤单、查询等)
- 适配 Protocol 通信协议
- 在
MainWindow.py中注册新接口
本项目采用 MIT 许可证,详见 LICENSE 文件。
本软件仅供学习和研究使用。使用本软件进行实盘交易的一切后果由使用者自行承担,开发者不承担任何责任。加密货币交易存在高风险,请谨慎决策。
开发环境:Python 3.10.10
推荐服务器:AWS t3a.medium
最后更新:2024年



