# Futures **Repository Path**: fox_hu/futures ## Basic Information - **Project Name**: Futures - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Binance Futures Auto Trading System 基于 Binance Futures 的自动化合约交易系统,支持 Demo 模拟盘和实盘交易。系统通过 WebSocket 实时接收行情数据,利用自适应策略引擎识别市场状态并切换交易策略,配合动态风控实现全自动交易。 ## 功能特性 - **自适应策略引擎** — 自动识别市场状态(趋势/震荡/高波动/低波动),动态切换 MA交叉策略 和 RSI+布林带均值回归策略 - **4层信号过滤** — ADX趋势过滤 + 成交量确认 + ATR波动过滤 + MA间距过滤,有效减少假突破 - **动态风控** — 基于 ATR 的动态止损止盈,根据市场波动自动调整仓位比例 - **MA50 趋势偏移** — 均值回归策略增加中期趋势方向过滤,避免逆势交易 - **WebSocket 实时行情** — K线 + Ticker 双流订阅,自动重连 - **Web 仪表盘** — FastAPI + SSE 实时推送,持仓/K线/盈亏/风控一页掌握 - **Telegram 通知** — 开仓/平仓/风控事件实时推送 - **PostgreSQL 持久化** — 持仓、订单、成交、策略信号、资金快照、风控日志全部落库 ## 系统架构 ``` Binance API (REST + WebSocket) │ TradingBot (main.py) │ ┌────┼────────────┐ │ │ │ BinanceWS AdaptiveEngine RiskManager │ │ │ │ ┌────┴────┐ │ │ │ │ │ │ MAStrategy MeanRevert│ │ │ │ │ │ └────┬────┘ │ │ │ │ │ OrderManager PositionManager │ │ │ └────┬────┘──────────────┘ │ Database (PostgreSQL) │ Web Dashboard (FastAPI) ``` ## 目录结构 ``` Futures/ ├── main.py # 主入口 + TradingBot 核心 ├── config/ │ └── settings.py # 配置管理 (dotenv) ├── exchange/ │ └── binance_ws.py # WebSocket 实时行情 ├── strategy/ │ ├── adaptive_engine.py # 自适应策略引擎 (调度) │ ├── market_state.py # 市场状态识别 │ ├── ma_strategy.py # MA交叉策略 (趋势) │ └── mean_revert_strategy.py # RSI+布林带策略 (震荡) ├── risk/ │ └── risk_manager.py # 风控管理 ├── order/ │ └── order_manager.py # 订单管理 ├── position/ │ └── position_manager.py # 持仓 + 余额查询 ├── database/ │ └── db.py # PostgreSQL 数据库 ├── web/ │ ├── api.py # FastAPI 路由 │ ├── db.py # Web层连接池 │ └── static/ # 前端 (HTML/JS/CSS) ├── utils/ │ └── __init__.py # Telegram通知 + 工具函数 ├── requirements.txt # Python依赖 ├── restart.sh # 重启脚本 ├── .env.example # 环境变量模板 └── ARCHITECTURE.md # 架构文档 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入配置: ```env # 交易所 BINANCE_API_KEY=your_api_key BINANCE_API_SECRET=your_api_secret USE_TESTNET=true PROXY=http://127.0.0.1:7890 # 交易 SYMBOL=BTC/USDT TIMEFRAME=5m LEVERAGE=1 # 风控 STOP_LOSS_PCT=0.01 TAKE_PROFIT_PCT=0.02 POSITION_SIZE_PCT=0.05 MAX_CONSECUTIVE_LOSSES=3 DAILY_LOSS_LIMIT_PCT=0.10 # 数据库 DB_HOST=localhost DB_NAME=futures DB_USER=trader DB_PASSWORD=your_password ``` ### 3. 启动 ```bash python main.py --web ``` 访问 `http://localhost:8000` 查看 Web 仪表盘。 ### 4. 服务器部署 (systemd) ```bash # 创建服务 sudo tee /etc/systemd/system/futures.service << 'EOF' [Unit] Description=Futures Trading System After=network.target [Service] Type=simple WorkingDirectory=/home/Futures ExecStart=/usr/local/bin/python3.11 main.py --web Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF sudo systemctl enable futures sudo systemctl start futures ``` ## 策略说明 ### 自适应引擎 系统根据 ADX、ATR、波动率、成交量等指标自动识别4种市场状态: | 市场状态 | 策略 | 仓位 | 止损 | 止盈 | |---------|------|------|------|------| | 趋势 | MA交叉 | 5% | 2×ATR | 4×ATR | | 高波动 | MA交叉 | 3% | 3×ATR | 5×ATR | | 震荡 | RSI+布林带 | 2% | 1.5×ATR | 2.5×ATR | | 低波动 | 停止交易 | 0% | - | - | ### MA交叉策略(趋势行情) MA5/MA20 交叉信号,含4层过滤: 1. ADX < 20 → 禁止(震荡行情) 2. 成交量 < 50% 均量 → 禁止(量能不足) 3. ATR < 60% 均值 → 禁止(低波动) 4. MA间距 < 0.015% → 禁止(均线缠绕噪音) ### 均值回归策略(震荡行情) - RSI < 30 + 触及布林带下轨 → 做多 - RSI > 70 + 触及布林带上轨 → 做空 - MA50 趋势偏移过滤:下跌趋势禁止做多,上涨趋势禁止做空 ## 风控系统 | 功能 | 默认值 | |------|--------| | 固定止损 | 1% | | 固定止盈 | 2% | | 单次仓位限制 | 5% | | 连续亏损停机 | 3次 | | 日亏损停机 | 10% | ## Web API | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/status` | 系统状态 + 市场状态 | | GET | `/api/position` | 当前持仓 | | GET | `/api/balance` | 账户余额 | | GET | `/api/klines` | K线数据 | | GET | `/api/trades` | 成交记录 | | GET | `/api/stats` | 盈亏统计 | | GET | `/api/stream` | SSE 实时推送 | | POST | `/api/start` | 启动机器人 | | POST | `/api/stop` | 停止机器人 | | POST | `/api/close` | 手动平仓 | ## 技术栈 - **Python 3.11** — 主语言 - **FastAPI + Uvicorn** — Web 服务 - **PostgreSQL** — 数据存储 - **WebSocket** — 实时行情 (websocket-client) - **Requests** — REST API 调用 (Demo模式绕过ccxt直连) - **Loguru** — 日志 - **Lightweight Charts** — K线图表 ## 注意事项 - Demo 模式完全绕过 ccxt,使用直连 API + HMAC 签名 - 中国大陆服务器需要配置代理访问 Binance API - 建议先用 Demo 模式 (`USE_TESTNET=true`) 充分测试后再切换实盘 - 本项目仅供学习交流,实盘交易风险自担 ## License MIT