Files
2026-05-25 02:01:26 +07:00
..
2026-05-17 23:23:44 +07:00
2026-05-17 23:54:51 +07:00
2026-05-17 23:23:44 +07:00
2026-05-17 23:23:44 +07:00
2026-05-17 23:23:44 +07:00
2026-05-17 23:23:44 +07:00
2026-05-25 02:01:26 +07:00
2026-05-17 23:23:44 +07:00
2026-05-17 23:54:51 +07:00
2026-05-25 02:01:26 +07:00
2026-05-25 02:01:26 +07:00

HyperICT

Expert Advisor chỉ đọc cấu trúc thị trường HTF (Higher Timeframe): swing H0L1, Key Level, vùng cung/cầu (Order Block), trạng thái Pullback / CHoCH / Continue. Không đặt lệnh.

Phiên bản hiện tại: 0.11


Mục lục

  1. Cấu trúc thư mục
  2. Logic nghiệp vụ
  3. Mô tả từng file
  4. Luồng chạy (pipeline)
  5. Cài đặt & sử dụng
  6. Tham số input
  7. Trạng thái hiển thị
  8. API mở rộng
  9. Giới hạn & hướng phát triển
  10. Map spec → module

Cấu trúc thư mục

MQL5/
├── Experts/
│   └── HyperICT.mq5              ← EA chính (OnInit / OnTick)
│
└── Include/
    └── HyperICT/
        ├── README.md               ← tài liệu này
        ├── Types.mqh               ← enum, struct
        ├── Config.mqh              ← input
        ├── FibValidator.mqh        ← Fib 0.382 (chỉ tiên quyết)
        ├── SwingEngine.mqh         ← pivot, snapshot, roll swing
        ├── KeyLevels.mqh           ← Key LV1/L2, OB, body break
        ├── Classifier.mqh          ← 7+ trạng thái trend
        ├── UpdateEngine.mqh        ← §1.4 CHoCH / Continue
        ├── StateMachine.mqh        ← pipeline điều phối
        ├── Draw.mqh                ← vẽ chart
        └── Panel.mqh               ← panel góc chart

Include trong code: #include <HyperICT/TênFile.mqh>


Logic nghiệp vụ

Điều kiện tiên quyết (chỉ lúc xác định trend)

Xu hướng Cấu trúc Fib
Bull HH-HL (H0>H1L0>L1) Sóng hồi H1→L038.2% sóng L1→H1
Bear LH-LL Cùng công thức Fib
  • Fib fail → state BULL/BEAR (Fib pending)không coi là Neutral.
  • Neutral chỉ khi không đủ 4 swing hoặc cấu trúc không HH-HL / LH-LL.

Swing H0, H1, L0, L1 (ghép theo leg — không lấy 2 đỉnh + 2 đáy tách rời)

Trên HTF, pivot được gán sao cho Key LV1 tạo ra Key LV2 (đúng thứ tự thời gian):

Bias Key LV1 Key LV2 Cách gán
Bear H0 = Key LV1 (đỉnh trước L0) L0 = Key LV2 Thời gian: H1 → L1 → H0 → L0
Bull L0 = Key LV1 (đáy trước H0) H0 = Key LV2 Thời gian: L1 → H1 → L0 → H0

Gán pivot: từ L0/H0 gần nhất, lùi từng bước tới pivot cũ kề (không nhảy tới đỉnh/đáy xa hơn).

  • Đỉnh/đáy hình thành sau Key LV2 (ví dụ đỉnh nhỏ sau L0 trong bear) không gán là H0 — thuộc newH0 / UpdateEngine §1.4.
  • Khóa snapshot khi bot chạy — chỉ đổi khi phá Key (§1.4).

Key Level (§1.2)

Bias Key LV1 Key LV2 Vùng cung Vùng cầu
Bull L0 H0 (= đỉnh cao nhất L0→H0) L0 → high nến đỏ OB H0 → low nến xanh OB
Bear H0 L0 (đối xứng) (đối xứng)
  • Phá Key = thân nến (max/min openclose) trên bar HTF đã đóng (shift 1).
  • Phá Key LV1 → tín hiệu CHoCH.
  • Phá Key LV2 → tín hiệu Trend Continue.

