https://github.com/tubexchat/binance_tradingbot
负资金费率套利策略的币安合约自动化交易机器人
https://github.com/tubexchat/binance_tradingbot
binance trading tradingbot
Last synced: 2 months ago
JSON representation
负资金费率套利策略的币安合约自动化交易机器人
- Host: GitHub
- URL: https://github.com/tubexchat/binance_tradingbot
- Owner: tubexchat
- License: apache-2.0
- Created: 2025-07-06T06:18:21.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2026-03-28T07:11:03.000Z (3 months ago)
- Last Synced: 2026-03-28T12:25:35.704Z (3 months ago)
- Topics: binance, trading, tradingbot
- Language: Python
- Homepage: https://q.tubex.chat
- Size: 82 KB
- Stars: 17
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README-CN.md
- License: LICENSE
Awesome Lists containing this project
README
# 🤖 Binance AI Trading Bot
一个基于负资金费率套利策略的币安合约自动化交易机器人,采用多指标融合分析,支持24/7不间断自动交易。
[](https://python.org)
[](LICENSE)
[](https://binance.com)
## 📋 目录
- [项目介绍](#项目介绍)
- [交易策略](#交易策略)
- [核心功能](#核心功能)
- [快速开始](#快速开始)
- [配置说明](#配置说明)
- [使用方法](#使用方法)
- [项目结构](#项目结构)
- [监控管理](#监控管理)
- [风险提示](#风险提示)
- [故障排除](#故障排除)
## 🎯 项目介绍
这是一个专为币安合约市场设计的智能交易机器人,主要利用负资金费率进行套利交易。机器人采用多指标综合分析,包括资金费率、MACD、多空比和成交量等,实现全自动化的开仓和平仓操作。
### 核心特性
- 🎯 **负资金费率套利**: 专注于负资金费率机会,获取资金费用收益
- 🔄 **全自动交易**: 自动扫描、开仓、平仓,无需人工干预
- 📊 **多指标分析**: 结合MACD、多空比、成交量等多个指标
- 🛡️ **风险控制**: 智能止损、黑名单、杠杆控制等安全机制
- 📈 **实时监控**: 完整的账户和持仓监控系统
- 🔧 **灵活配置**: 支持环境变量和命令行参数配置
- 🚀 **后台运行**: 支持nohup后台运行,SSH断开后继续工作
## 📊 交易策略
### 做多开仓条件(需同时满足)
```
✅ 资金费率 < -0.1%(负资金费率)
✅ 24小时交易量 > 6000万 USDT
✅ MACD日级慢线 > 0(日线趋势向上)
✅ 多空比 < 1(空头占优势)
✅ 24小时涨跌幅 > 0(当日上涨)
✅ 资金费率结算时间为1小时(高频结算)
✅ 剔除资金费率为0的合约
```
### 平仓条件
```
📈 当持仓合约不符合开仓条件时自动平仓:
• 资金费率 ≥ -0.1%(负资金费率减弱或转正)
• 24小时涨跌幅 ≤ 0(转为下跌)
• 资金费率结算时间不再是1小时
⏰ 独立监控线程每5分钟检查一次持仓
🔄 自动平仓,无需人工干预
```
### 策略逻辑
1. **负资金费率套利**: 当资金费率为负时,做多可以获得资金费用收益
2. **多指标筛选**: 确保选择的标的具有良好的技术面和市场结构
3. **风险控制**: 通过杠杆限制、黑名单等机制控制风险
4. **动态监控**: 实时监控资金费率变化,及时平仓
## 🚀 核心功能
### 自动化交易
- ✅ 负资金费率扫描和筛选
- ✅ 多指标技术分析(MACD、多空比、成交量)
- ✅ 自动开仓和平仓
- ✅ 动态杠杆和保证金管理
- ✅ 黑名单过滤功能
### 账户管理
- ✅ 实时账户信息查询
- ✅ 持仓和订单监控
- ✅ 批量保证金模式设置
- ✅ 交易历史记录查看
### 系统监控
- ✅ 详细日志记录
- ✅ 进程状态监控
- ✅ 实时性能数据
- ✅ 异常告警和处理
## 🛠 快速开始
### 环境要求
- Python 3.8+
- 币安合约账户
- API密钥(需要合约交易权限)
### 1. 克隆项目
```bash
git clone https://github.com/your-username/binance-ai-bot.git
cd binance-ai-bot
```
### 2. 安装依赖
```bash
pip3 install -r requirements.txt
```
### 3. 配置API密钥
创建 `.env` 文件:
```env
# 币安API配置(必需)
BINANCE_API_KEY=your_api_key_here
BINANCE_API_SECRET=your_api_secret_here
# 交易参数(可选)
TRADE_AMOUNT=100
LEVERAGE=2
MONITOR_INTERVAL=300
POSITION_CHECK_INTERVAL=300
# 黑名单设置(可选)
BLACKLIST_SYMBOLS=LUNAUSDT,USTCUSDT
# 测试环境(可选)
USE_TESTNET=false
```
### 4. 设置保证金模式
```bash
# 首次使用前必须设置为全仓模式
python3 setup_margin_modes.py
```
### 5. 启动机器人
```bash
# 方式一:使用启动脚本(推荐)
./start_bot.sh
# 方式二:直接运行
python3 auto_trading_bot.py
```
## ⚙️ 配置说明
### 环境变量配置
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| `BINANCE_API_KEY` | - | 币安API密钥(必需) |
| `BINANCE_API_SECRET` | - | 币安API密钥(必需) |
| `TRADE_AMOUNT` | 100 | 每次交易金额(USDT) |
| `LEVERAGE` | 2 | 杠杆倍数 |
| `MONITOR_INTERVAL` | 300 | 监控间隔(秒) |
| `POSITION_CHECK_INTERVAL` | 300 | 持仓检查间隔(秒) |
| `BLACKLIST_SYMBOLS` | - | 黑名单交易对(逗号分隔) |
| `USE_TESTNET` | false | 是否使用测试网 |
### 命令行参数
```bash
python3 auto_trading_bot.py --help
可选参数:
--amount AMOUNT 每次交易金额(USDT,默认100)
--leverage LEVERAGE 杠杆倍数(默认2)
--interval INTERVAL 监控间隔(秒,默认300)
--position-check-interval INTERVAL
持仓检查间隔(秒,默认300)
--testnet 使用测试网
```
## 💻 使用方法
### 方式一:脚本管理(推荐)
```bash
# 启动机器人
./start_bot.sh
# 检查运行状态
./check_bot.sh
# 停止机器人
./stop_bot.sh
```
### 方式二:交互式运行
```bash
# 使用默认参数
python3 auto_trading_bot.py
# 自定义参数
python3 auto_trading_bot.py --amount 50 --leverage 5
```
### 方式三:后台运行
```bash
# 使用nohup后台运行
nohup python3 run_auto_trading.py > trading.log 2>&1 &
```
### 方式四:账户监控
```bash
# 查看账户信息
python3 main.py
# 调试持仓检查
python3 debug_position_check.py
```
## 📁 项目结构
```
binancebot-long-lewis/
├── main.py # 核心API和交易逻辑
├── auto_trading_bot.py # 交互式启动脚本
├── run_auto_trading.py # 后台运行脚本
├── setup_margin_modes.py # 保证金模式设置工具
├── debug_position_check.py # 持仓检查调试工具
├── start_bot.sh # 启动脚本
├── stop_bot.sh # 停止脚本
├── check_bot.sh # 状态检查脚本
├── requirements.txt # 依赖列表
├── .env # 环境变量配置
└── logs/ # 日志目录
├── bot.pid # 进程ID文件
└── trading_bot_*.log # 交易日志
```
## 📈 监控管理
### 实时监控
```bash
# 查看实时日志
tail -f logs/trading_bot_*.log
# 检查进程状态
./check_bot.sh
# 查看系统进程
ps aux | grep python3
```
### 日志分析
日志文件包含以下信息:
- 交易信号和决策过程
- 开仓和平仓记录
- 账户余额变化
- 错误和异常信息
- 性能统计数据
### 性能监控
```bash
# 查看账户摘要
python3 main.py
# 获取持仓信息
python3 -c "from main import BinanceAccountMonitor; m = BinanceAccountMonitor(); m.print_positions()"
```
## 🔧 API功能
### BinanceFuturesAPI类
```python
from main import BinanceFuturesAPI
# 初始化API
api = BinanceFuturesAPI()
# 获取账户信息
account = api.get_account_info()
positions = api.get_positions()
balance = api.get_balance()
# 交易操作
api.place_order(symbol='BTCUSDT', side='BUY', order_type='MARKET', quoteOrderQty=100)
api.close_position('BTCUSDT')
api.set_leverage('BTCUSDT', 5)
# 市场数据
funding_rates = api.get_funding_rates()
klines = api.get_klines('BTCUSDT', '1d')
```
### AutoTradingBot类
```python
from main import AutoTradingBot
# 初始化交易机器人
bot = AutoTradingBot()
# 设置交易参数
bot.trade_amount = 100
bot.leverage = 5
# 启动监控
bot.start_monitoring()
```
## ⚠️ 风险提示
### 交易风险
- 📊 **市场风险**: 合约交易存在价格波动风险
- 💰 **杠杆风险**: 杠杆交易会放大盈亏
- 🔄 **资金费率风险**: 资金费率可能快速变化
- 📉 **技术风险**: 指标失效或网络问题
### 使用建议
1. **小额测试**: 首次使用建议小额测试
2. **合理杠杆**: 不要使用过高杠杆倍数
3. **监控止损**: 定期检查持仓和账户状态
4. **备用方案**: 准备手动止损方案
5. **资金管理**: 不要投入全部资金
### 免责声明
本项目仅供学习和研究使用,不构成投资建议。使用者需要承担所有交易风险,作者不对任何损失负责。
## 🔍 故障排除
### 常见问题
1. **API连接失败**
```bash
# 检查API密钥配置
cat .env | grep BINANCE_API
# 测试API连接
python3 -c "from main import BinanceFuturesAPI; api = BinanceFuturesAPI(); print(api.get_account_info())"
```
2. **保证金模式错误**
```bash
# 重新设置保证金模式
python3 setup_margin_modes.py
```
3. **机器人启动失败**
```bash
# 查看详细日志
tail -50 logs/trading_bot_*.log
# 检查进程状态
./check_bot.sh
```
4. **权限问题**
```bash
# 添加执行权限
chmod +x *.sh
```
### 调试命令
```bash
# 测试API连接
python3 -c "from main import BinanceFuturesAPI; api = BinanceFuturesAPI(); print('API连接成功')"
# 检查黑名单配置
python3 -c "from main import AutoTradingBot; bot = AutoTradingBot(); bot.debug_blacklist()"
# 查看资金费率
python3 -c "from main import BinanceFuturesAPI; api = BinanceFuturesAPI(); api.debug_funding_rates()"
```