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>
82 lines
2.5 KiB
Markdown
82 lines
2.5 KiB
Markdown
# 单日开仓次数限制(三所统一)
|
|
|
|
各交易实例(Binance / OKX / Gate)在 `.env` 中独立配置,互不影响.
|
|
|
|
## 交易日口径
|
|
|
|
- 以 **北京时间** `TRADING_DAY_RESET_HOUR`(默认 **8:00**)切分交易日,与统计,顶栏「交易日」一致.
|
|
- **次日恢复**:过了切日时刻后 `session_date` 变为新日期,计数自动归零,无需清库.
|
|
|
|
## 计数口径
|
|
|
|
每成功新建一条 `order_monitors` 记录计 **1 次**,包括:
|
|
|
|
- 人工「实盘下单」
|
|
- 关键位自动开仓
|
|
- 其他写入 `order_monitors` 的成功开仓
|
|
|
|
平仓后再开仍算新的一单.当日总次数到硬上限后 **当天不再允许新开**(即使已空仓).
|
|
|
|
## 环境变量
|
|
|
|
在「交易执行 / 人工风控」段配置:
|
|
|
|
```env
|
|
# 【单日开仓 AI 提醒】本交易日开仓次数达到该值时,企业微信推送 AI 克制提醒(不拦单)
|
|
DAILY_OPEN_ALERT_THRESHOLD=5
|
|
|
|
# 【单日开仓硬上限】本交易日开仓次数 >= 该值后,禁止一切新开仓直至下一交易日;0=不启用
|
|
DAILY_OPEN_HARD_LIMIT=0
|
|
```
|
|
|
|
### 配置示例
|
|
|
|
```env
|
|
# 保守户:3 次提醒,5 次封死
|
|
DAILY_OPEN_ALERT_THRESHOLD=3
|
|
DAILY_OPEN_HARD_LIMIT=5
|
|
|
|
# 仅提醒,不封(与旧版行为接近)
|
|
DAILY_OPEN_ALERT_THRESHOLD=5
|
|
DAILY_OPEN_HARD_LIMIT=0
|
|
|
|
# 严格户:到 3 次即封
|
|
DAILY_OPEN_ALERT_THRESHOLD=2
|
|
DAILY_OPEN_HARD_LIMIT=3
|
|
```
|
|
|
|
建议 `DAILY_OPEN_ALERT_THRESHOLD <= DAILY_OPEN_HARD_LIMIT`(硬上限为 0 时除外).
|
|
|
|
## 程序行为
|
|
|
|
| 次数 | 行为 |
|
|
|------|------|
|
|
| 未达提醒阈值 | 正常开仓 |
|
|
| 达到 `DAILY_OPEN_ALERT_THRESHOLD` | 成功开仓后 AI 企业微信提醒 |
|
|
| 达到 `DAILY_OPEN_HARD_LIMIT`(>0) | `precheck_risk` 拒绝人工/关键位开仓;顶栏 `can_trade=false` |
|
|
|
|
硬限制与以下规则 **同时生效**(取交集):
|
|
|
|
- `TRADING_DAY_RESET_OPEN_GUARD_ENABLED`:切日前禁止新开
|
|
- `MAX_ACTIVE_POSITIONS`:同时持仓上限
|
|
- Gate:`precheck_trend_pullback_start` 同样校验单日硬上限
|
|
|
|
## 页面与接口
|
|
|
|
- 顶栏 / `api/account_snapshot` 返回 `opens_today`,`daily_open_hard_limit`,`daily_open_alert_threshold`.
|
|
- 达硬上限时提示:`本交易日开仓 N/M 已达上限,次日 8:00 后恢复`(`M` 为配置的硬上限).
|
|
|
|
## 部署
|
|
|
|
修改各实例 `.env` 后重启对应 pm2 进程,例如:
|
|
|
|
```bash
|
|
pm2 restart crypto_binance crypto_okx crypto_gate
|
|
```
|
|
|
|
## 实现位置
|
|
|
|
- 共享逻辑:`daily_open_limit_lib.py`
|
|
- 三所 `app.py`:`precheck_risk`,`can_trade`,`api/account_snapshot`,开仓成功后的 AI 提醒文案
|
|
- 单元测试:`tests/test_daily_open_limit_lib.py`
|