Trạng thái trend (§1.1)

State Điều kiện chính
Bull Pullback Fib OK + giá giữa L0H0
Bull CHoCH Body phá dưới L0, hoặc đang xử lý §1.4 CHoCH
Bull Continue Body phá trên H0 / đang tạo newH0
Bear Pullback / CHoCH / Continue Đối xứng
Neutral Không phân loại được cấu trúc

Cập nhật sau phá Key (§1.4) — không quét lại full history

Xác nhận đỉnh/đáy mới: dùng InpSwingRange (pivot đủ N nến mỗi bên). Không dùng Fib trong giai đoạn này.

Bull Continue (phá H0)

  1. P1: Body phá H0 → track newH0 (nến xanh, high cao hơn), newL0 (đáy impulse).
  2. P2: Hồi đủ → IsConfirmedSwingHigh(newH0) → roll: H0→H1, L0→L1, newH0→H0, newL0→L0.

Bull CHoCH (phá L0)

  1. P1: Track newL0 (low thấp hơn).
  2. P2: IsConfirmedSwingLow(newL0) hoặc hồi lên đủ InpSwingRange (swing high sau đáy) → khóa newL0, vào phase 3 (không kéo newL0 nữa).
  3. P3 case 1: Phá lên H0 → newH0 confirm → roll bull (L1 giữ).
  4. P3 case 2: Body phá xuống newL0 đã khóa → track newH0 (confirm) → track newL02 (confirm tuần tự) → roll bear.

Bear Continue / CHoCH: đối xứng với bull.


Mô tả từng file

Experts/HyperICT.mq5

  • Entry point: khởi tạo HtfContext, gọi StateMachine, Draw, Panel.
  • OnTick: logic HTF chỉ khi nến HTF mới; vẽ rectangle cập nhật mỗi tick.
  • Export: HyperICT_GetState() cho EA khác.

Types.mqh

  • ENUM_STRUCT_BIAS, ENUM_HTF_STATE, ENUM_UPDATE_EVENT, ENUM_UPDATE_PHASE.
  • SwingPoint, SwingSet, OrderBlockZone, KeyLevelPair, UpdateContext, HtfContext.
  • Không chứa logic tính toán.

Config.mqh

  • Toàn bộ input: HTF, swing range, lookback, Fib ratio, màu vẽ, debug.
  • Prefix object chart: HICT_.

FibValidator.mqh

  • IsPullbackValid() — H1→L0 vs L1→H1 × InpFibMinRatio.
  • Chỉ dùng cho tiên quyết trend (và tính lại sau roll swing).

SwingEngine.mqh

  • IsSwingHigh / IsSwingLow, CollectSwings, PickLastTwo.
  • LockInitialSnapshot, ClassifyStructure (HH-HL / LH-LL).
  • IsConfirmedSwingHigh/Low — xác nhận pivot sau phá Key.
  • RollBullContinue, RollBullChochCase1/2, RollBearContinue, …

KeyLevels.mqh

  • Body break above/below.
  • FindSupplyOB / FindDemandOB.
  • BuildKeyLevels, PriceBetween (Pullback zone).

Classifier.mqh

  • Evaluate() → một trong các ENUM_HTF_STATE.
  • Ưu tiên: đang update.phase → CHoCH/Continue; sau đó Fib pending; sau đó Pullback/break.

UpdateEngine.mqh

  • DetectBreakEvents — phá Key LV1/L2.
  • ProcessBullContinueBuild, ProcessBullChochBuild, ProcessBullChochResolve, …
  • OnHtfBarClose — gọi mỗi nến HTF mới.

StateMachine.mqh

  • Init() → lock snapshot + RefreshDerived.
  • OnChartEvent()IsNewHtfBarUpdateEngine → Fib + Key + Classifier.

Draw.mqh

  • Label H0L1, newH0/newL0/newL02.
  • Rectangle Key LV1/L2 (kéo tới thời điểm hiện tại).

Panel.mqh

  • Label góc trái: structure, Fib, state, Key prices, phase update.

