Go to file
薇薇安 1bb80ee0b0 a
2026-01-13 14:50:31 +08:00
.gitignore a 2026-01-13 14:31:10 +08:00
binance_client.py a 2026-01-13 14:50:31 +08:00
config.example.py a 2026-01-13 14:30:57 +08:00
config.py a 2026-01-13 14:50:31 +08:00
cursor_binance_automated_trading_system.md a 2026-01-13 14:30:57 +08:00
main.py a 2026-01-13 14:50:31 +08:00
market_scanner.py a 2026-01-13 14:30:57 +08:00
position_manager.py a 2026-01-13 14:30:57 +08:00
README.md a 2026-01-13 14:50:31 +08:00
requirements.txt a 2026-01-13 14:30:57 +08:00
risk_manager.py a 2026-01-13 14:30:57 +08:00
strategy.py a 2026-01-13 14:30:57 +08:00

币安自动交易系统 (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依赖

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  # 测试网模式

⚠️ 重要API密钥权限配置

确保你的API密钥已启用以下权限

  • 启用读取 - 必须启用
  • 启用合约交易 - 必须启用(关键!)
  • 启用提币 - 不要启用(安全考虑)

如果遇到 APIError(code=-2015) 错误,请查看 API_KEY_SETUP.md 获取详细解决方案。

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. 持仓管理

  • 实时监控持仓价格
  • 自动触发止损止盈
  • 定期打印持仓摘要

注意事项

⚠️ 重要提示

  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.1WebSocket支持
  • aiohttp==3.9.1异步HTTP客户端

常见问题

Q: 如何查看当前持仓?

A: 程序运行时会定期打印持仓摘要,包含持仓数量、盈亏等信息。

Q: 如何修改扫描间隔?

A: 修改 config.py 中的 SCAN_INTERVAL 参数(单位:秒)。

Q: 支持其他交易所吗?

A: 当前版本仅支持币安,如需支持其他交易所,可以修改 binance_client.py 或使用 ccxt 库。

Q: 如何回测策略?

A: 当前版本不支持回测,建议使用币安测试网进行实盘测试。

许可证

本项目仅供学习和研究使用,使用者需自行承担交易风险。

更新日志

  • 2026-01-13初始版本实现基础自动交易功能