Files
Bell-PriceActionWithEma-EA/Include/ICT2026

ICT 2026

Expert Advisor ICT 2026 — module hóa theo hướng ICT/SMC. Không phụ thuộc HyperICT (chỉ tham khảo ý tưởng swing & key level).

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


Quy ước bảo trì (bắt buộc)

Từ giờ, mọi logic mới hoặc thay đổi hành vi phải được cập nhật vào file README này trong cùng lần sửa code.

Khi thêm module, sửa rule BOS/CHoCH, đổi veto, input mới, API mới → cập nhật các mục tương ứng bên dưới mục Changelog.


Mục lục

  1. Cấu trúc thư mục
  2. Pipeline Daily Bias
  3. Logic nghiệp vụ
  4. Mô tả từng file
  5. API
  6. Input
  7. Chưa implement
  8. Changelog

Cấu trúc thư mục

MQL5/
├── Experts/
│   └── ICT_2026.mq5              ← EA chính (OnInit / OnTick)
│
└── Include/
    └── ICT2026/
        ├── README.md               ← tài liệu này (luôn cập nhật khi đổi logic)
        ├── Types.mqh               ← enum, struct
        ├── Config.mqh              ← input
        ├── Swing.mqh               ← pivot, swing set H0L1, key level
        ├── StructureCore.mqh       ← body break, BOS/CHoCH detect (Key H0/L0)
        ├── StructureTrend.mqh      ← trend rõ vs sớm (dùng chung H1 + D1)
        ├── DailyBias.mqh           ← Daily Bias + UpdateHTFBias
        ├── IntradayStructure.mqh   ← Intraday trend H1 + IsAllowTrade
        ├── LowTfTrend.mqh        ← iTF FVG khi IsAllowTrade
        ├── Fvg.mqh               ← detect / Available-Used
        ├── FvgDraw.mqh           ← vẽ FVG + Premium/Discount
        ├── Panel.mqh               ← bias + intraday + IsAllowTrade (góc trên)
        └── Draw.mqh                ← label b*/i*/H0L1 trên chart

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


Pipeline Daily Bias

Chạy trên mỗi nến mới của InpBiasTf (mặc định D1), hoặc force=true lúc Init:

IctDailyBias_Update(sym)
  │
  ├─1─ Tính PDH, PDL, PDC, EQ (nến shift=1)
  │
  ├─2─ IctUpdateHTFBias()          ← Previous Day Model (fallback)
  │
  ├─3─ IctResolveTrend()            ← rõ (HH-HL/LH-LL) hoặc sớm (sau CHoCH)
  │     └─ IctDetectStructureEvent() trên Key H0/L0 (body close D[1])
  │
  └─4─ Fallback HTF (bias = None)  ← Previous Day Model
        └─ IctBuildDisplayReason() ← chuỗi lý do D[n] cho panel
        └─ IctPanel_Render()       ← khi có nến D1 mới (EA gọi)

Notation nến: D[0] = nến đang chạy (chưa đóng), D[1] = nến vừa đóng, D[2] = nến trước đó. Bias tính từ D[1] và swing trên các nến đã đóng.


Pipeline Intraday Structure

Chạy trên mỗi nến mới của InpIntradayTf (mặc định H1):

IctIntraday_Update(sym)
  │
  ├─1─ IctBuildSwingSet()           ← H0L1 trên H1
  ├─2─ IctGetKeyLevels()
  ├─3─ IctDetectStructureEvent()    ← BOS / CHoCH trên bar [1]
  ├─4─ IctApplyIntradayTrend()      ← Up / Down
  ├─5─ IctBuildIntradayDisplayReason()
  └─6─ IctIntraday_UpdateAllowTrade()

Notation H1: H[0] đang chạy, H[1] vừa đóng.

Intraday trend (HH-HL / LH-LL + BOS / CHoCH)

