# BRIEF cho chat `panda-trading-brain` — MỘT EA, 4 chế độ (C/D × v0/v1-ATR) để Panda backtest (2026-09-18)

> Viết bởi chat research. Panda chốt nguyên văn: *"chuyển atr, giữ cả D, nhưng e nói trading brain làm cho a 1 ea cho 4
> chế độ theo 4 phương án để a backtest thử nhé"*. Đây là bản **bổ sung** cho `BRIEF-brain-forward-demo-C-D.md`.
> Mọi mục của brief gốc **giữ nguyên hiệu lực** (§0 luật cứng, §2 chỉ báo, §3 tín hiệu, §4 quản lý lệnh, §5 ghi nhận),
> **trừ** các chỗ ghi rõ dưới đây. `INT-4A`: chỉ demo / Strategy Tester. Không MixFunded, không tiền thật.
> Forward v0 đang chạy trên demo: **giữ nguyên**, EA mới không thay nó cho tới khi Panda nói.

## 1. Bốn chế độ — một input `Mode`

| `Mode` | `strategy_version` | Ngưỡng | Số lệnh mở tối đa | Thang SL |
|---|---|---|---|---|
| `C_V0` | `cand_c_step_r_v0` | $ tuyệt đối (brief gốc) | 3 | 2R→BE, 3R→+1R, 4R→+2R… |
| `D_V0` | `cand_d_step_r_v0` | $ tuyệt đối (brief gốc) | không giới hạn (trần an toàn 20) | 1R→BE, 3R→+1R, 4R→+2R… |
| `C_V1` | `cand_c_step_r_v1` | **ATR** (§2 dưới) | 3 | như C_V0 |
| `D_V1` | `cand_d_step_r_v1` | **ATR** (§2 dưới) | không giới hạn (trần 20) | như D_V0 |

- C_V0/D_V0 phải cho **đúng từng lệnh** như EA hiện tại (`ForwardStepREA.mq5` @ `9e567f0`). Chạy lại tester 2025 C_V0 phải
  ra lại `mt5-tester-2025-C/trades.csv`. Đây là phép kiểm hồi quy.
- Magic number / tag **khác nhau theo Mode**; mọi record ghi `strategy_version` đúng Mode.
- Input `RiskUSD` (mặc định 50). Brief gốc §4.4 áp nguyên (oz = floor(RiskUSD / R)).

## 2. Chế độ v1 — thay 3 ngưỡng $ bằng bội số ATR

**ATR14 (M15, bid, nến đã đóng):**
- `TR[t] = max(high−low, |high−close[t−1]|, |low−close[t−1]|)`; với nến đầu tiên của chuỗi: `TR = high − low`.
- `ATR14[t] = ATR14[t−1] + (TR[t] − ATR14[t−1]) / 14`, khởi tạo `ATR14[0] = TR[0]`
  (Wilder, tương đương `ewm(alpha=1/14, adjust=False)`).
- ⚠️ Đây **không** phải `iATR` của MT5 (iATR khởi tạo bằng SMA 14 rồi mới đệ quy). Phải tự tính. Sau khởi động ≥ 3 tháng thì
  khác biệt khởi tạo gần như biến mất, nhưng vẫn tính đúng công thức trên để parity.

**Hằng số** (chốt; = ngưỡng $ gốc ÷ ATR14 trung vị M15 exness 2016–2023 = 1,5694002200688544):

| Tên | Giá trị | Thay cho |
|---|---|---|
| `K_WIDTH` | `0.7646233157450126` | `dragon_width ≥ 1.2` ⇒ `dragon_width(c1) ≥ K_WIDTH · ATR14(c1)` |
| `K_SLOPE` | `0.1592965241135443` | `ema34_slope ≥ 0.25` ⇒ `ema34_slope(c1) ≥ K_SLOPE · ATR14(c1)` |
| `K_BUF` | `0.9557791446812658` | `SL = ema89 − 1.5` ⇒ `SL = ema89(c1) − K_BUF · ATR14(c1)` |

Mọi điều kiện khác của brief gốc §3 **giữ nguyên** (giờ 7–19 UTC, ADX ≥ 22 kiểu EMA, H1/H4, chạm Dragon/EMA89, nến xanh
đóng trên ema34_high và ema89, luật thua ngày). ATR14 lấy **tại nến tín hiệu c1**, cố định cho lệnh đó.
SL ≥ giá vào ⇒ bỏ tín hiệu (như cũ).

Ghi thêm vào record lệnh (v1): `atr14_at_signal`, `dragon_width`, `ema34_slope`, `k_width`, `k_slope`, `k_buf`.

## 3. Luật thua ngày — làm rõ (trả lời câu 4 của NOTE tester)
Như `engine.py` research: đếm lệnh **đã đóng** có `net_pnl ≤ 0` theo **ngày UTC của giờ đóng lệnh**; khi xét tín hiệu, cổng
chặn nếu ngày đếm đó **trùng ngày UTC (giờ mở) của nến tín hiệu c1** và số thua ≥ 2. Áp như nhau cho cả 4 Mode.

## 4. Swap
EA không cần đổi gì; tiếp tục ghi `swap_usd` từng lệnh. Research đánh giá kỳ vọng **sau swap**.

## 5. Kỳ vọng để Panda so (thăm dò, không phải đề xuất live; lệnh/năm · mean R **chưa** swap · mean R sau swap ước)

| Mode | Exness dev 2016–2023 | Exness 2024 → 2026-08 (năm vàng tăng mạnh, đừng coi là mức bền) |
|---|---|---|
| C_V0 | 94 · +0,20 | 181 · +0,40 · ~+0,33 |
| D_V0 | 148 · +0,19 | 324 · +0,28 · ~+0,22 |
| C_V1 | 85 · +0,20 | 112 · +0,49 · ~+0,39 |
| D_V1 | 117 · +0,21 | 154 · +0,31 · ~+0,23 |

Nguồn: `../atr-and-recent/result.md`, `../robustness-atr/REPORT.md`. v1 C và D **qua cổng §1b** (D sát ở mốc BE).
**L5 vẫn trượt** ⇒ không có mode nào đủ căn cứ ra tiền thật.

## 6. Gửi lại research (một chiều, file đóng băng + SHA256SUMS, như `mt5-tester-2025-C/`)
Với **mỗi Mode** Panda chạy tester: `trades.csv`, `signals.csv` (bitmask; v1 thêm cột `atr14`), `ladder_moves.csv`,
`lifecycle.csv`, `incidents.csv`, kèm dải ngày, broker/server, RiskUSD. Research sẽ chạy lại trên exness cùng dải ngày và
so parity từng lệnh (mục tiêu ≥ 90 % lệnh trùng nến tín hiệu, như năm 2025: 189/207).

## 7. Không làm
- Không tự đổi hằng số, không dò ngưỡng trong EA. Mơ hồ → hỏi research/Panda.
- Không đổi forward demo v0 đang chạy. Không chạy bất kỳ Mode nào trên tài khoản tiền thật/quỹ.
