Files
crypto_monitor/crypto_monitor_binance/README.md
T
2026-05-12 18:27:35 +08:00

80 lines
3.3 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.
# crypto_monitor_binance
基于 **Flask** 的加密货币 **下单监控 / 关键位监控 / 交易复盘** 小系统,行情与实盘接口统一走 **BinanceUSDT-M 永续)**,通过 **ccxt** 访问。
## 功能概要
- **关键位监控**:价格与硬条件校验、企业微信推送(可选)
- **下单监控**:本地风控(含移动保本逻辑)、触达止盈/止损后尝试市价平仓并记账
- **实盘(可选)**`LIVE_TRADING_ENABLED=true` 且配置 `BINANCE_API_KEY` / `BINANCE_API_SECRET` 时,支持合约开仓、平仓、余额读取与内部划转(依赖 API 权限)
- **止盈止损(Binance)**:市价成交后挂 **`STOP_MARKET`**(止损)、**`TAKE_PROFIT_MARKET`**(止盈);双向持仓带 `positionSide`;不显式传 `reduceOnly`(避免 API `-1106`)。触发参考价由 `BINANCE_TRIGGER_WORKING_TYPE` 控制(最新价 / 标记价)
## 环境要求
- Python 3.10+(建议)
- 依赖:`flask``requests``ccxt``werkzeug``Pillow`(K 线图可选);经 SOCKS 代理时需 **`PySocks`**
安装示例:
```bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install flask requests ccxt werkzeug PySocks Pillow
```
页面上的 **「当日资金(交易账户)」** 与 **「可开仓」可用 U** 仅统计 **Binance U 本位永续合约账户**`fetch_balance``swap` / FAPI `assets` 中的 USDT),**不会**再用现货余额顶替。
## 配置说明(`.env`
项目启动时会加载**项目根目录**下的 `.env`。与 Binance 相关的常用变量:
| 变量 | 说明 |
|------|------|
| `BINANCE_API_KEY` / `BINANCE_API_SECRET` | 币安 API(需合约等权限) |
| `LIVE_TRADING_ENABLED` | `true` 时允许真实下单;`false` 仅本地逻辑 |
| `BINANCE_MARGIN_MODE` | `cross` 全仓 / `isolated` 逐仓 |
| `BINANCE_POSITION_MODE` | `hedge` 双向(需账户开启双向持仓)/ `oneway` 单向 |
| `BINANCE_TRIGGER_WORKING_TYPE` | `CONTRACT_PRICE``MARK_PRICE`(条件单触发参考) |
| `BINANCE_SOCKS_PROXY` / `BINANCE_HTTP_PROXY` | 可选代理(与部署文档一致) |
| `EXCHANGE_DISPLAY_NAME` | 页面展示的交易所名称,默认 `Binance` |
| `BINANCE_ACCOUNT_LABEL` | 推送文案中的账户备注 |
其余变量(登录、企业微信、风控参数、数据库路径等)见仓库内 **`.env` 示例注释** 或 `app.py` 顶部默认值。
## 本地运行
**WindowsUTF-8 控制台)** 可使用:
```powershell
.\start_utf8.ps1
```
或直接:
```powershell
python .\app.py
```
默认监听端口由 `.env``APP_PORT` 决定(未设置时多为 `5000`)。
## 部署(Linux / PM2 / SSH SOCKS
详见 **[部署文档.md](./部署文档.md)**Ubuntu + PM2 + 可选 SOCKS 访问 Binance)。
## 自检脚本
```bash
python scripts/verify_binance_funding.py
```
用于核对 Key 前缀(不含 Secret)并尝试读取资金钱包 / 合约钱包 USDT(需网络与 API 权限)。
## 数据与脚本
- 默认 SQLite`crypto.db`(路径由 `DB_PATH` 指定)
- `scripts/fix_breakeven_labels.py`:批量修正「止损」但盈亏为正的记录标签(见部署文档附录)
## 风险与合规
实盘交易有亏损风险。请自行确认 API 权限、IP 白名单、杠杆与保证金模式与币安账户设置一致,并遵守当地法律法规与 Binance 用户协议。