基于 Gate.io API 的智能网格交易机器人,集成 LSTM 神经网络价格预测,实现自动化动态网格交易。
- 动态网格交易:根据实时市场波动率自动调整网格上下限和间距
- LSTM 价格预测:利用深度学习模型预测下一时间段价格,辅助网格参数决策
- 智能风控:内置止损机制与最大持仓量限制,防止过度亏损
- 自动重试:网络请求失败时采用指数退避策略自动重试
- 代理支持:支持 HTTP / SOCKS5 代理,适配网络受限环境
- 性能统计:实时记录总盈亏、交易次数、胜率等关键指标
gateioTradingBot/
├── main.py # 程序入口,使用固定配置启动机器人
├── example.py # 示例:结合 LSTM 预测动态启动机器人
├── config.py # 配置文件(从 .env 读取 API 密钥)
├── grid_trading_bot.py # 核心网格交易逻辑
├── data_analysis.py # LSTM 价格预测模型
├── grid_strategy.py # 基于预测价格的网格参数计算策略
├── requirements.txt # 依赖列表
├── .env.example # 环境变量模板
└── .gitignore
网格交易核心类,主要功能:
| 方法 | 说明 |
|---|---|
create_grid_orders() |
在网格各价位创建买单和卖单 |
check_and_update_orders() |
轮询检查已成交订单,触发网格重建 |
adjust_grid_parameters() |
根据实时波动率动态调整网格区间 |
check_stop_loss() |
监控浮动亏损,超过阈值触发止损 |
check_position_limit() |
控制最大持仓量,防止过度建仓 |
calculate_volatility() |
基于历史价格序列计算价格波动率 |
LSTM 价格预测器:
- 通过 Gate.io API 拉取最近 N 天的 4 小时 K 线数据
- 使用 MinMaxScaler 归一化处理,构建时序训练集
- 训练双层 LSTM 模型(hidden_size=50),预测下一个时间段收盘价
- 支持 GPU 加速(自动检测 CUDA)
基于预测价格智能计算网格参数:
- 以当前价格与预测价格构建价格区间
- 自动在区间两侧各留 10% 缓冲空间
- 当网格间距过小(< 0.1%)时自动减少网格数量,保证每格有足够利润空间
pip install -r requirements.txt复制环境变量模板并填入你的 Gate.io API 信息:
cp .env.example .env编辑 .env:
API_KEY=your_gate_io_api_key_here
API_SECRET=your_gate_io_api_secret_here
Gate.io API Key 获取路径:登录 Gate.io → 账户设置 → API 管理 → 创建 API Key(需开启现货交易权限)
编辑 config.py:
SYMBOL = "ETH_USDT" # 交易对
UPPER_PRICE = 4000 # 网格上限价格(USDT)
LOWER_PRICE = 3500 # 网格下限价格(USDT)
GRID_NUMBER = 10 # 网格数量
QUANTITY = 0.01 # 每格交易数量(ETH)方式一:固定参数启动
python main.py方式二:LSTM 预测参数启动(推荐)
python example.py价格
↑
4000 ─── 卖单 (Sell)
3950 ─── 卖单 (Sell)
3900 ─── 卖单 (Sell)
3850 ─── 当前价格
3800 ─── 买单 (Buy)
3750 ─── 买单 (Buy)
3700 ─── 买单 (Buy)
...
3500 ─── 买单 (Buy)
价格每下跌一格触发买入,每上涨一格触发卖出,在震荡行情中持续低买高卖获利。
- 本项目仅供学习与研究,不构成任何投资建议
- 网格策略适合震荡行情,单边趋势行情(持续下跌)可能造成亏损
- 请在充分了解风险的前提下使用真实资金
- 建议先在小资金下测试,确认策略稳定后再增加仓位
| 依赖 | 版本要求 | 用途 |
|---|---|---|
| gate-api | >=4.0.0 | Gate.io 官方 API SDK |
| python-dotenv | >=1.0.0 | 读取 .env 配置文件 |
| requests | >=2.31.0 | HTTP 请求 |
| pandas | >=2.0.0 | 数据处理 |
| torch | >=2.0.0 | LSTM 神经网络 |
| scikit-learn | >=1.3.0 | 数据归一化 |
Python 版本要求:3.8+
MIT