Bài viết gần đây
-
Buổi 14 IB Bot — Engine Copy Trading dưới 100ms & Guard System
Tháng 7 17, 2026 -
Buổi 21 IB Bot — Autorebates & minh bạch backcom OPC
Tháng 7 17, 2026
| Toán học Step & X-Level MT5 — Buổi 4: tọa độ lưới Grid Bot Nhị Quái V9
Được viết bởi thanhdt vào ngày 17/07/2026 lúc 19:54 | 37 lượt xem
Nguồn:
Day DataPass/Khoa hoc Bot MT5 Nang cao Hedging Tu dong hoa/PHAN 2. CHIEN THUAT RAI QUAN (Grid Logic) (3 Buoi)/Buoi 4. Toan hoc Step & X-Level/Bai giang/Buoi4_Toan_hoc_Step_XLevel.md+Bai tap tai lop/Buoi4_BaiTap.md.
Trong các hệ thống giao dịch lưới (Grid, DCA, hedging hai chiều), khoảng cách giữa các lệnh và cách robot “nhìn” thị trường quyết định tài khoản có chịu được sóng dài hay bị đẩy vào vùng Margin Call. Hầu hết lập trình viên mới bắt đầu bằng cách rải lệnh Limit cố định theo Point/Pip, hoặc so sánh giá thực tế bằng phép bằng nhau chính xác (Bid == 2005.0). Cả hai cách đều dễ vỡ khi thị trường Gap, trượt giá, hoặc khi tài khoản đã mở hàng trăm lệnh và EA phải quét lịch sử mỗi Tick.
Bài viết trình bày lại nội dung Buổi 4 — Toán học Step & X-Level trong khóa Lập trình MT5 Nâng cao Hedging & Tự động hóa tại Hướng Nghiệp Dữ Liệu, dựa trên kiến trúc thực chiến của Bot Nhị Quái V9.2.1 Pro. Đây là bài kỹ thuật — giải thích cách một EA chuyển dải giá liên tục thành hệ tọa độ Step, tối ưu CPU qua X-Level, và phân tách vai trò “lính trinh sát” (đặt lệnh) với “kế toán trưởng” (quét lịch sử, Basket TP). Không phải tín hiệu giao dịch, không cam kết lợi nhuận.
1. Step và X-Level: hai khái niệm nghiệp vụ không được nhầm lẫn
Trước khi viết bất kỳ dòng MQL5 nào, cần phân biệt rõ hai thước đo quản lý không gian giá trong Nhị Quái V9:
| Tiêu chí | Step (Bước Grid) | X-Level (Tầng kế toán) |
|---|---|---|
| Vai trò | Ranh giới kích hoạt mua/bán — đặt lệnh vi mô | Phân vùng kiểm toán tài khoản, chốt lời basket |
| Tham số Input | InpBuyStep / InpSellStep (ví dụ 5.0 USD) |
InpBuyX / InpSellX (ví dụ 5.0 USD) |
| Tần suất | Chạy mỗi Tick — so sánh giá với lưới | Chỉ chạy khi giá vượt sang X-Level mới |
| Tài nguyên | Rất nhẹ (phép so sánh số) | Nặng (quét Deals, tính phí Swap/Commission) |
Step là “lính trinh sát”: bám sát thị trường từng giây, phát hiện giá chạm đúng tầng lưới để nhồi lệnh DCA hoặc mở lệnh tấn công. X-Level là “kế toán trưởng”: không cần kiểm toán mỗi Tick; chỉ được gọi khi giá di chuyển qua một “cột mốc biên giới” mới so với điểm neo P0. Sự tách biệt này giúp EA chạy mượt trên VPS cấu hình thấp ngay cả khi tài khoản đang gồng hàng trăm lệnh — một trong những khác biệt giữa prototype Grid “chạy được trên demo” và hệ thống vận hành 24/7 trên tài khoản thật.
Buổi 3 đã dạy Magic 2111/2112 và Comment _S[Step] để định danh lệnh. Buổi 4 trả lời câu hỏi tiếp theo: Step đó được tính như thế nào, và EA biết khi nào cần quét lại lịch sử giao dịch?
2. Quy trình nghiệp vụ vận hành lưới Nhị Quái V9
2.1. Khởi tạo tại điểm neo P0 (Step 0)
Khi robot bắt đầu hoặc sau khi chốt lời toàn bộ lưới cũ (Basket TP), mức giá thị trường lúc đó trở thành điểm neo gốc P0. Tại Step 0, EA mở song song 1 lệnh Buy (Magic 2111) và 1 lệnh Sell (Magic 2112) để bắt đầu thế trận hedging. Quy tắc nâng cao: cho phép tối đa 2 lệnh tại Step 0 cho mỗi chiều (b_c < 2, s_c < 2) — sẵn sàng cho cơ chế chốt lời ngắn hạn.
2.2. Giá tăng (Price > P0)
- Lưới Sell (DCA chịu trận): giá đi lên, lưới Sell âm. Robot nhồi thêm lệnh Sell tại Step +1, +2, +3… (mỗi Step tối đa 1 lệnh Sell mới) để kéo giá trung bình (Break-Even) lên sát thị trường.
- Lưới Buy (tấn công kiếm lời): giá tăng mang lãi cho Buy. Robot được mở tối đa 2 lệnh Buy tại mỗi Step. Lệnh Buy thứ hai — Lệnh Tấn công — chốt lời cục bộ khi đạt tối thiểu
InpMinProfit(ví dụ $5 USD), tạo dòng tiền thực tế trong khi giữ lệnh thứ nhất chờ Basket TP.
2.3. Giá giảm (Price < P0)
Logic đảo chiều đối xứng: lưới Buy nhồi DCA (1 lệnh/step), lưới Sell mở tối đa 2 lệnh/step để harvest surplus khi giá đi thuận chiều Sell.
graph TD
A[Mức giá Neo P0 - Step 0] -->|Khởi tạo| B[Mở song song 1 Buy và 1 Sell]
A --> C{Giá biến động?}
C -->|Giá TĂNG| D[Lưới Sell nhồi DCA tại Step +1, +2...]
C -->|Giá TĂNG| E[Lưới Buy mở lệnh Tấn công thứ 2]
E -->|Chốt cục bộ| F[Harvest khi đạt InpMinProfit]
C -->|Giá GIẢM| G[Lưới Buy nhồi DCA tại Step -1, -2...]
C -->|Giá GIẢM| H[Lưới Sell mở lệnh Tấn công thứ 2]
H -->|Chốt cục bộ| I[Harvest khi đạt InpMinProfit]
2.4. Basket TP và Emergency Re-anchoring
Basket TP: khi tổng lợi nhuận đã chốt cộng floating đạt chỉ tiêu của lưới, EA đóng toàn bộ lệnh cụm đó, dịch P0 về giá hiện tại, bắt đầu vòng mới.
Neo khẩn cấp: nếu giá trôi quá xa P0 mà không khớp lệnh (ví dụ MathAbs(cur_s) > 20), robot xóa P0 cũ và neo lại tại giá hiện tại — tránh lưới “trôi dạt” ngoài tầm kiểm soát.
3. Bàn cờ Grid: số hóa dải giá thành tọa độ Step
Thay vì nhìn biểu đồ như đường liên tục (2045.23, 2047.89…), Nhị Quái V9 xem dải giá như bàn cờ vua: mỗi mức giá được làm tròn thành tọa độ Step nguyên số (…, -2, -1, 0, 1, 2, …).
graph TD
subgraph BanCo["BÀN CỜ GRID - P0 = 2000.0, Step-Size = 5.0"]
S3["Step +3: 2015.0"]
S2["Step +2: 2010.0"]
S1["Step +1: 2005.0"]
S0["Step 0: P0 (2000.0)"]
SM1["Step -1: 1995.0"]
SM2["Step -2: 1990.0"]
end
PriceContinuous[Giá: 2008.3] --> PriceToStep["PriceToStep(2008.3)"]
PriceToStep --> ResultStep["Step +2"]
ResultStep -.-> S2
Tại sao phải số hóa?
- Chống Gap và trượt giá: giá có thể nhảy vọt qua điểm đặt lệnh trong một Tick. So sánh
Bid == 2005.0sẽ bỏ lỡ cơ hội; kiểm tra “giá có nằm trong phân vùng Step +1 không” linh hoạt hơn. - Quản lý trạng thái tinh gọn: lưu Step vào Comment (Buổi 3) giúp RAM quản lý hàng trăm lệnh qua chỉ số nguyên, không cần lưu giá thực từng lệnh.
- Giá neo P0: mọi Step đều tính tương đối so với
P0. Khi Basket TP,P0reset — bàn cờ dịch chuyển, ván mới bắt đầu.
4. Step-Size theo đơn vị giá tuyệt đối — không dùng Point/Pip
Trong MQL5 thực chiến, tuyệt đối không dùng Point/Pip cố định cho khoảng cách lưới:
- Point khác nhau giữa sàn (5 chữ số vs 4 chữ số).
- Point thay đổi theo tài sản: Vàng
0.01, EURUSD0.00001, Bitcoin có thể0.01hoặc1.0.
Nhị Quái V9 chuẩn hóa Step-Size bằng khoảng cách giá tuyệt đối (USD hoặc đồng tiền định giá):
input double InpBuyStep = 5.0; // Vàng: cứ $5 là 1 Step
input double InpSellStep = 5.0;
| Tài sản | Giá ví dụ | Step-Size khuyến nghị | Ý nghĩa |
|---|---|---|---|
| XAUUSD | $2,000 | 5.0 |
Biến động $5/ounce = 1 Step |
| BTCUSD | $60,000 | 500.0 hoặc 1000.0 |
Biến động $500–1000 = 1 Step |
| EURUSD | 1.08000 | 0.0050 |
~50 pips = 1 Step |
| US30 | 39,000 | 100.0 |
100 điểm chỉ số = 1 Step |
Code viết một lần, đổi Symbol chỉ cần chỉnh Input — không sửa logic bên trong.
5. Hàm PriceToStep và StepToPrice
Hai hàm helper đóng gói toàn bộ quy đổi tọa độ:
5.1. PriceToStep — giá thực → Step
int PriceToStep(double price, double p0, double step_size)
{
if(step_size <= 0) return 0;
return (int)MathRound((price - p0) / step_size);
}
MathRound làm tròn về số nguyên gần nhất. Với P0 = 2000.0, StepSize = 5.0:
- Giá
2002.4→ Step 0 (chênh 2.4, chia 5 = 0.48 → làm tròn 0) - Giá
2002.6→ Step 1 (0.52 → làm tròn 1) - Giá
2011.2→ Step 2 - Giá
1989.8→ Step -2
5.2. StepToPrice — Step → giá lý thuyết
double StepToPrice(int step, double p0, double step_size)
{
return p0 + (step * step_size);
}
Step 2 → 2010.0; Step -2 → 1990.0. Hàm này hữu ích khi vẽ đường Grid trên chart hoặc kiểm tra mức giá kỳ vọng trước khi gửi lệnh Market.
5.3. Bộ lọc sai số 0.65 — tránh nhồi giữa hai Step
Nhị Quái V9 dùng lệnh thị trường (Market Orders), không rải Limit thụ động — tránh nghẽn sàn khi broker giới hạn pending orders. Robot kiểm tra giá Bid có nằm gần sát mức Step lý thuyết:
int targets[2];
targets[0] = 0; // Luôn kiểm tra Step gốc (Anchor)
targets[1] = cur_s; // Step hiện tại theo giá thị trường
for(int i = 0; i < 2; i++)
{
int s = targets[i];
if(MathAbs(s - (pr_ref - p0) / base_step) > 0.65) continue;
// Đạt điều kiện khoảng cách -> đếm lệnh và mở lệnh...
}
Giải thích 0.65: đây là margin tolerance. Nếu khoảng cách từ giá hiện tại đến tọa độ Step lý thuyết vượt 65% Step-Size (giá đang “lơ lửng” giữa hai Step), robot bỏ qua — tránh nhồi sai vị trí trong pha nến giật mạnh. Đây là chi tiết nhỏ nhưng quyết định EA có nhồi dày oan ở vùng giá lửng lơ hay không.
6. X-Level Optimizer — chỉ quét lịch sử khi cần
Một bot Grid trên tài khoản thật phải quét lịch sử để tính Realized Profit (lợi nhuận đã chốt) và cập nhật Basket TP. Nhưng gọi HistorySelect + duyệt hàng ngàn Deals mỗi OnTick là thảm họa hiệu năng — Terminal đơ, VPS 100% CPU.
6.1. Định nghĩa X-Level
X-Level chia khoảng cách tuyệt đối từ giá hiện tại đến P0 thành các phân vùng rộng x_sz:
$$text{cur_x} = lfloor frac{|Price – P_0|}{x_sz} rfloor$$
int cur_x = (int)MathFloor(MathAbs(pr - p0) / x_sz);
Với P0 = 2000, x_sz = 5: giá 2003 → X-Level 0; giá 2006.2 → X-Level 1.
6.2. Cơ chế cờ quét lịch sử
Robot lưu X-Level Tick trước vào Global Variable _LastX. Chỉ khi cur_x != last_x mới bật cờ quét:
void CheckXProfit(int magic, double p0, double x_sz, double pr)
{
TP_Logic(magic); // Chốt lời cục bộ lệnh Surplus trước
int cur_x = (int)MathFloor(MathAbs(pr - p0) / x_sz);
string gv = GetGVPrefix(magic) + "_LastX";
int last_x = GlobalVariableCheck(gv) ? (int)GlobalVariableGet(gv) : -1;
if(cur_x != last_x)
{
GlobalVariableSet(gv, (double)cur_x);
m_need_history_scan_buy = true;
m_need_history_scan_sell = true;
}
}
Giá dao động trong cùng X-Level (ví dụ từ 2003.0 lên 2004.5, vẫn X-Level 0) — không quét lại lịch sử. Chỉ khi vượt sang X-Level 1 (2006.2) mới bật cờ. Trên VPS yếu, sự khác biệt này có thể là ranh giới giữa EA chạy mượt và EA “treo” Terminal.
7. Dynamic Step — giãn lưới khi số lệnh tăng
Grid “đốt tài khoản” thường nhồi với khoảng cách cố định — cứ 5 USD một lệnh cho đến khi Margin Call. Nhị Quái V9 có Dynamic Step: tự giãn bước khi số lệnh mở lớn dần.
if(InpDynamicStep)
{
int g_orders = (magic == InpBuyMagic) ? b_total : s_total;
if(g_orders >= 3 && g_orders < 6) step_s *= 2.0; // Lệnh 4–6: x2 (10 USD)
else if(g_orders >= 6) step_s *= 3.0; // Lệnh 7+: x3 (15 USD)
}
Số lệnh 0–2: Step = 5.0 |-----|-----|-----|
Số lệnh 3–5: Step = 10.0 |-----------|-----------|
Số lệnh 6+: Step = 15.0 |---------------------|---------------------|
Giảm tần suất nhồi khi thị trường đi trend một chiều — “tấm khiên” bảo vệ margin trước sóng Vàng dài hàng trăm giá. Dynamic Step kết hợp với Mandatory Distance (kiểm tra khoảng cách tối thiểu so với lệnh mở gần nhất) tạo hai lớp phòng thủ trước nhồi quá dày.
7.1. Mandatory Distance — lớp phòng thủ thứ hai
Dynamic Step giãn khoảng cách lý thuyết giữa các Step; Mandatory Distance đảm bảo giá thực tế đã di chuyển đủ xa so với lệnh mở gần nhất trước khi nhồi tiếp — chặn trường hợp nến giật mạnh khiến giá “nhảy” qua Step nhưng khoảng cách thực vẫn quá ngắn:
bool CheckMandatoryDistance(double current_price, double last_entry_price,
double calculated_step, double min_step_dist,
bool dynamic_step_enable)
{
if(last_entry_price == 0) return true;
double mandatory_dist = (dynamic_step_enable && calculated_step > min_step_dist)
? calculated_step
: min_step_dist;
return MathAbs(current_price - last_entry_price) >= mandatory_dist;
}
Ví dụ: calculated_step = 10.0 (Dynamic Step đã nhân đôi), last_entry = 2005.0, giá hiện tại 2008.0 — khoảng cách thực chỉ 3.0 < 10.0 → chặn nhồi. Giá phải lên ít nhất 2015.0 mới được phép mở lệnh mới. Đây là bài tập 3 trong Buoi4_BaiTap.md — học viên chạy test trong OnInit() trước khi ghép vào ProcessCluster.
8. Logic 2 lệnh tại Step — DCA vs Lệnh Tấn công
Một cơ chế tinh vi khác: số lệnh được phép mở tại mỗi Step phụ thuộc chiều xu hướng:
if(allow_b && b_c < (s == 0 ? 2 : 1))
{
// Vùng ngược chiều (Drawdown): tối đa 1 lệnh Buy
if(s != 0 && pr_ref < p0 && b_c < 1) { /* Mở Buy DCA */ }
// Vùng thuận chiều (Profit): tối đa 2 lệnh Buy
if(s != 0 && pr_ref > p0 && b_c < 2) { /* Mở Buy Tấn công */ }
// Step 0: tối đa 2 lệnh
if(s == 0 && b_c < 2) { /* Mở Buy tại neo */ }
}
| Vùng giá | Vai trò | Số lệnh/step | Mục tiêu |
|---|---|---|---|
| Ngược chiều lưới (Drawdown) | DCA chịu trận | 1 | Kéo Break-Even |
| Thuận chiều lưới (Profit) | Lệnh Tấn công | 2 | Harvest InpMinProfit |
| Step 0 (neo P0) | Khởi tạo | 2 | Sẵn sàng chốt ngắn |
Lệnh thứ hai ở vùng thuận chiều được HarvestSurplusAtStep chốt ngay khi đạt InpMinProfit — đút túi lợi nhuận thực, giữ lệnh thứ nhất chờ Basket TP. Cơ chế này giúp robot tích lũy lợi nhuận nhỏ trong pha sideway thuận chiều, giảm áp lực gồng lỗ cụm DCA.
9. Luồng ProcessCluster — phối hợp toàn bộ bộ lọc
Trong thực chiến, một tick quyết định mở lệnh phải đi qua chuỗi kiểm tra:
- Dynamic Step — tính
step_sthực tế theo số lệnh đang mở. - Mandatory Distance — khoảng cách tới lệnh gần nhất có đủ an toàn?
- PriceToStep — quy đổi giá hiện tại sang
cur_s. - Tolerance 0.65 — giá có khớp lưới hay đang lơ lửng giữa hai Step?
- CheckStepHasOrder (Recovery) — Step này đã có lệnh từ trước restart chưa? (đọc Comment, tránh nhồi trùng)
- Lot multiplier —
lot = InpBuyLot * MathPow(InpLotMultiplier, total_orders).
Chỉ khi vượt qua toàn bộ, EA mới gửi lệnh Market. Đây là “bộ não vi mô” của Grid — khác hẳn EA demo chỉ if(Bid < last_price - step) Buy().
10. Bài tập thực hành sau buổi học
Khóa MT5 giao 6 bài tập progressive trong Buoi4_BaiTap.md, chạy test trong OnInit() của EA trống:
| Bài | Chủ đề | Deliverable |
|---|---|---|
| 1 | PriceToStep & StepToPrice | Journal in đúng Step cho 4 mức giá Vàng |
| 2 | Dynamic Step | Bảng Step-Size theo số lệnh 0→10 |
| 3 | Mandatory Distance | Chặn nhồi khi khoảng cách < yêu cầu |
| 4 | X-Level Optimizer | Cờ quét lịch sử chỉ bật khi đổi X-Level |
| 5 | ProcessClusterMini | Quyết định mở/chặn lệnh tích hợp |
| 6 | Recovery | Không nhồi trùng Step sau restart |
Hoàn thành 6 bài = nắm lõi toán học Grid trước khi sang Buổi 5 (Surplus & Hedge) và Buổi 6 (Multi-Cluster).
11. Checklist tự kiểm tra trước khi chạy live
Step & tọa độ
- [ ] Step-Size cấu hình theo giá tuyệt đối, không hard-code Point.
- [ ]
PriceToStepxử lýstep_size <= 0(trả 0, không chia cho 0). - [ ] Bộ lọc tolerance
0.65đã test với giá nằm giữa hai Step (phải không nhồi). - [ ]
StepToPricekhớp ngược vớiPriceToSteptrên ít nhất 5 cặp giá test.
X-Level & hiệu năng
- [ ]
CheckXProfit(hoặc tương đương) được gọi trong luồng chính, không chỉOnTradeTransaction. - [ ] Global Variable
_LastXdùng prefix độc bản (GetGVPrefix). - [ ] Đã quan sát Journal: giá dao động trong cùng X-Level không bật cờ quét lịch sử.
Dynamic Step & an toàn
- [ ] Dynamic Step test với 0, 3, 6, 10 lệnh — Step-Size nhân đúng hệ số.
- [ ] Mandatory Distance chặn nhồi khi khoảng cách thực < Step động.
- [ ] Emergency re-anchor (
cur_s > 20) có fallback khi lưới trôi xa P0.
Dual-order & Recovery
- [ ] Vùng Drawdown: tối đa 1 lệnh/step; vùng Profit: tối đa 2 lệnh/step.
- [ ] Sau restart VPS, EA đọc Comment, không nhồi trùng Step đã có lệnh.
- [ ] Harvest Surplus chỉ chốt lệnh Tấn công (lệnh thứ 2), không đóng nhầm lệnh DCA.
12. Vị trí Buổi 4 trong lộ trình khóa MT5 Hedging
Buổi 4 mở Phần 2 — Chiến thuật rải quân (Grid Logic) của khóa, ngay sau Phần 1 (Global Variables, Cache 1-Pass, Magic & Comment). Nếu bỏ qua toán học Step, các buổi sau về Surplus/Hedge, Multi-Cluster, FSM và Guard sẽ thiếu nền tảng — EA biết “đặt lệnh ở đâu” nhưng không hiểu “tại sao đặt ở Step đó” và “khi nào cần kiểm toán lại tài khoản”.
Khóa học giảng Thứ 3 và Thứ 5, 20:00–22:00 (cohort khai giảng 07/07/2026 đang học Buổi 4 tối 17/07). Cohort khai giảng mới theo lịch Thứ 7 và Chủ nhật cho học viên bắt đầu từ đầu. Cấu trúc 5 phần: Phụ đạo nền tảng, Công nghệ lõi, Chiến thuật rải quân, Bộ não điều khiển (FSM/Sweep/Guard), Giao diện & triển khai VPS — kèm coaching 1-1 trong vòng 1 năm.
Liên kết bài trước: Magic Number & Comment MT5 Buổi 3 — Step được lưu trong Comment _S[Step], Magic 2111/2112 tách lưới Buy/Sell.
13. Câu hỏi thường gặp (FAQ)
1. Step và X-Level có thể dùng cùng một con số (ví dụ đều 5.0) không?
Có, thường cấu hình bằng nhau lúc đầu. Nhưng vai trò khác nhau: Step quyết định đặt lệnh, X-Level quyết định khi nào quét lịch sử. Tách biệt giúp tinh chỉnh độc lập — ví dụ Step nhỏ (3 USD) cho nhồi mịn, X-Level lớn hơn (10 USD) để giảm tần suất quét Deals.
2. Tại sao không dùng Pending Limit thay Market Order?
Pending tốn slot lệnh chờ (broker thường giới hạn), dễ bị quét khi Gap, và khó đồng bộ khi Dynamic Step thay đổi khoảng cách. Market + tolerance filter linh hoạt hơn cho Grid hedging hai chiều.
3. Con số 0.65 có thể thay đổi không?
Có, đây là tham số tuning. Giảm xuống 0.5 = lưới “khắt khe” hơn, ít nhồi hơn. Tăng lên 0.8 = dễ khớp hơn nhưng rủi ro nhồi giữa hai Step. Nên backtest trên demo trước khi đổi live.
4. Dynamic Step có làm lưới “thưa” quá, bỏ lỡ cơ hội hồi giá?
Đúng là trade-off: giãn lưới = ít lệnh hơn, margin an toàn hơn. Nhị Quái V9 ưu tiên sống sót trước tối đa hóa số lệnh. Có thể tắt InpDynamicStep trên demo để so sánh.
5. X-Level có liên quan gì đến Basket TP?
X-Level kích hoạt quét lịch sử để cập nhật Realized Profit. Basket TP dùng cả floating lẫn realized — nếu không quét đúng lúc, EA có thể chậm nhận biết đã đạt target. Gọi CheckXProfit đúng chỗ là bắt buộc.
6. Sau restart, P0 mất (GV không copy sang VPS mới) thì sao?
EA cần fallback: tính lại P0 từ giá hiện tại hoặc suy ra từ lệnh đang mở + Comment Step. Buổi 3 đã dạy Dual-Layer Persistence — Buổi 4 bổ sung: dù mất P0, Comment vẫn giúp không nhồi trùng Step.
7. Logic 2 lệnh/step có áp dụng cho Sell không?
Có, đối xứng hoàn toàn qua Magic 2112 và InpSellStep. Buy và Sell là hai “cơ thể” độc lập — mỗi bên có DCA, Tấn công và Harvest riêng.
8. Buổi này có cần thiết nếu tôi chỉ viết EA trend đơn giản?
Chưa cần ngay. Nhưng bất kỳ ai muốn Grid/DCA/hedging trên MT5 đều phải nắm Step & X-Level — đây là nền tảng toán học, không phải tùy chọn trang trí.
Kết luận
Toán học Step & X-Level biến thị trường liên tục thành bàn cờ có quy tắc: PriceToStep và StepToPrice chuẩn hóa tọa độ; bộ lọc 0.65 chặn nhồi sai vị trí; X-Level Optimizer tiết kiệm CPU bằng cách chỉ quét lịch sử khi giá sang phân vùng mới; Dynamic Step giãn lưới bảo vệ margin; và logic 2 lệnh/step tách DCA gồng lỗ khỏi Lệnh Tấn công harvest lợi nhuận ngắn. Đây là lớp “chiến thuật rải quân” mà Bot Nhị Quái V9 dựa vào trước khi bước sang Surplus, Hedge và Multi-Cluster ở các buổi tiếp theo.
Đây là bài viết giáo dục kỹ thuật lập trình MQL5, không phải khuyến nghị giao dịch, không bán tín hiệu và không cam kết lợi nhuận. Áp dụng bất kỳ đoạn code nào vào tài khoản thật là quyết định và trách nhiệm của người vận hành; hãy luôn kiểm thử kỹ trên demo trước khi đưa EA lên tài khoản live.
Nếu bạn muốn đi tiếp từ nền tảng Grid này sang toàn bộ kiến trúc Surplus/Hedge, FSM, Sweep và Guard của EA hedging thực chiến, Mời các bạn xem khóa và đăng ký ở đây.
Bài viết thuộc chuỗi nội dung kỹ thuật đi kèm khóa Lập trình MT5 Nâng cao Hedging & Tự động hóa — Hướng Nghiệp Dữ Liệu. Nội dung tập trung vào kỹ thuật vận hành EA, không khuyến nghị đầu tư, không bán tín hiệu giao dịch.
Lộ trình khóa MT5 Hedging: Lập trình MT5 Nâng cao Hedging & Tự động hóa
Weekly Digest — Nhận Bản Tin Hàng Tuần
Nhận các bài viết phân tích kỹ thuật chuyên sâu, thuật toán giao dịch tự động (Trading Bot) và các giải pháp công nghệ mới nhất từ Hướng Nghiệp Dữ Liệu.
admin
Biên tập viên, Hướng Nghiệp Dữ LiệuBiên tập viên nội dung tại Hướng Nghiệp Dữ Liệu, phụ trách tổng hợp và biên soạn các bài viết về lập trình Python, dữ liệu và công nghệ.