Phân loại intraday (khác Daily): dùng 2 đỉnh + 2 đáy gần nhất trong InpIntradayRecentBars (mặc định 80 bar H1), không ghép leg 4 swing dài — tránh nhầm HH-HL từ sóng cũ khi giá đã LH-LL.

So sánh Điều kiện
HH-HL Đỉnh mới > đỉnh cũ đáy mới > đáy cũ
LH-LL Đỉnh mới < đỉnh cũ đáy mới < đáy cũ

Key level cho BOS/CHoCH: Bear Key1=H0, Key2=L0; Bull Key1=L0, Key2=H0.

Hai trạng thái trend (H1 + Daily)

Phase Hiển thị Điều kiện
Rõ ràng Up / Down Pivot HH-HL hoặc LH-LL
Sớm Bull sớm / Bear sớm Sau CHoCH, MS mới chưa rõ (pivot lộn xộn)

CHoCH (đảo, body close):

Cấu trúc trước Điều kiện Trend sau
LH-LL (Bear) Body phá H0 Bull sớm
HH-HL (Bull) Body phá L0 Bear sớm

Giữ trend sớm khi pivot lộn xộn cho đến khi HH-HL/LH-LL rõ hoặc CHoCH ngược.

CHoCH ưu tiên trước pivot rõ: pivot vẫn LH-LL nhưng H[1] phá H0 → Bull sớm (không giữ Down).

Pivot Trend
HH-HL Up (rõ)
LH-LL Down (rõ)
Mixed + đang sớm Giữ Bull/Bear sớm
Mixed, không sớm None

Pipeline Low TF — iTF FVG (v1.10)

Chạy trên mỗi nến mới của InpFvgTf (mặc định H1 = Intraday):

IctLowTfTrend_Update(sym)
  │
  ├─1─ IsAllowTrade == true?
  │     └─ IctFvg_ScanNew() — Bull FVG nếu Bias Up, Bear nếu Bias Down
  ├─2─ IctFvg_UpdateAll() — cập nhật fill % → Available / Used
  ├─3─ IctFvg_PurgeExpired() — xóa Available quá InpFvgExpireDays (3 ngày)
  └─4─ IctFvgDraw_Render() — hình chữ nhật + Premium/Discount

FVG 3 nến (ABC)

Loại Điều kiện Vùng
Bull A.High < C.Low (gap 3 nến) [A.High .. C.Low]
Bear A.Low > C.High (gap 3 nến) [C.High .. A.Low]

Lọc gap quá nhỏ (phải thỏa tất cả bật):

Input Mặc định Ý nghĩa
InpFvgMinGapATRPct 12% Chiều cao gap ≥ % ATR14 trên InpFvgTf
InpFvgMinGapPoints 0 Thêm ngưỡng tuyệt đối (giá), 0 = chỉ ATR
InpFvgMinGapVsBarPct 25% Gap ≥ % range nến giữa (B)

Quét: init / khi IsAllowTrade vừa bật → full lookback; mỗi nến mới → InpFvgScanBarsPerUpdate bar.

Available / Used

State Điều kiện
Available Giá chưa chạm FVG, hoặc lấp < InpFvgUsedFillPct (38.2%)
Used Lấp ≥ 38.2% hoặc xuyên qua FVG

Chỉ quét / giữ FVG thuận Daily Bias. Vẽ FVG (ngang):

Bắt đầu createdTime (lúc hình thành gap)
Kết thúc Used (fvgUsedTime) hoặc hết hạn InpFvgExpireDays (3 ngày) — không kéo tới hiện tại vô hạn

Premium / Discount

Một vùng P/D cho mỗi FVG (không gộp nhóm — tránh chồng lấn).

Bear FVG Bull FVG
Swing 1: đỉnh gần nhất theo thời gian trên FVG (snapshot lúc tạo FVG) → pdHigh Swing 1: đáy gần nhất dưới FVG → pdLow
Swing 2: đáy đầu tiên sau FVG khi pivot xác nhận (pdLow) Swing 2: đỉnh đầu tiên sau FVG (pdHigh)

