b733e551a0
Add scripts/normalize_ambiguous_unicode.py; fix corrupted patch_instance_theme_templates.py. Preserves curly quotes in string literals; removes Git homoglyph warnings on .env.example. Co-authored-by: Cursor <cursoragent@cursor.com>
91 lines
3.5 KiB
Markdown
91 lines
3.5 KiB
Markdown
# 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** 后台一致,并遵守当地法律法规与交易所用户协议.
|