ALAMO Exit — Prototype CŨ vs MỚI

feat/alamo-hedge · 2026-05-12 22:18 · v2 với Max walkthrough

SS gửi prototype mới lúc 18:58, sau đó Max (21:37 → 22:14) gửi macro walkthrough kèm concrete example với lệnh 0.61 lot. Trang này gộp cả 2: state-machine comparison + example chi tiết + 3 price scenarios + "Ln = mạng sống" metaphor.

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

4 clarified by Max walkthrough · 2 vẫn pending

Max gửi macro walkthrough lúc 21:37–22:14 → resolve được 4/6 câu. 2 câu còn lại (highlight orange) vẫn chờ SS confirm trước khi code.

1."Trên Ln / dưới Ln" — phân loại theo gì? CLARIFIED
Em hiểu (cũ): theo SIDE (MG Sell trên, MG Buy dưới).
Max update 22:01: "L2 = lệnh đầu tiên ở phía trên/dưới L1". Tức là theo POSITION RELATIVE TO L1 trong sequence — không phải side. Trong drift-down: "trên L1" = grid orders ở giá CAO HƠN L1 (theo giá tuyệt đối).
→ SS confirm: "trên L1" = theo GIÁ tuyệt đối (cao hơn giá L1)?
2."Lệnh X" = "Checkpoint" — gần Ln nhất theo gì? CLARIFIED
Em hiểu (cũ): theo GIÁ.
Max update 21:37: "Lệnh đang âm to nhất và gần nhất với 0.61". Tức là MIX criteria: âm + lot lớn + gần (price-wise) anchor 0.61. Đặt tên: "Checkpoint". Logic check L1 thoát: checkpoint có profit dương → close L1.
→ SS confirm: Checkpoint = âm + lot lớn nhất + gần L1 theo giá?
3.Trường hợp 1 "không có lệnh trên/dưới Ln" — possible khi nào? PENDING
Em hiểu: edge case khi Grid đã đóng phần lớn, chỉ còn Ln + vài lệnh. Max walkthrough không mention case này → có thể đã merge vào logic chung.
→ SS confirm vẫn cần TH1 riêng, hay merge vào 2.1/2.2/2.3?
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 — MARKET hay PENDING LIMIT? PENDING
Em hiểu: MARKET (giá thị trường lúc trigger). Max walkthrough không explicit về order type → vẫn pending.
→ SS confirm MARKET đúng không?

Status: 2 RESOLVED 2 CLARIFIED (cần SS confirm interpretation) 2 PENDING  · Code FBotAlamo.mqh start sau khi 2 PENDING + 2 CLARIFIED chốt.