Vẽ P/D (ngang):

Bắt đầu createdTime FVG — không kéo sang trái
Kết thúc Thời điểm swing 2 hoàn thiện; trước đó kéo tới nến hiện tại (đáy/đỉnh chạy)
Sau swing 2 pdCompletekhóa pdHigh/pdLow/pdRangeEnd; không đọc lại iH0/iH1 live

Swing 1 (pdSwing1Set) gán một lần khi FVG mới; swing 2 xác nhận → pdComplete → không cập nhật nữa khi intraday swing đổi.

FVG Used không kéo dài P/D thêm; P/D độc lập với Used (theo swing 2).

IsAllowTrade

Mục tiêu: phát hiện sớm đảo chiều H1 khi CHoCH — không cần đợi HH-HL/LH-LL rõ.

true  ⟺  Daily Bias hướng Up   AND H1 hướng Up   (Up rõ HOẶC Bull sớm)
       OR Daily Bias hướng Down AND H1 hướng Down (Down rõ HOẶC Bear sớm)

false ⟺  khác hướng, hoặc Bias/Trend = None/Range

Bull sớm / Bear sớm vẫn map ICT_TREND_UP / ICT_TREND_DOWNIctIntraday_TrendAlignsWithBias() xử lý cả hai phase.

Daily Bias Intraday H1 IsAllowTrade
Up / Bull sớm Up / Bull sớm true
Down / Bear sớm Down / Bear sớm true
Up Down / Bear sớm false
Down Up / Bull sớm false
RANGE / NONE bất kỳ false

Logic nghiệp vụ

Mục tiêu Daily Bias

Trả lời: hôm nay ưu tiên BUY, SELL, RANGE, hay đứng ngoài (NONE)?

Daily Bias là filter hướng, không phải tín hiệu entry.


Tầng 1 — Structural Bias (ưu tiên cao nhất)

Build bộ 4 swing trên InpBiasTf: H0, L0, H1, L1 (ghép theo leg, không lấy 2 đỉnh + 2 đáy tách rời).

Bias Điều kiện Thứ tự thời gian
Bull H0 > H1L0 > L1 (HH-HL) L1 → H1 → L0 → H0
Bear H0 < H1L0 < L1 (LH-LL) H1 → L1 → H0 → L0
None Không đủ 4 swing hoặc cấu trúc lẫn lộn

Fib (tùy chọn):

  • Công thức: sóng hồi H1→L0InpFibMinRatio × sóng L1→H1
  • InpRequireFib = false (mặc định): Fib chỉ ghi nhận fibOk, không chặn structural
  • InpRequireFib = true: structural chỉ hợp lệ khi fibOk = true

Key Level

Structural Key LV1 Key LV2
Bull L0 H0
Bear H0 L0
  • Phá Key = thân nến (max/min openclose) trên bar đã đóng (shift = 1)
  • Không dùng wick để xác nhận phá level

BOS vs CHoCH (Key H0 / L0, body close)

Event Ý nghĩa Bear (LH-LL) Bull (HH-HL)
CHoCH Đảo Body phá H0 Body phá L0
BOS Tiếp diễn Body phá L0 Body phá H0
  • Phá level = thân nến bar đã đóng (shift = 1)
  • CHoCH kiểm tra trước BOS
  • Logic trong IctResolveTrend() (StructureTrend.mqh)

Tầng 2 — Previous Day Model (IctUpdateHTFBias)

Dùng khi bias = None (không rõ và không ở phase sớm).

So sánh nến shift=1 vs shift=2 trên InpBiasTf:

Điều kiện HTF Bias Daily Bias
Close[1] > High[2] UP BULL
Close[1] < Low[2] DOWN BEAR
Inside bar (High[1] ≤ High[2]Low[1] ≥ Low[2]) SIDEWAY RANGE (range = High/Low[2])
Close trong range[2] nhưng không inside SIDEWAY RANGE (range = High/Low[1])
Không khớp NONE NONE

