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
+101 -101
View File
@@ -1,6 +1,6 @@
# Gate·BTC 日内账户
> **状态**v0.2策略定稿**0 点强平已实现**日内 UI 隐藏平仓/委托/移动保本 **待实现**
> **状态**:v0.2(策略定稿;**0 点强平已实现**;日内 UI 隐藏平仓/委托/移动保本 **待实现**)
---
@@ -10,143 +10,143 @@
|----|------|
| 交易所 | Gate 合约 |
| 品种 | **仅 BTC** |
| 方向 | **多空都做**由过滤条件决定非手选方向 |
| 计仓 | `POSITION_SIZING_MODE=full_margin`全仓杠杆 |
| UI profile | **日内户**`TRADE_SYMBOL_WHITELIST=BTC,ETH` 且限制开启本策略只交易 BTC |
| 与趋势户关系 | **不使用** 大分歧 A/B/小分歧**不使用**「趋势单 / 波段单」手选 |
| 方向 | **多空都做**(由过滤条件决定,非手选方向) |
| 计仓 | `POSITION_SIZING_MODE=full_margin`(全仓杠杆) |
| UI profile | **日内户**(`TRADE_SYMBOL_WHITELIST=BTC,ETH` 且限制开启;本策略只交易 BTC) |
| 与趋势户关系 | **不使用** 大分歧 A/B/小分歧;**不使用**「趋势单 / 波段单」手选 |
### 资金与杠杆执行约定
### 资金与杠杆(执行约定)
| 项 | 说明 |
|----|------|
| 账户规模 | 约 300U测试阶段 |
| 日交易基数 | **50U**早 8:00 重置为 50U不延续前日阶梯 |
| 单笔阶梯 | 上一笔 **+10U / 10U** 调节下一笔基数赢 60U / 亏 40U 等 |
| 账户规模 | 约 300U(测试阶段) |
| 日交易基数 | **50U**(早 8:00 重置为 50U,不延续前日阶梯) |
| 单笔阶梯 | 上一笔 **+10U / 10U** 调节下一笔基数(赢 60U / 亏 40U 等) |
| 杠杆 | **10× 全仓** |
| 一次一单 | 同时仅 **1** 个 Gate 仓位 |
| 止损带宽 | **0.4%1.5%**结构要求更宽则 **不做** |
| 止损带宽 | **0.4%1.5%**(结构要求更宽则 **不做**) |
---
## 2. 周期分层
自上而下**先定能不能做再做哪一类**
自上而下,**先定能不能做,再做哪一类**:
| 层级 | 周期 | 作用 |
|------|------|------|
| 方向过滤 | **1H** | 大方向**不得与 15m 排列反向** |
| 均线 + 结构 | **15m** | 21/55/144 排列顶底分型结构识别**B 类收盘突破** |
| 触发 | **5m** | **A 类**N 字形突破配合 15m 分型 |
| 方法 | 裸 K + 三均线 | 形态确认入场与止损锚点 |
| 方向过滤 | **1H** | 大方向;**不得与 15m 排列反向** |
| 均线 + 结构 | **15m** | 21/55/144 排列,顶底分型,结构识别,**B 类收盘突破** |
| 触发 | **5m** | **A 类**:N 字形突破(配合 15m 分型) |
| 方法 | 裸 K + 三均线 | 形态确认,入场与止损锚点 |
**不做「趋势单」概念**持仓以 **小时**当日了结与币安/OKX 多日趋势户区分
**不做「趋势单」概念**:持仓以 **小时**,当日了结;与币安/OKX 多日趋势户区分.
---
## 3. 方向过滤必过
## 3. 方向过滤(必过)
### 3.1 15m 三均线21 / 55 / 144
### 3.1 15m 三均线(21 / 55 / 144)
| 15m 排列 | 只允许 |
|----------|--------|
| **多头排列**21 > 55 > 144 | **只做多** |
| **空头排列**21 < 55 < 144 | **只做空** |
| 纠缠粘合不符合 | **不做** |
| **多头排列**(21 > 55 > 144) | **只做多** |
| **空头排列**(21 < 55 < 144) | **只做空** |
| 纠缠,粘合,不符合 | **不做** |
### 3.2 与 1H 同向
- **做多**15m 多头排列**1H 不得为空头排列**1H 均线不能与 15m 方向相反)。
- **做空**15m 空头排列**1H 不得为多头排列**
- 1H/15m 方向冲突 → **当日该方向不做**
- **做多**:15m 多头排列,**1H 不得为空头排列**(1H 均线不能与 15m 方向相反).
- **做空**:15m 空头排列,**1H 不得为多头排列**.
- 1H/15m 方向冲突 → **当日该方向不做**.
### 3.3 21 均线关系才允许开仓
### 3.3 21 均线关系(才允许开仓)
入场须与 **21 均线** 发生有效关系避免 distant 追单
入场须与 **21 均线** 发生有效关系,避免 distant 追单:
| 方向 | 要求定性 |
| 方向 | 要求(定性) |
|------|----------------|
| **做多** | 多头排列下**回踩 21 附近获支撑** 或 **站稳 21 上方** 后再按 playbook 入场 |
| **做空** | 空头排列下**反弹 21 附近承压** 或 **压在 21 下方** 后再按 playbook 入场 |
| **做多** | 多头排列下,**回踩 21 附近获支撑** 或 **站稳 21 上方** 后再按 playbook 入场 |
| **做空** | 空头排列下,**反弹 21 附近承压** 或 **压在 21 下方** 后再按 playbook 入场 |
---
## 4. 开仓类型仅两类
## 4. 开仓类型(仅两类)
界面日后仅两个短标签全称见下表 hover / 本文):
界面日后仅两个短标签(全称见下表 hover / 本文):
| 界面标签 | 存储 code建议 | 本质 |
| 界面标签 | 存储 code(建议) | 本质 |
|----------|-------------------|------|
| **假破** | `liquidity_false_break` | 流动性扫单 → 假突破验证 → **5m N 字****15m 顶/底分型** |
| **结构突破** | `structure_breakout` | **15m 结构有效突破****收盘确认** |
| **结构突破** | `structure_breakout` | **15m 结构有效突破**(**收盘确认**) |
子结构 **不单独占主下拉**可在复盘备注或二级标签中记录
子结构 **不单独占主下拉**,可在复盘备注或二级标签中记录.
---
## 5. A 类假破流动性 / 假突破
## 5. A 类:假破(流动性 / 假突破)
**适用**关键位附近 **扫止损** 后价格 **回到结构内**陷阱确认后再反向做
**适用**:关键位附近 **扫止损** 后价格 **回到结构内**,陷阱确认后再反向做.
### 5.1 流程
```text
1H/15m 方向 + 21 均线过滤通过
→ 假突破出现扫高/扫低
→ 验证为「假」收回结构内 / 反向裸 K 确认
→ 5m 走出 N 字二次探底/探顶后沿允许方向突破
→ 15m 出现底分型(多)或顶分型(空)
→ 假突破出现(扫高/扫低)
→ 验证为「假」(收回结构内 / 反向裸 K 确认)
→ 5m 走出 N 字(二次探底/探顶后,沿允许方向突破)
→ 15m 出现底分型(多)或顶分型(空)
→ 入场
```
### 5.2 做多 / 做空对称
### 5.2 做多 / 做空(对称)
| 步骤 | 做多 | 做空 |
|------|------|------|
| 假破 | 向下扫低后快速拉回支撑/箱上 | 向上扫高后跌回阻力/箱下 |
| 5m N 字 | 扫低 → 反弹 → 不破前低 → 向上突破 | 扫高 → 回落 → 不过前高 → 向下突破 |
| 15m 确认 | **底分型** | **顶分型** |
| 止损 | 假破极值或 N 字低点 **外侧**仍须落在 0.4%1.5% | 对称 |
| 目标 | **最低 1:1**之后 **随行情动态** 部分止盈移动止损或延伸 | 对称 |
| 止损 | 假破极值或 N 字低点 **外侧**(仍须落在 0.4%1.5%) | 对称 |
| 目标 | **最低 1:1**;之后 **随行情动态** 部分止盈,移动止损或延伸 | 对称 |
### 5.3 注意
- **须等假破验证完成**扫完不追
- **5m N + 15m 分型** 为入场必要条件缺一不可
- 与大级别 **宽幅震荡S1** 叠加时假信号多优先 **降频或不做**
- **须等假破验证完成**,扫完不追.
- **5m N + 15m 分型** 为入场必要条件,缺一不可.
- 与大级别 **宽幅震荡(S1)** 叠加时假信号多,优先 **降频或不做**.
---
## 6. B 类结构突破
## 6. B 类:结构突破
**适用**15m 上结构清晰方向与均线排列一致**收盘突破** 后顺势做
**适用**:15m 上结构清晰,方向与均线排列一致,**收盘突破** 后顺势做.
### 6.1 子结构均属 B 类
### 6.1 子结构(均属 B 类)
双顶双底头肩顶/底收敛三角/楔形)、箱体等——**统一记为「结构突破」**
双顶,双底,头肩顶/底,收敛(三角/楔形),箱体等——**统一记为「结构突破」**.
### 6.2 突破确认
- **以 15m K 线收盘价为准** 突破关键位颈线箱边收敛边界等)。
- **仅刺破未收盘站稳** → **不算** 有效突破不做
- 可选**收盘突破后回踩** 再进裸 K 确认),仍须满足 21 均线关系与 **≥1:1** 空间
- **以 15m K 线收盘价为准** 突破关键位(颈线,箱边,收敛边界等).
- **仅刺破,未收盘站稳** → **不算** 有效突破,不做.
- 可选:**收盘突破后回踩** 再进(裸 K 确认),仍须满足 21 均线关系与 **≥1:1** 空间.
### 6.3 止损与目标
| 项 | 说明 |
|----|------|
| 止损 | 结构另一侧或突破位回退点 **外侧**0.4%1.5%超出则不做 |
| 目标 | 下单前 **至少 1:1**到位后 **随行情动态** 调整不写死固定 RR |
| 止损 | 结构另一侧或突破位回退点 **外侧**(0.4%1.5%,超出则不做) |
| 目标 | 下单前 **至少 1:1**;到位后 **随行情动态** 调整,不写死固定 RR |
| 空间不足 | 最近阻力/支撑导致 **达不到 1:1****不做** |
---
## 7. 行情状态辅助过滤
## 7. 行情状态(辅助过滤)
| 状态 | 特征 | Gate 动作 |
|------|------|-----------|
| **S0 趋势** | 1H/15m 排列清晰高低点有序 | 正常A/B 均可 |
| **S1 宽幅震荡** | 大箱横盘多日均线反复穿 | **降频或不做** |
| **S2 末期/选边** | 贴边收敛刚突破或假破频发 | 优先 **A 假破****B 收敛突破** |
| **S0 趋势** | 1H/15m 排列清晰,高低点有序 | 正常:A/B 均可 |
| **S1 宽幅震荡** | 大箱横盘多日,均线反复穿 | **降频或不做** |
| **S2 末期/选边** | 贴边收敛,刚突破或假破频发 | 优先 **A 假破****B 收敛突破** |
---
@@ -155,19 +155,19 @@
| 项 | 规则 |
|----|------|
| 周末 | **不开新仓** |
| 早窗 | 约 **9:00**8:0012:00 内),**计划内第 1 笔** |
| 下午 | **默认不开新仓**持仓可保留至晚窗 |
| 晚窗 | 约 **21:00**20:0023:00 内),**计划内第 2 笔** |
| 第 3 笔 | 仅当 **未连错 2 笔****早/晚有一笔为止损出场****补 1 笔** |
| 早窗 | 约 **9:00**(8:0012:00 内),**计划内第 1 笔** |
| 下午 | **默认不开新仓**(持仓可保留至晚窗) |
| 晚窗 | 约 **21:00**(20:0023:00 内),**计划内第 2 笔** |
| 第 3 笔 | 仅当 **未连错 2 笔**,**早/晚有一笔为止损出场**,**补 1 笔** |
| 日上限 | **最多 3 笔** |
| **连错 2 笔** | **当日不再开新仓**第 3 笔名额作废 |
| **连错 2 笔** | **当日不再开新仓**(第 3 笔名额作废) |
**连错计数**
**连错计数**:
| 出场 | 是否算「错 1 笔」 |
|------|------------------|
| **计划止损**触发 | ✅ 算 |
| **0 点强制清仓**系统结果 `强制清仓`且亏损 | ✅ 算 |
| **0 点强制清仓**(系统结果 `强制清仓`)且亏损 | ✅ 算 |
| 止盈 / ≥1:1 按计划平 | ❌ 不算 |
| 0 点强制清仓且盈利或平推 | ❌ 不算 |
@@ -177,53 +177,53 @@
### 9.1 盈亏比
- 开仓前**第一目标空间 ≥ 止损距离最低 1:1**
- 持仓中目标 **随行情动态** 调整本文档 **不量化** 固定止盈比例
- 开仓前:**第一目标空间 ≥ 止损距离(最低 1:1)**.
- 持仓中:目标 **随行情动态** 调整;本文档 **不量化** 固定止盈比例.
### 9.2 禁止「手动止损」
- **亏损出场** 必须来自 **开仓时设定的计划止损**交易所或监控等价执行)。
- **禁止** 盘中亏着 **手点平仓** 充当止损破坏统计与连错规则)。
- 若违规手动平亏**视为当日纪律失败建议停手**复盘结果 **不得** 记为「止损」糊弄统计
- **亏损出场** 必须来自 **开仓时设定的计划止损**(交易所或监控等价执行).
- **禁止** 盘中亏着 **手点平仓** 充当止损(破坏统计与连错规则).
- 若违规手动平亏:**视为当日纪律失败,建议停手**;复盘结果 **不得** 记为「止损」糊弄统计.
### 9.3 时间出场仅 0 点程序已实现
### 9.3 时间出场:仅 0 点(程序已实现)
- **唯一** 时间类出场**当日 0:00北京时间前必须空仓**赚赔都平)。
- **不使用** 下单表单里的 1h / 2h / 4h「开仓后 N 小时平」`time_close`);与本策略无关
- **程序兜底**三所共用Gate 已启用):
- **唯一** 时间类出场:**当日 0:00(北京时间)前必须空仓**(赚赔都平).
- **不使用** 下单表单里的 1h / 2h / 4h「开仓后 N 小时平」(`time_close`);与本策略无关.
- **程序兜底**(三所共用,Gate 已启用):
| env | 说明 |
|-----|------|
| `FORCE_CLOSE_ENABLED=true` | 开启整点强制清仓 |
| `FORCE_CLOSE_BJ_HOUR=0` | 北京时间 **0 点那一小时**00:0000:59执行 |
| `FORCE_CLOSE_BJ_HOUR=0` | 北京时间 **0 点那一小时**(00:0000:59)执行 |
- 实现`force_close_before_reset()`各实例 `app.py` 后台循环调用)。
- 行为对该小时仍 **active**`order_monitors` **市价全平**取消交易所触发单写交易记录
- **系统结果字段**`result = 强制清仓`备注含「北京时间 0:00 整点风控清仓」
- **策略口语「0 点平仓」= 系统「强制清仓」**统计连错时按 §8 盈亏判定不按字段名区分
- 实现:`force_close_before_reset()`(各实例 `app.py` 后台循环调用).
- 行为:对该小时仍 **active**`order_monitors` **市价全平**,取消交易所触发单,写交易记录.
- **系统结果字段**:`result = 强制清仓`;备注含「北京时间 0:00 整点风控清仓」.
- **策略口语「0 点平仓」= 系统「强制清仓」**,统计连错时按 §8 盈亏判定,不按字段名区分.
> **与 `TRADING_DAY_RESET_HOUR=8` 无关**后者只切 **交易日**统计8 点前禁开等),**不会**自动平仓
> **与 `TRADING_DAY_RESET_HOUR=8` 无关**:后者只切 **交易日**(统计,8 点前禁开等),**不会**自动平仓.
### 9.4 允许的出场类型统计用
### 9.4 允许的出场类型(统计用)
| 策略说法 | 系统 `result` | 说明 |
|----------|---------------|------|
| 止盈 | 止盈 / 移动止盈 / 保本止盈 等 | 计划止盈或 ≥1:1 后按计划/动态平 |
| 止损 | 止损 | 仅 **计划止损** 触发 |
| 0 点平仓 | **强制清仓** | 整点风控兜底§9.3 |
| ~~手动平仓~~ | 手动平仓 | **策略禁止**除极端技术故障等须复盘说明 |
| 0 点平仓 | **强制清仓** | 整点风控兜底(§9.3) |
| ~~手动平仓~~ | 手动平仓 | **策略禁止**(除极端技术故障等,须复盘说明) |
---
## 10. A / B 如何选择当日
## 10. A / B 如何选择(当日)
| 盘面 | 优先 |
|------|------|
| 刚扫流动性回到箱内 | **A 假破** |
| 结构清晰排列已顺收敛末端 | **B 结构突破** |
| 大箱乱扫均线粘合 | **不做** |
| 刚扫流动性,回到箱内 | **A 假破** |
| 结构清晰,排列已顺,收敛末端 | **B 结构突破** |
| 大箱乱扫,均线粘合 | **不做** |
早/晚窗 **有形态才做**无形态 = **0 笔**不占额度
早/晚窗 **有形态才做**,无形态 = **0 笔**,不占额度.
---
@@ -243,13 +243,13 @@
| 项 | 说明 |
|----|------|
| 日内 profile 判定 | `is_intraday_trading_profile()``lib/trade/entry_model_lib.py` |
| 0 点强制清仓 | `FORCE_CLOSE_ENABLED` + `FORCE_CLOSE_BJ_HOUR``force_close_before_reset()`结果 **`强制清仓`** |
| UI 标识 | 顶栏 **强制清仓 已开启** 徽章 + 持仓卡片 **倒计时**三所 + 中控 |
| 交易记录展示 | 三所 UI / 中控`强制清仓` 与止损同类 badge |
| 三所统一 | 币安 / OKX / Gate 同一函数与 env**将来改日内只需各所 `.env` 打开无需改代码** |
| 日内 profile 判定 | `is_intraday_trading_profile()`(`lib/trade/entry_model_lib.py`) |
| 0 点强制清仓 | `FORCE_CLOSE_ENABLED` + `FORCE_CLOSE_BJ_HOUR`;`force_close_before_reset()`;结果 **`强制清仓`** |
| UI 标识 | 顶栏 **强制清仓 已开启** 徽章 + 持仓卡片 **倒计时**(三所 + 中控) |
| 交易记录展示 | 三所 UI / 中控:`强制清仓` 与止损同类 badge |
| 三所统一 | 币安 / OKX / Gate 同一函数与 env;**将来改日内只需各所 `.env` 打开,无需改代码** |
Gate 当前建议 env节选):
Gate 当前建议 env(节选):
```env
FORCE_CLOSE_ENABLED=true
@@ -257,14 +257,14 @@ FORCE_CLOSE_BJ_HOUR=0
TRADING_DAY_RESET_HOUR=8
```
### 12.2 待实现UI / 纪律
### 12.2 待实现(UI / 纪律)
| 项 | 说明 |
|----|------|
| 开仓类型 | 界面 **`假破` / `结构突破`**code`liquidity_false_break` / `structure_breakout`);**无** trend/swing 手选 |
| 开仓类型 | 界面 **`假破` / `结构突破`**(code:`liquidity_false_break` / `structure_breakout`);**无** trend/swing 手选 |
| 写入字段 | `trade_records.entry_model` / 复盘下拉同两项 |
| 隐藏操作 | 日内 profile 下 **隐藏** 平仓委托移动保本**实例页 + 中控**`intraday_discipline` / `order_entry_profile=intraday` |
| 隐藏表单项 | 不展示 1h/2h/4h 时间平仓移动保本勾选避免与 §9.3 混用 |
| 隐藏操作 | 日内 profile 下 **隐藏** 平仓,委托,移动保本(**实例页 + 中控**,`intraday_discipline` / `order_entry_profile=intraday`) |
| 隐藏表单项 | 不展示 1h/2h/4h 时间平仓,移动保本勾选(避免与 §9.3 混用) |
| 后端可选 | 严格模式下拒绝 `del_order` / 改委托 API |
---
@@ -273,5 +273,5 @@ TRADING_DAY_RESET_HOUR=8
| 版本 | 日期 | 说明 |
|------|------|------|
| v0.1 | 2026-07-06 | 定稿BTC 日内1H+15m 均线A 假破5m N+15m 分型);B 结构突破15m 收盘);早1晚1/最多3笔/连错2停禁手动止损仅 0 点强平 |
| v0.2 | 2026-07-06 | §9.3/§12对齐 `FORCE_CLOSE_*` 与系统结果「强制清仓」区分 `time_close` / `TRADING_DAY_RESET_HOUR`Gate 已启用说明 |
| v0.1 | 2026-07-06 | 定稿:BTC 日内;1H+15m 均线;A 假破(5m N+15m 分型);B 结构突破(15m 收盘);早1晚1/最多3笔/连错2停;禁手动止损;仅 0 点强平 |
| v0.2 | 2026-07-06 | §9.3/§12:对齐 `FORCE_CLOSE_*` 与系统结果「强制清仓」;区分 `time_close` / `TRADING_DAY_RESET_HOUR`;Gate 已启用说明 |