ALAMO Exit — Spec FINAL ✓ ALL RESOLVED

feat/alamo-hedge · 2026-05-13 00:03 · v3 — SS chốt 6/6 questions

Spec timeline: prototype 18:58 → Max walkthrough 21:37–22:14 → SS reply 23:57 chốt 6/6 ambiguity. Code FBotAlamo.mqh đã unlocked. Trang này lưu state-machine comparison + concrete example với lệnh 0.61 + 3 price scenarios + final spec recap cho SS xác nhận lần cuối.

SS FINAL SPEC — 23:57 RECAP
3 rules chính SS chốt
1. Hedge direction: đám âm là BUY → hedge là SELL (và ngược lại). Vĩnh viễn opposite.
2. Close cases (chỉ 2, không có 3):
  • (a) Ln đóng trước → full grid đóng sau (eventual cycle close)
  • (b) Đóng toàn bộ grid kể cả Ln (PosMan triggered close-all)
  • Case "chỉ đóng 1 trong 2" → KHÔNG xảy ra theo operational logic
3. 2-Condition Filter (áp dụng cho cả Checkpoint check + L2 trigger):
  • (a) Lệnh ở VỊ TRÍ "trên" (với hedge SELL) / "dưới" (với hedge BUY) so với L1
  • (b) Lệnh đó đang âm
  • Cả 2 yes → biến số cho phép tính L2 lot khi DD ≥ 20%
+ Re-fire: dùng MARKET order.
Macro concept
ALAMO đẻ ra 1 lệnh Hedge để cứu Grid
Khi Main Grid đang thua nặng (DD ≥ threshold), ALAMO bắn 1 lệnh ngược chiều với lot = tổng các lệnh đang âm. Mục tiêu: tránh lỗ + hòa vốn bằng cách dùng hedge profit bù cho Grid loss. Mỗi lệnh hedge (L1, L2, ...) là một "mạng sống" của account — khóa drawdown ở mức an toàn để các lệnh kế tiếp có thể trade tiếp mà không tăng DD = Second Chance.

Concrete example — Max 21:37

Stage 2 lifecycle với lệnh anchor 0.61 lot

t=0
Grid BUY drift xuống. Bot mở các lệnh từ index 0 (0.17 lot) đến index 7 (0.61 lot) — lệnh 0.61 là lớn nhất hiện tại, mới mở gần đây.
t=1
FIRE L1 Price Line khiến lệnh 0.61 tăng DD tới 10% threshold → S2 ACTIVE. Bắn L1 SELL với lot = tổng các BUY đang âm (≥ 0.01 lot).
t=2
CLOSE L1 Giá đi xuống → lệnh 0.61 (gần nhất với L1 theo lot/giá) dương trở lại → cắt L1. Loop close thành công → ALAMO RESET.
t=3 (alt)
LOOP FAIL Nếu giá đó chưa làm DD tới 10% (Grid vẫn lỗ) → quay về S1 Monitoring, chờ giá rớt thêm.
t=4 (alt)
WHIPSAW DD quay lại 10% → giá cao hơn price line 0.61 → tiếp tục S2 (L1) → có thể nhảy liên tục ăn sạch profit → trigger increase exit condition + PosMan tái cân bằng.
t=5
ESCALATE L2 Không thoát được L1 → DD ≥ 20% → S3.1 monitor (DD ≥ 2×thr − 2% = 18%) → S3.2 fire L2 với lot = tổng các lệnh âm có lots cao hơn L1 + tất cả đang âm.

3 Price scenarios khi S2 Active

2.1. Đi XUỐNG
L1 (SELL) ngày càng có lãi. Track lệnh 0.61 (gần nhất với L1) — khi nó dương trở lại → cắt L1.
2.1.1 OK → reset · 2.1.2 FAIL → về S1 · 2.1.3 whipsaw → PosMan
2.2. Đi NGANG
Hedge mở nhưng giá xuống chưa đủ thoát + lên chưa đủ vào lệnh tiếp. Giữ trạng thái tới khi đi xuống/lên.
Idle — không action
2.3. Đi LÊN
Ước lượng ~3 lệnh để đủ khối lượng. <3 lệnh: giống 2.1, check lệnh âm to nhất + gần 0.61 (checkpoint). ≥3 lệnh: PosMan kiểm soát.
<3 → ALAMO · ≥3 → PosMan + redundancy

Account "Mạng sống" — DD scale

10% L1
20% L2
30% L3
70% danger
80% DEAD
Mỗi Ln (L1, L2, L3...) = 1 mạng của account. DD bay tới 70-80% → hết cứu. Range 90-150 giá (XAU) → mất kiểm soát DD → nếu rebound thì vẫn sống (ít nhất không lỗ).

3 điểm khác lớn

State model
3-state → 5-state
STANDBY / S1 / S2
MỚI STANDBY / S1 / S2 / S3.1 / S3.2
Reference object
MG-max → Lệnh X
"MG-max" = lệnh lot lớn nhất
MỚI "Lệnh X" = lệnh gần Ln nhất (theo giá?)
3-order gate
Không có → MỚI thêm
ALAMO tự đóng tất cả Ln
MỚI ≥3 lệnh trên → PosMan đóng, ALAMO chờ

State machines

CŨ — Prototype 17:00
2-case logic, 3-state machine

Ctrl/Cmd + wheel zoom · drag pan · dbl-click fit