Nguồn tham khảo: XAU_H1_M5_Pullback.mq5UpdateHTFBias.


Daily Bias — cùng logic rõ / sớm

Giống H1: IctResolveTrend() trên D1. Chưa có bias structural → fallback Previous Day Model.


Mức giá tham chiếu (PDH / PDL / EQ)

Field Công thức
pdh High[1]
pdl Low[1]
pdc Close[1]
eq (pdh + pdl) / 2

Chưa dùng Premium/Discount filter — xem Roadmap.


Label swing trên chart (Draw.mqh)

Tự động theo TF chart đang mở — chỉ vẽ swing TF hiện tại + TF lớn hơn, ẩn TF nhỏ hơn:

Chart hiện tại Hiển thị
Bias (D1, W1…) bH0, bH1, bL0, bL1
Intraday (H1, H4…) b* + i*
Confirm (M5, M15…) b* + i* + H0L1

Bật/tắt từng lớp: InpDrawBiasSwingLabels, InpDrawIntraSwingLabels, InpDrawConfirmLabels.

So sánh PeriodSeconds(chart) với InpBiasTf, InpIntradayTf, InpConfirmTf.


Panel chart (góc trên trái)

Cập nhật mỗi khi mở nến mới của InpBiasTf (mặc định D1).

Màu theo hướng (mỗi dòng riêng):

Dòng Xanh (Lime) Đỏ (OrangeRed)
Bias + lý do Up / Bull sớm Down / Bear sớm
Intraday + lý do Up / Bull sớm Down / Bear sớm
  • Cùng xanh hoặc cùng đỏ → Daily + H1 cùng hướng → canh trade (IsAllowTrade: true, màu Aqua)
  • Bias xanh + Intraday đỏ (hoặc ngược lại) → lệch hướng, nhìn phát hiện ngay
  • Header / separator: xám; IsAllowTrade: false khi lệch: xám nhạt

Ví dụ hiển thị:

ICT2026 PERIOD_D1 | D[0] chưa đóng
Bias: Up
Ly do: HH-HL, D[1].close > D[2].High
-------------------------
PERIOD_H1 | H[0] dang chay
Intraday: Up
Ly do: HH-HL, BOS H[1].close > Key(H0)
IsAllowTrade: true
Thành phần displayReason Khi nào
HH-HL / LH-LL Có structural bias
BOS D[1].close > Key(H0) / < Key(L0) BOS trên bar D[1]
CHoCH D[1].close … Key CHoCH trên bar D[1]
D[1].close > D[2].High Previous day outside up
D[1].close < D[2].Low Previous day outside down
Inside D[1] trong D[2] Inside bar

Màu chữ: Up = xanh lá, Down = đỏ cam, Range = vàng, None = xám.

Lưu ý MT5: OBJ_LABEL không hiển thị xuống dòng \n — panel dùng nhiều label (ICT26_PNL_0, ICT26_PNL_1, …) xếp dọc.


Mô tả từng file

File Trách nhiệm
Types.mqh ENUM_ICT_BIAS, ENUM_ICT_STRUCT, ENUM_ICT_MS_EVENT, IctSwingSet, IctDailyBiasState
Config.mqh Input: TF, swing range, lookback, Fib, debug
Swing.mqh Pivot detection, build swing set, classify HH-HL/LH-LL, key level, Fib validate
StructureCore.mqh IctBodyBreak*, IctDetectStructureEvent
DailyBias.mqh IctUpdateHTFBias, veto, g_ictDailyBias
IntradayStructure.mqh IctIntraday_Update, trend, isAllowTrade, g_ictIntraday
Panel.mqh Bias + Intraday + IsAllowTrade trên chart
ICT_2026.mq5 Init/Update Daily + Intraday → panel

API

#include <ICT2026/DailyBias.mqh>

// Init (gọi OnInit)
bool ok = IctDailyBias_Init(_Symbol);

