| binance_client.py | ||
| config.example.py | ||
| config.py | ||
| cursor_binance_automated_trading_system.md | ||
| main.py | ||
| market_scanner.py | ||
| position_manager.py | ||
| README.md | ||
| requirements.txt | ||
| risk_manager.py | ||
| strategy.py | ||
币安自动交易系统 (Binance Automated Trading System)
基于币安API的Python自动交易系统,实现自动发现涨跌幅最大的货币对并执行交易策略。
功能特性
- 自动市场扫描:每5分钟扫描所有USDT永续合约,发现涨跌幅最大的前10个货币对
- 智能交易:顺着波动方向自动下单(涨幅做多,跌幅做空)
- 严格仓位控制:
- 单笔最大仓位:账户余额的5%
- 总仓位上限:账户余额的30%
- 单笔最小仓位:账户余额的1%
- 风险控制:
- 自动止损:3%
- 自动止盈: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依赖
pip install -r requirements.txt
2. 配置API密钥
有两种方式配置API密钥:
方式1:环境变量(推荐)
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密钥:
BINANCE_API_KEY = 'your_api_key'
BINANCE_API_SECRET = 'your_api_secret'
USE_TESTNET = True # 测试网模式
3. 调整交易参数(可选)
编辑 config.py 中的 TRADING_CONFIG 字典,根据你的需求调整参数:
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%
# ... 更多参数
}
使用方法
启动交易系统
python main.py
停止交易系统
按 Ctrl+C 停止程序。
交易策略说明
1. 市场扫描
- 每5分钟扫描一次市场
- 获取所有USDT永续合约交易对
- 计算5分钟涨跌幅
- 过滤条件:
- 涨跌幅 >= 2%
- 24小时成交量 >= 1000万USDT
- 选择涨跌幅绝对值最大的前10个货币对
2. 交易执行
- 做多:涨幅 > 阈值时买入
- 做空:跌幅 > 阈值时卖出
- 默认杠杆:10倍
- 使用市价单快速成交
3. 风险控制
- 仓位控制:严格限制单笔和总仓位
- 止损止盈:自动设置止损和止盈价格
- 成交量确认:只交易成交量大的币对
- 趋势确认:结合15分钟K线确认趋势
4. 持仓管理
- 实时监控持仓价格
- 自动触发止损止盈
- 定期打印持仓摘要
注意事项
⚠️ 重要提示:
- 测试网模式:首次使用建议开启测试网模式(
USE_TESTNET=True)进行测试 - API权限:确保API密钥具有合约交易权限,但不要开启提币权限
- 资金安全:建议先用小额资金测试,确认策略符合预期后再增加资金
- 风险提示:加密货币交易存在高风险,可能导致资金损失,请谨慎使用
- 网络稳定:确保网络连接稳定,避免因网络问题导致订单异常
日志
程序运行日志会同时输出到:
- 控制台(标准输出)
- 日志文件:
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:初始版本,实现基础自动交易功能