auto_trade_sys/README.md
薇薇安 1bb80ee0b0 a
2026-01-13 14:50:31 +08:00

183 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 币安自动交易系统 (Binance Automated Trading System)
基于币安API的Python自动交易系统实现自动发现涨跌幅最大的货币对并执行交易策略。
## 功能特性
1. **自动市场扫描**每5分钟扫描所有USDT永续合约发现涨跌幅最大的前10个货币对
2. **智能交易**:顺着波动方向自动下单(涨幅做多,跌幅做空)
3. **严格仓位控制**
- 单笔最大仓位账户余额的5%
- 总仓位上限账户余额的30%
- 单笔最小仓位账户余额的1%
4. **风险控制**
- 自动止损3%
- 自动止盈5%
- 成交量过滤:只交易成交量大的币对
- 趋势确认:结合多时间周期确认趋势
5. **实时监控**:持续监控持仓,自动执行止损止盈
## 项目结构
```
auto_trade_sys/
├── config.py # 配置文件API密钥、交易参数
├── binance_client.py # 币安客户端封装
├── market_scanner.py # 市场扫描器
├── risk_manager.py # 风险管理模块
├── position_manager.py # 仓位管理模块
├── strategy.py # 交易策略
├── main.py # 主程序入口
├── requirements.txt # Python依赖
└── README.md # 项目说明
```
## 安装步骤
### 1. 安装Python依赖
```bash
pip install -r requirements.txt
```
### 2. 配置API密钥
有两种方式配置API密钥
**方式1环境变量推荐**
```bash
export BINANCE_API_KEY="your_api_key"
export BINANCE_API_SECRET="your_api_secret"
export USE_TESTNET="True" # 测试网模式生产环境设为False
```
**方式2直接修改 config.py**
编辑 `config.py` 文件填入你的API密钥
```python
BINANCE_API_KEY = 'your_api_key'
BINANCE_API_SECRET = 'your_api_secret'
USE_TESTNET = True # 测试网模式
```
**⚠️ 重要API密钥权限配置**
确保你的API密钥已启用以下权限
-**启用读取** - 必须启用
-**启用合约交易** - 必须启用(关键!)
-**启用提币** - 不要启用(安全考虑)
如果遇到 `APIError(code=-2015)` 错误,请查看 [API_KEY_SETUP.md](API_KEY_SETUP.md) 获取详细解决方案。
### 3. 调整交易参数(可选)
编辑 `config.py` 中的 `TRADING_CONFIG` 字典,根据你的需求调整参数:
```python
TRADING_CONFIG = {
'MAX_POSITION_PERCENT': 0.05, # 单笔最大仓位5%
'MAX_TOTAL_POSITION_PERCENT': 0.30, # 总仓位上限30%
'MIN_CHANGE_PERCENT': 2.0, # 最小涨跌幅阈值2%
'STOP_LOSS_PERCENT': 0.03, # 止损3%
'TAKE_PROFIT_PERCENT': 0.05, # 止盈5%
# ... 更多参数
}
```
## 使用方法
### 启动交易系统
```bash
python main.py
```
### 停止交易系统
`Ctrl+C` 停止程序。
## 交易策略说明
### 1. 市场扫描
- 每5分钟扫描一次市场
- 获取所有USDT永续合约交易对
- 计算5分钟涨跌幅
- 过滤条件:
- 涨跌幅 >= 2%
- 24小时成交量 >= 1000万USDT
- 选择涨跌幅绝对值最大的前10个货币对
### 2. 交易执行
- **做多**:涨幅 > 阈值时买入
- **做空**:跌幅 > 阈值时卖出
- 默认杠杆10倍
- 使用市价单快速成交
### 3. 风险控制
- **仓位控制**:严格限制单笔和总仓位
- **止损止盈**:自动设置止损和止盈价格
- **成交量确认**:只交易成交量大的币对
- **趋势确认**结合15分钟K线确认趋势
### 4. 持仓管理
- 实时监控持仓价格
- 自动触发止损止盈
- 定期打印持仓摘要
## 注意事项
⚠️ **重要提示**
1. **测试网模式**:首次使用建议开启测试网模式(`USE_TESTNET=True`)进行测试
2. **API权限**确保API密钥具有合约交易权限但**不要**开启提币权限
3. **资金安全**:建议先用小额资金测试,确认策略符合预期后再增加资金
4. **风险提示**:加密货币交易存在高风险,可能导致资金损失,请谨慎使用
5. **网络稳定**:确保网络连接稳定,避免因网络问题导致订单异常
## 日志
程序运行日志会同时输出到:
- 控制台(标准输出)
- 日志文件:`trading_bot.log`
日志级别可通过环境变量 `LOG_LEVEL` 设置默认INFO
## 依赖库
- `python-binance==1.0.19`币安API客户端
- `websocket-client==1.6.1`WebSocket支持
- `aiohttp==3.9.1`异步HTTP客户端
## 常见问题
### Q: 如何查看当前持仓?
A: 程序运行时会定期打印持仓摘要,包含持仓数量、盈亏等信息。
### Q: 如何修改扫描间隔?
A: 修改 `config.py` 中的 `SCAN_INTERVAL` 参数(单位:秒)。
### Q: 支持其他交易所吗?
A: 当前版本仅支持币安,如需支持其他交易所,可以修改 `binance_client.py` 或使用 `ccxt` 库。
### Q: 如何回测策略?
A: 当前版本不支持回测,建议使用币安测试网进行实盘测试。
## 许可证
本项目仅供学习和研究使用,使用者需自行承担交易风险。
## 更新日志
- 2026-01-13初始版本实现基础自动交易功能