// Update (gọi OnTick — return true khi có nến Bias TF mới)
if(IctDailyBias_Update(_Symbol) || IctIntraday_Update(_Symbol))
   IctPanel_Render(_Symbol);

bool allow = IctIntraday_IsAllowTrade();
ENUM_ICT_TREND t = ICT2026_GetIntradayTrend();

// Đọc state
IctDailyBiasState db;
IctDailyBias_Get(db);  // struct: tham số phải dùng &
// db.bias, db.structural, db.lastEvent, db.pdh, db.pdl, db.eq
// db.keyLv1, db.keyLv2, db.swings, db.reason

bool bull = IctDailyBias_IsBull();
bool bear = IctDailyBias_IsBear();

// EA export
ENUM_ICT_BIAS ICT2026_GetDailyBias();

Input

Input Mặc định Mô tả
InpBiasTf D1 Timeframe xác định Daily Bias
InpSwingRange 2 Số nến mỗi bên để xác nhận pivot
InpSwingLookback 300 Số bar quét swing lịch sử
InpFibMinRatio 0.382 Tỷ lệ Fib tối thiểu (0 = luôn pass)
InpRequireFib false Bắt buộc Fib OK mới dùng structural veto
InpIntradayTf H1 TF intraday structure
InpIntradaySwingRange 2 Pivot intraday
InpIntradaySwingLookback 120 Lookback quét pivot
InpIntradayRecentBars 80 Chỉ pivot trong N bar gần nhất (2H+2L)
InpDrawPanel true Hiển thị panel bias góc trên trái
InpPanelX / InpPanelY 12 / 28 Vị trí panel (pixel)
InpPanelFontSize 10 Cỡ chữ panel
InpPanelLineSpacing 22 Khoảng cách giữa các dòng (px)
InpDrawChartLabels true Master: vẽ label swing
InpDrawBiasSwingLabels true bH0bL1
InpDrawIntraSwingLabels true iH0iL1
InpDrawConfirmLabels true H0L1 (M5)
InpChartLabelFontSize 9 Cỡ chữ label chart
InpConfirmTf M5 TF confirm swing
InpConfirmSwingRange 2 Pivot confirm
InpConfirmSwingLookback 80 Lookback confirm
InpConfirmRecentBars 40 Pivot gần nhất confirm
InpLowTf M5 Low TF trend (phase sau)
InpFvgTf H1 TF quét iTF FVG
InpFvgLookbackBars 60 Lookback quét FVG (init)
InpFvgUsedFillPct 38.2 % lấp → Used
InpFvgExpireDays 3 Xóa Available sau N ngày
InpDrawFvgZones true Vẽ FVG + P/D
InpDebug true Log [ICT2026/DailyBias] mỗi lần update

Chưa implement

Tính năng Ghi chú
Tầng 3 intraday confirm (logic trade) Chưa có — chỉ vẽ pivot M5 (H0L1)
Entry từ iTF FVG Available Chưa có — chỉ scan + vẽ
Premium / Discount filter Chỉ buy discount, sell premium
Vẽ Key / PDH-PDL trên chart Panel bias đã có; chưa vẽ level
Entry H1 / M5 MSS, FVG, OB — module riêng
Roll swing incremental Hiện rebuild full swing set mỗi nến
Session filter Asia / London / NY

Changelog

v1.112 — PD lock: không cập nhật đỉnh sau pdComplete

  • pdSwing1Set: đỉnh/đáy swing 1 snapshot một lần
  • pdComplete: khóa toàn bộ P/D; bỏ max(iH0,iH1) live gây đỉnh bay lên

v1.111 — Lọc FVG: gap tối thiểu theo ATR / range nến B

v1.110 — PD bear: đỉnh = iH0/iH1 (không còn pivot thấp nhất trên gap)

