Normalize fullwidth punctuation to ASCII across codebase.

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>
This commit is contained in:
dekun
2026-07-08 23:42:26 +08:00
parent aaa72c7961
commit b733e551a0
392 changed files with 71522 additions and 71369 deletions
+31 -31
View File
@@ -1,22 +1,22 @@
# crypto_monitor_binance
基于 **Flask** 的加密货币 **下单监控 / 关键位监控 / 交易复盘** 小系统行情与实盘接口统一走 **BinanceUSDT-M 永续**通过 **ccxt** 访问
基于 **Flask** 的加密货币 **下单监控 / 关键位监控 / 交易复盘** 小系统,行情与实盘接口统一走 **Binance(USDT-M 永续)**,通过 **ccxt** 访问.
## 功能概要
- **关键位监控**价格与硬条件校验企业微信推送可选
- **下单监控**本地风控含移动保本逻辑)、触达止盈/止损后尝试市价平仓并记账
- **策略交易**顶栏 `/strategy`趋势回调 + 顺势加仓),见仓库根 [策略交易说明.md](../策略交易说明.md)
- **AI 复盘**OpenAI 兼容网关默认或 Ollama见 [AI复盘与模型配置说明.md](../AI复盘与模型配置说明.md)
- **实盘可选**`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` 控制最新价 / 标记价
- **关键位监控**:价格与硬条件校验,企业微信推送(可选)
- **下单监控**:本地风控(含移动保本逻辑),触达止盈/止损后尝试市价平仓并记账
- **策略交易**:顶栏 `/strategy`(趋势回调 + 顺势加仓),见仓库根 [策略交易说明.md](../策略交易说明.md)
- **AI 复盘**:OpenAI 兼容网关(默认)或 Ollama,见 [AI复盘与模型配置说明.md](../AI复盘与模型配置说明.md)
- **实盘(可选)**:`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`**
- Python 3.10+(建议)
- 依赖:`flask`,`requests`,`ccxt`,`werkzeug`,`Pillow`(K 线图可选);经 SOCKS 代理时需 **`PySocks`**
安装示例
安装示例:
```bash
# 推荐在 /opt/crypto_monitor 执行仓库根目录 deploy/setup_env.sh
@@ -25,31 +25,31 @@ source .venv/bin/activate
pip install -r ../requirements.txt
```
页面上的 **「当日资金(交易账户)」** 与 **「可开仓」可用 U** 仅统计 **Binance U 本位永续合约账户**`fetch_balance``swap` / FAPI `assets` 中的 USDT),**不会**再用现货余额顶替
页面上的 **「当日资金(交易账户)」** 与 **「可开仓」可用 U** 仅统计 **Binance U 本位永续合约账户**(`fetch_balance``swap` / FAPI `assets` 中的 USDT),**不会**再用现货余额顶替.
## 配置说明`.env.example` → `.env`
## 配置说明(`.env.example` → `.env`)
- **`.env.example`**模板可提交 Git);首次`cp .env.example .env` 后编辑
- **`.env`**本机真实配置勿提交);`app.py` 只读此文件`git pull` 不覆盖 `.env`升级前可 `cp .env .env.backup.$(date +%Y%m%d)`
- **`.env.example`**:模板(可提交 Git);首次:`cp .env.example .env` 后编辑.
- **`.env`**:本机真实配置(勿提交);`app.py` 只读此文件.`git pull` 不覆盖 `.env`;升级前可 `cp .env .env.backup.$(date +%Y%m%d)`.
与 Binance 相关的常用变量
与 Binance 相关的常用变量:
| 变量 | 说明 |
|------|------|
| `BINANCE_API_KEY` / `BINANCE_API_SECRET` | 币安 API需合约等权限 |
| `LIVE_TRADING_ENABLED` | `true` 时允许真实下单`false` 仅本地逻辑 |
| `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_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` | 推送文案中的账户备注 |
其余变量登录企业微信风控参数**`AI_PROVIDER` / `OPENAI_*` / `OLLAMA_*`**数据库路径等**`.env.example` 内注释** 或 `app.py` 顶部默认值
其余变量(登录,企业微信,风控参数,**`AI_PROVIDER` / `OPENAI_*` / `OLLAMA_*`**,数据库路径等)**`.env.example` 内注释** 或 `app.py` 顶部默认值.
## 运行
生产环境使用 **PM2**`ecosystem.config.cjs`)。临时调试
生产环境使用 **PM2**(`ecosystem.config.cjs`).临时调试:
```bash
cd /opt/crypto_monitor/crypto_monitor_binance
@@ -57,13 +57,13 @@ source .venv/bin/activate
python app.py
```
环境说明见 [docs/ubuntu-server.md](../docs/ubuntu-server.md)
环境说明见 [docs/ubuntu-server.md](../docs/ubuntu-server.md).
默认监听端口由 `.env``APP_PORT` 决定未设置时多为 `5000`)。
默认监听端口由 `.env``APP_PORT` 决定(未设置时多为 `5000`).
## 部署Linux / PM2 / SSH SOCKS
## 部署(Linux / PM2 / SSH SOCKS)
详见 **[部署文档.md](./部署文档.md)**Ubuntu + PM2 + 可选 SOCKS 访问 Binance)。
详见 **[部署文档.md](./部署文档.md)**(Ubuntu + PM2 + 可选 SOCKS 访问 Binance).
## 自检脚本
@@ -71,13 +71,13 @@ python app.py
python scripts/verify_binance_funding.py
```
用于核对 Key 前缀不含 Secret并尝试读取资金钱包 / 合约钱包 USDT需网络与 API 权限)。
用于核对 Key 前缀(不含 Secret)并尝试读取资金钱包 / 合约钱包 USDT(需网络与 API 权限).
## 数据与脚本
- 默认 SQLite`crypto.db`路径由 `DB_PATH` 指定
- `scripts/fix_breakeven_labels.py`批量修正「止损」但盈亏为正的记录标签见部署文档附录
- 默认 SQLite:`crypto.db`(路径由 `DB_PATH` 指定)
- `scripts/fix_breakeven_labels.py`:批量修正「止损」但盈亏为正的记录标签(见部署文档附录)
## 风险与合规
实盘交易有亏损风险请自行确认 API 权限IP 白名单杠杆与保证金模式与币安账户设置一致并遵守当地法律法规与 Binance 用户协议
实盘交易有亏损风险.请自行确认 API 权限,IP 白名单,杠杆与保证金模式与币安账户设置一致,并遵守当地法律法规与 Binance 用户协议.