Bài 3: Toán Học Tính Tầng (s) và Kỹ Thuật Theo Dõi Biên Độ Lưới
Trong hệ thống lưới đa chiều Nhị Quái V6 Pro, việc kiểm soát không gian di chuyển của đường giá là yếu tố tối quan trọng. Sau khi đã xác định được gốc tọa độ $P_0$ (Bài 2), thuật toán bắt đầu thực hiện chia nhỏ đường giá thành các tầng lệnh ($s$) và thiết lập cơ chế giám sát biên độ di chuyển thực tế. Trong bài học này, chúng ta sẽ đi sâu vào toán học tính tầng và kỹ thuật định vị biên giới lưới.
1. Công thức Toán học Xác định Số Tầng ($s$)
Mỗi khi có biến động giá (Tick), bot Nhị Quái sẽ liên tục tính toán xem mức giá hiện tại đang nằm ở tầng thứ mấy ($s_{text{current}}$) so với gốc tọa độ $P_0$ bằng công thức dưới đây:
$$s_{text{current}} = leftlfloor frac{P_{text{current}} – P_0}{text{Step}} rightrfloor$$
Trong đó:
* $P_{text{current}}$: Giá thị trường hiện tại (Bid đối với Buy, Ask đối với Sell).
* $P_0$: Điểm quy chiếu động (Price Origin).
* $text{Step}$: Khoảng cách bước lưới cấu hình sẵn (ví dụ: 100 pips).
* $lfloor dots rfloor$: Hàm sàn (Floor function) – làm tròn xuống số nguyên gần nhất.
Ý nghĩa các vùng tầng trong thực tế:
- Tầng gốc $S_0$ ($s = 0$): Là tầng khởi tạo lệnh mồi đầu tiên ngay tại gốc $P_0$.
- Tầng dương ($s > 0$): Khi giá đi lên phía trên $P_0$. Đối với cụm BUY, đây là vùng có lãi. Đối với cụm SELL, đây là vùng gồng lỗ.
- Tầng âm ($s < 0$): Khi giá đi xuống dưới $P_0$. Đối với cụm BUY, đây là vùng gồng lỗ. Đối với cụm SELL, đây là vùng có lãi.
2. Kỹ thuật Theo dõi Biên độ Lưới qua MinStep và MaxStep
Để biết được lưới lệnh đã mở rộng đến đâu và giá đã di chuyển xa nhất về hướng nào trong chu kỳ, Nhị Quái sử dụng hai biến toàn cầu lưu trữ trực tiếp xuống ổ cứng: MinStep (tầng thấp nhất từng chạm tới) và MaxStep (tầng cao nhất từng chạm tới).
Mỗi khi $s_{text{current}}$ thay đổi, bot sẽ kiểm tra và cập nhật động hai mốc này. Việc theo dõi biên độ giúp bot:
1. Biết chính xác vùng giá lịch sử đã đi qua để không nhồi lệnh trùng lặp.
2. Hỗ trợ hệ thống chốt lời tổng cụm tính toán khoảng cách phục hồi chính xác.
3. Phân tích mã nguồn MQL5: Cập nhật Biên độ Lưới
Dưới đây là đoạn code thực tế cập nhật MinStep và MaxStep bằng Global Variables trên MT5:
“`mql5
void UpdateTraversedRange(int m, int s) {
string mi = GetGVPrefix(m) + “_MinStep”;
string ma = GetGVPrefix(m) + “_MaxStep”;
// Cập nhật tầng thấp nhất (MinStep)
if(!GlobalVariableCheck(mi) || s < (int)GlobalVariableGet(mi)) {
GlobalVariableSet(mi, (double)s);
PrintFormat("📉 Cụm Magic %d: Cập nhật MinStep mới = %d", m, s);
}
// Cập nhật tầng cao nhất (MaxStep)
if(!GlobalVariableCheck(ma) || s > (int)GlobalVariableGet(ma)) {
GlobalVariableSet(ma, (double)s);
PrintFormat("📈 Cụm Magic %d: Cập nhật MaxStep mới = %d", m, s);
}
}
“`
🎓 Kết luận & Bài học tiếp theo
Nắm vững toán học tính tầng giúp bạn hiểu được cách Nhị Quái phân bổ không gian lệnh một cách khoa học và chặt chẽ. Trong bài học tiếp theo (Bài 4), chúng ta sẽ khám phá kỹ thuật FSM chống trùng lệnh (Anti-Multiposition) để bảo vệ tài khoản khi giá biến động giật cục mạnh.
🎓 Học làm chủ thuật toán định lượng và lập trình Bot Auto Trading cùng chuyên gia tại:
👉 Khóa học Lập trình MT5 Nâng cao – Hedging & Tự động hóa
💬 Liên hệ nhận tài liệu và tư vấn 1-1 trực tiếp qua Zalo