v1.109 — Định nghĩa lại vẽ FVG / P/D (gọn, không gộp nhóm)

  • FVG: createdTime → Used hoặc expire 3 ngày; chỉ vẽ thuận bias
  • P/D: createdTime → swing 2; đỉnh/đáy theo pivot; bỏ nhóm PD chồng chart

v1.108 — FVG: quét N bar; gap 3 nến (không bắt B giảm)

  • InpFvgScanBarsPerUpdate (40): mỗi nến mới quét lại N bar — fix FVG sau iH1 bị bỏ qua
  • Khi IsAllowTrade vừa bật → full lookback một lần

v1.107 — Fix P/D không vẽ (khóa sau SyncAllPd)

v1.106 — P/D: đỉnh gần FVG + nhóm FVG liền kề

  • Bear pdHigh: pivot gần nhất trên FVG (không còn max(iH0,iH1))
  • FVG bear liền kề → một vùng P/D chung; vẽ một lần / nhóm

v1.105 — Khóa P/D khi FVG Used

  • pdLocked trên IctFvgZone: không cập nhật pdHigh/pdLow sau khi FVG Used

v1.104 — PD khớp iH0/iH1 (trên) và iL0 (dưới) trên chart

  • Bỏ quét pivot lịch sử (gây khối PD quá cao/thấp)
  • Bear: pdHigh = max(iH0,iH1), pdLow = iL0 (hoặc min low chạy trước khi có iL0)
  • Bull: pdLow = min(iL0,iL1), pdHigh = iH0 (hoặc max high chạy)

v1.103 — Premium/Discount theo từng FVG + đáy/đỉnh leg động

  • Bear: pdHigh = pivot trên FVG; pdLow = min low chạy đến khi swing low xác nhận
  • Bull: đối xứng (pdLow dưới FVG, pdHigh chạy / swing high)
  • Cập nhật P/D mỗi UpdateZoneState + vẽ lại khi pdHigh/pdLow đổi

v1.102 — FVG/P/D: cắt vẽ đúng lần chạm đầu tiên (thời gian)

  • Fvg.mqh: firstTouchTime = nến sớm nhất sau khi tạo FVG (min t), không còn lấy nến mới nhất trong vòng quét
  • Bỏ return sớm khi fill 100% (vẫn ghi nhận chạm trên mọi nến)
  • Chạm: overlap wick/body với vùng; gồm nến đang hình thành (shift 0)
  • LowTfTrend.mqh: IctLowTfTrend_TickRefresh — cập nhật độ dài vẽ mỗi tick khi phát hiện chạm mới

v1.10 — iTF FVG (Available/Used) + Premium/Discount

  • Fvg.mqh, FvgDraw.mqh, LowTfTrend.mqh
  • Swing labels theo TF chart (b* / i* / H0L1)
  • Scan FVG khi IsAllowTrade; khóa vẽ; expire 3 ngày

v1.09 — Label swing: b* (Bias), i* (Intraday), H0L1 (Confirm M5)

  • Draw.mqh: 3 lớp label, bật/tắt riêng
  • Confirm: InpConfirmTf mặc định M5 (scaffold entry layer)

v1.081 — CHoCH ưu tiên trước LH-LL rõ (flip Bull sớm khi phá H0)

  • Fix: Bear sớm / LH-LL + H[1] phá H0 → Bull sớm (trước đó bị ghi đè Down)

v1.08 — Bỏ lock Key; trend rõ vs Bull/Bear sớm

  • Xóa keysLocked
  • IctResolveTrend(): HH-HL/LH-LL = rõ; CHoCH phá H0/L0 = sớm; giữ sớm khi pivot lộn xộn
  • Daily + H1 dùng chung StructureTrend.mqh

v1.07 — BOS/CHoCH trên swing cũ H1/L1 + Daily lock Key

  • IctDetectTrendSwingEvent(): BOS/CHoCH theo trend + phá H1/L1 (body close)
  • Intraday: trend Down + phá H1 → CHoCH Up (fix case H0 > H1)
  • Daily: cơ chế keysLocked giống H1; bỏ veto mỗi bar