Loading...
MỚI — Prototype 18:58
3-stage state machine, Trường hợp 1/2 + Stage 3 escalation

Ctrl/Cmd + wheel zoom · drag pan · dbl-click fit

Loading...

Full diff table

Aspect CŨ (Prototype 17:00) MỚI (Prototype 18:58)
State model 3-state: STANDBY / S1 / S2 5-state: + S3.1 monitor + S3.2 active
S1 entry trigger RANGER active OR DD ≥ 0.5×threshold DD ≥ 50% threshold (≡ 0.5×, cùng số)
S2 fire condition Con1 (all âm) + Con2 (DD ≥ threshold) SubCon1 (all âm) + DD ≥ threshold
Close logic structure Case 1 (Ln biggest) / Case 2 (not biggest) TH1 (no orders above/below) / TH2 (has orders)
Reference object for close MG-max = lệnh lot lớn nhất Main Grid Lệnh X = lệnh gần Ln nhất (theo gì?)
3-order gate Không có — ALAMO luôn tự đóng MỚI: ≥ 3 lệnh trên/dưới Ln → PosMan đóng
Re-fire timing Q1 pending (a immediate vs b wait) Resolved (b): chờ Lệnh X âm trở lại
Escalation L2 DD ≥ 2×thr → fire L2 ngay (1-step) 2-step: S3.1 monitor (DD≥2×thr−2%) → S3.2 fire (DD≥2×thr)
Scaling Ln AlamoEscMultL2=2, AlamoEscMultLnPlus=3 L1=10% DD, L2=20%, L3=30% (clean N× rule)
PosMan integration Implicit (PosMan close loop) Addendum 1 explicit: PosMan close → ALAMO close all redundancy
Safety net Bỏ LnStopLossMult + BlockExitRatio Cũng bỏ hết — "HEDGIN' TIL I DIE"
Order type re-fire Q2 pending — em propose MARKET Vẫn pending → câu 6 dưới

Code FBotAlamo.mqh đã unlocked ✓

Max walkthrough resolve 4/6, SS reply 23:57 resolve nốt 2 còn lại + clarify 2 CLARIFIED. Tất cả ambiguity đã chốt. Em sẵn sàng code state machine 5-stage.

1."Trên Ln / dưới Ln" — phân loại theo gì? RESOLVED
Em hiểu cuối cùng: theo VỊ TRÍ giá relative to L1, direction phụ thuộc CHIỀU Ln.
SS confirm 23:57: "Lệnh ở vị trí 'trên' (với chiều SELL) / 'dưới' (với chiều BUY) so với L1". Tức là:
  • Hedge SELL (đám BUY âm) → "trên L1" = orders có giá CAO hơn L1
  • Hedge BUY (đám SELL âm) → "dưới L1" = orders có giá THẤP hơn L1
2."Lệnh X" / "Checkpoint" — định nghĩa RESOLVED
Em hiểu cuối cùng: orders thỏa 2-condition filter — vị trí (Q1) + đang âm.
SS confirm 23:57: "Hai điều kiện check: a) vị trí trên/dưới L1, b) đang âm. Nếu cả 2 yes → biến số cho phép tính L2 khi DD ≥ 20%". Filter này áp dụng:
  • Khi check L1 thoát: checkpoint flip dương → close L1
  • Khi tính L2 lot: sum lots tất cả orders qualified
3.Trường hợp 1 "không có lệnh trên/dưới Ln" RESOLVED
Em hiểu cuối cùng: KHÔNG có TH1 riêng — không xảy ra theo operational logic.
SS confirm 23:57: "Sẽ luôn là 1 trong 2 trường hợp: (a) Ln đóng trước full grid đóng sau, (b) đóng toàn bộ grid kể cả Ln. Trường hợp (c) 'chỉ đóng 1 trong 2' không thể xảy ra theo operational logic". Code đơn giản: chỉ implement 2 close cases, không cần edge case TH1.
4.S3.1 "đo" = sum lots? RESOLVED
Em hiểu: tính TỔNG LOT trong khoảng đó = volume Ln+1 sắp bắn.
Max confirm 22:01: "Hedge = tổng các lệnh ≥ 0.01 lot mà đang có lợi nhuận âm và lots cao hơn L1". RESOLVED — đo = sum lots (filter: âm + > L1 lots).
5."Loop đóng được / Loop FAIL" RESOLVED
Em hiểu: OK = full close cycle. FAIL = đóng Ln nhưng Grid vẫn lỗ.
Max confirm 21:37:
  • 2.1.1 OK → reset
  • 2.1.2 FAIL (DD chưa tới 10%) → về S1 Monitoring
  • 2.1.3 Whipsaw (DD quay lại 10% liên tục) → ăn sạch profit → trigger PosMan rebalance
RESOLVED + thêm case whipsaw em chưa nghĩ tới.
6.Re-fire Ln — order type RESOLVED
Em hiểu cuối cùng: MARKET order.
SS confirm 23:57: "Dùng market order Update". Code g_alamoTrade.Buy() / g_alamoTrade.Sell() với giá thị trường hiện tại (đã có pattern trong AlamoFire cũ).

✓ ALL 6 RESOLVED 6 RESOLVED  · Code FBotAlamo.mqh rewrite chuẩn bị bắt đầu. Plan dir sẽ tạo tại plans/260513-0003-alamo-prototype-3stage-rewrite/ với phase files.