# crypto_monitor_gate

基于 **Flask** 的加密货币 **下单监控 / 关键位监控 / 交易复盘** 小系统，行情与实盘接口统一走 **Gate.io USDT 永续**，通过 **ccxt** 访问。

## 文档导航

| 文档 | 说明 |
|------|------|
| **[使用说明.md](./使用说明.md)** | 日常怎么用：登录、关键位四类、手工开仓、单仓与微信等 |
| **[关键位自动下单说明.md](./关键位自动下单说明.md)** | 关键位自动开仓的 RR、止盈止损、结案原因与 `.env` |
| **[部署文档.md](./部署文档.md)** | Ubuntu、PM2、**SSH SOCKS** 访问 Gate API 等 |

另：**Binance U 本位** 对等实现见同级的 **`crypto_monitor_binance`** 仓库。

---

## 功能概要

- **关键位监控**：5m 收线硬条件、企业微信推送；**箱体 / 收敛** 在 RR 达标时可 **自动市价开仓**（见专门文档）；**阻力 / 支撑** 仅单次提醒结案
- **下单监控**：本地风控（含移动保本）、止盈/止损触达后轮询尝试平仓并记账
- **实盘（可选）**：`LIVE_TRADING_ENABLED=true` 且配置 **`GATE_API_KEY` / `GATE_API_SECRET`** 时，支持开仓、挂单 TP/SL、余额与划转（权限依账户而定）
- **止盈止损（Gate）**：市价成交后经 **`_gate_place_tp_sl_orders`** 挂单；优先 **仓位类 `price_orders`**（受 `GATE_TPSL_USE_POSITION_ORDER`、`GATE_TPSL_PRICE_TYPE`、`GATE_POS_MODE` 等影响）

---

## 环境要求

- Python 3.10+（建议）
- 依赖：`flask`、`requests`、`ccxt`、`werkzeug`、`PySocks`（经 SOCKS 代理时）；`Pillow`（K 线导出等可选用）

安装示例：

```bash
cd /opt/crypto_monitor/crypto_monitor_gate
source .venv/bin/activate
pip install -r ../requirements.txt
```

## 配置（`.env.example` → `.env`）

- **`.env.example`**：模板（可提交 Git）；首次：`cp .env.example .env` 后编辑。
- **`.env`**：本机真实配置（勿提交）；`git pull` 不覆盖；升级前建议备份（见《部署文档》§5.2）。

项目启动时加载**仓库根目录**下的 `.env`。常用项：

| 变量 | 说明 |
|------|------|
| `GATE_API_KEY` / `GATE_API_SECRET` | Gate API（需合约与对应权限） |
| `LIVE_TRADING_ENABLED` | `true` 允许真实下单；`false` 仅本地与推送逻辑 |
| `GATE_MARGIN_MODE` / `GATE_POS_MODE` | 保证金与持仓模式 |
| `GATE_TPSL_USE_POSITION_ORDER` / `GATE_TPSL_PRICE_TYPE` 等 | 条件止盈止损行为 |
| `GATE_SOCKS_PROXY` | 可选；直连不稳时 SSH 动态转发（详见部署文档） |
| `APP_PASSWORD` / `FLASK_SECRET_KEY` | Web 登录与 Session |
| `WECHAT_WEBHOOK` | 企业微信机器人 |
| `EXCHANGE_DISPLAY_NAME` / `GATE_ACCOUNT_LABEL` | 页面与推送展示的账户文案 |

其余见 **`.env.example` 内注释** 或 **`app.py` 顶部默认值**。

## 运行

生产使用 **PM2**（`ecosystem.config.cjs`）。调试：

```bash
source .venv/bin/activate && python app.py
```

见 [docs/ubuntu-server.md](../docs/ubuntu-server.md)。

端口由 **`APP_PORT`** 控制（未设置默认 **5000**）。浏览器登录 **`/login`**，口令为 **`APP_PASSWORD`**。

## 部署（Linux / PM2 / SSH SOCKS）

见 **[部署文档.md](./部署文档.md)**。

## 自检脚本

```bash
python scripts/verify_gate_funding.py
```

用于核对密钥前缀（不落 Secret）、资金/合约可读性等（需网络与权限）。

## 数据与脚本

- 默认 SQLite：由 **`DB_PATH`** 指定（常见为项目下 `crypto.db`）
- `scripts/fix_breakeven_labels.py`：修正「止损」但盈亏为正的记录标签（参见部署文档说明）

## 风险与合规

实盘有亏损风险。请确认 API 权限、IP 白名单、杠杆与保证金模式与 **Gate.io** 后台一致，并遵守当地法律法规与交易所用户协议。