v1.06 — Intraday: khóa Key H0/L0, chỉ đổi trend khi phá Key

  • keysLocked: sau khi có trend, giữ Key H0/L0
  • Không reset trend khi pivot lộn xộn sau CHoCH
  • CHoCH/BOS trên Key → flip hoặc continue + re-lock swing mới

v1.051 — Bỏ nhãn trend/bias trên chart

  • Xóa vẽ Intraday trend / Daily Bias trên giá (đủ thông tin ở panel góc trái)
  • Draw.mqh chỉ còn label H0L1 (tắt bằng InpDrawChartLabels = false)

v1.05 — Vẽ chart: label swing (đã thu gọn)

  • Draw.mqh: H0L1 trên pivot intraday

v1.04 — Intraday: 2 pivot gần nhất (fix LH-LL vs HH-HL)

  • IctBuildSwingSetRecentPivots: 2H+2L trong InpIntradayRecentBars thay cho leg 4 swing trên H1
  • Tránh intraday Up/HH-HL khi chart đang LH-LL rõ
  • Debug log H0L1 + Key levels

v1.03.1 — Panel line spacing

  • InpPanelLineSpacing (mặc định 22px)
  • Tách Bias / Ly doIntraday / Ly do thành 2 dòng

v1.03 — Panel intraday hiển thị đúng trên chart

  • Tách panel thành nhiều OBJ_LABEL (MT5 không hỗ trợ \n trong 1 label)
  • OnTick: vẽ panel lần đầu + mỗi khi nến D1/H1 mới
  • OnChartEvent(CHARTEVENT_CHART_CHANGE): refresh panel khi đổi chart

v1.02 — Intraday Structure (H1) + IsAllowTrade

  • IntradayStructure.mqh: HH-HL/LH-LL, BOS continue, CHoCH đảo trend
  • IsAllowTrade: Bias Up + Intraday Up, hoặc Bias Down + Intraday Down
  • Panel: intraday dưới bias + IsAllowTrade: true/false
  • StructureCore.mqh: tách body break / detect event dùng chung
  • Input: InpIntradayTf, InpIntradaySwingRange, InpIntradaySwingLookback
  • API: ICT2026_GetIntradayTrend(), ICT2026_IsAllowTrade()

v1.01.2 — Sửa compile MQL5 (struct reference)

  • Struct bắt buộc truyền bằng & (không by value, không const &)
  • Không return const Struct & — dùng void Get(Struct &out) hoặc return struct by value
  • IctClassifyStructure(IctSwingSet &sw) v.v.

v1.01.1 — Sửa compile MQL5 (lần 1)

  • IctApplyVetoBias() / IctDailyBias_Reset() thao tác g_ictDailyBias

v1.01 — Panel bias góc trên trái

  • Panel.mqh: OBJ_LABEL góc trên trái, cập nhật khi nến InpBiasTf mới
  • IctBuildDisplayReason(): lý do dạng HH-HL, D[1].close > D[2].High, BOS/CHoCH
  • IctBiasDisplayShort(): Up / Down / Range / None
  • IctDailyBias_Update() return bool (true = nến mới)
  • Input: InpDrawPanel, InpPanelX, InpPanelY, InpPanelFontSize

v1.00 — Daily Bias module (initial)

  • Tạo module ICT2026 độc lập (Types, Config, Swing, DailyBias)
  • Structural bias: swing set H0L1, HH-HL / LH-LL
  • Key Level: Bull L0/H0, Bear H0/L0
  • BOS = Continue (phá Key LV2), CHoCH = Reversal (phá Key LV1)
  • Veto logic (Cách A): structural ưu tiên, CHoCH flip bias
  • IctUpdateHTFBias: Previous Day Model (outside / inside / indecision)
  • EA shell ICT_2026.mq5
  • PDH, PDL, PDC, EQ tính từ nến shift=1