Luồng chạy (pipeline)

flowchart TD
    A[OnInit] --> B[SwingEngine.LockInitialSnapshot]
    B --> C[RefreshDerived: Fib + Key + Classify]
    C --> D[Draw + Panel]

    E[OnTick] --> F{Nến HTF mới?}
    F -->|Không| G[Draw refresh rect]
    F -->|Có| H[UpdateEngine.OnHtfBarClose]
    H --> I[RefreshDerived]
    I --> G
    G --> J[Panel update]

Cài đặt & sử dụng

  1. Copy Experts/HyperICT.mq5 và thư mục Include/HyperICT/ vào terminal MT5.
  2. MetaEditor → mở HyperICT.mq5F7 compile.
  3. Kéo EA lên chart (symbol cần đủ lịch sử HTF).
  4. Khuyến nghị: mở chart cùng symbol; HTF logic đọc InpHtf (mặc định H1) dù chart có thể M15/M5.
  5. Bật InpDebug = true để xem log [HyperICT][HyperICT/Update] trong tab Experts.

Gợi ý tinh chỉnh

Triệu chứng Thử
Init fail / không đủ swing Giảm InpSwingRange hoặc tăng InpSwingLookback
Pivot confirm chậm Giảm InpSwingRange
Pivot nhiễu Tăng InpSwingRange
Fib mãi pending Kiểm tra sóng H1→L0 trên chart H1

Tham số input

Input Mặc định Ý nghĩa
InpHtf H1 Timeframe cấu trúc
InpSwingRange 3 Nến mỗi bên pivot; confirm đỉnh/đáy §1.4
InpSwingLookback 400 Số nến quét lúc lock ban đầu
InpFibMinRatio 0.382 Tiên quyết pullback (chỉ lúc lock trend)
InpDrawSwings true Label H0L1
InpDrawZones true Rectangle Key LV
InpDrawPanel true Panel trạng thái
InpDebug false Log chi tiết

Trạng thái hiển thị

Panel text Ý nghĩa
BULL PULLBACK Bull hợp lệ, giá trong L0H0
BULL (Fib pending) HH-HL nhưng hồi chưa đủ 38.2%
BULL CHoCH Phá L0 hoặc đang update CHoCH
BULL CONTINUE Phá H0 / đang tạo đỉnh mới
BEAR … Đối xứng
NEUTRAL Cấu trúc không rõ

Khi đang update: dòng Update: evt=… phase=… | swingR=….


API mở rộng

// Trong HyperICT.mq5 — có thể #include Types từ EA khác nếu cần enum
ENUM_HTF_STATE HyperICT_GetState();

Trả về ctx.state hiện tại. EA khác có thể đọc sau khi HyperICT chạy trên cùng chart (cần thiết kế thêm export nếu muốn đọc swing/Key từ bên ngoài).


Giới hạn & hướng phát triển

Đã có

  • HTF structure, Key LV, OB đơn giản, 7+ states, snapshot lock, §1.4 incremental update với swing confirm.

Chưa có

  • Đặt lệnh, quản lý risk, session filter.
  • LTF entry (MSS, FVG, …).
  • OB mitigation filter chuẩn ICT.
  • Vẽ trên chart HTF tách biệt (hiện dùng ChartID() đang mở).
  • Alert / push notification.

Hướng phát triển gợi ý

  1. Test & harden UpdateEngine trên lịch sử (Strategy Tester visual).
  2. Module LTF tách riêng, đọc HyperICT_GetState().
  3. Cải thiện FindSupplyOB / FindDemandOB.
  4. Export struct HtfContext qua global hoặc file cho indicator.

Map spec → module (tóm tắt)

Spec Module
Tiên quyết Fib + HH-HL FibValidator, SwingEngine
§1.1 States Classifier, Panel
§1.2 Key + OB KeyLevels, Draw
§1.3 Vẽ Draw
§1.4 CHoCH/Continue UpdateEngine, SwingEngine
Pipeline StateMachine
Input Config
Data model Types

Tài liệu đồng bộ với HyperICT v0.11. Khi đổi logic, cập nhật comment đầu từng file .mqh và README này.