Machine Learning trong trading: Recovery Model đoán trước khi DCA
Có một câu hỏi mà mọi bot Grid/DCA đáng giá tiền đều nên tự hỏi trước mỗi lần trung bình giá: "Cụm lệnh đang âm này có khả năng về tới TP không?" Nếu câu trả lời là "không đáng", thì hành động đúng nhất là không nện thêm lệnh — dù Step đã chạm.
Bài viết này giới thiệu Recovery Model — cách Machine Learning trả lời đúng câu hỏi đó — và lý do nó là ứng dụng ML thực tế nhất cho bot Hedging, thay vì những bài "dự đoán giá" viển vông.
Vấn đề của "luật cứng" khi DCA
Bot theo luật thường làm thế này: giá giảm một Step → mở thêm lệnh trung bình giá. Luật đơn giản, kỷ luật, nhưng mù. Nó không phân biệt được:
- cụm lệnh đang hồi phục bình thường (nên DCA thêm thì tốt), và
- cụm lệnh đang đi vào vùng nguy hiểm (DCA thêm chỉ làm lỗ sâu hơn).
Recovery Model ra đời để lấp khoảng mù đó: thay vì đoán "giá sẽ lên hay xuống", nó học trả lời một câu đóng khung, học được và kiểm chứng được.
Tạo dữ liệu: mỗi lần DCA là một mẫu học
Để model học, cần dữ liệu có nhãn. Cách tự nhiên nhất với bot lưới:
- Mỗi lần bot sắp DCA → ghi lại một snapshot trạng thái.
- Nhãn 1 nếu cụm sau đó về TP; nhãn 0 nếu chạm SL hoặc lún quá sâu.
Gom hàng nghìn sự kiện như vậy từ backtest/lịch sử, bạn có một bộ dữ liệu huấn luyện thực sự — không cần "tự bịa" nhãn.
Snapshot 21 tham số: bức tranh đúng lúc ra quyết định
Mỗi snapshot là một vector ~21 chiều mô tả trạng thái ngay tại thời điểm bot định DCA:
- Thị trường: volatility, độ dốc EMA, RSI, ATR, biên độ gần đây.
- Cụm lệnh: số lệnh đang mở, tổng volume, surplus, drawdown, khoảng cách tới mức kích hoạt kế tiếp.
- Chu kỳ (CJD): đang ở nhịp Cycle / Jolt / Pullback nào.
Lưu ý sống còn: chỉ dùng thông tin đã biết tại thời điểm đó, tránh rò rỉ tương lai — nếu không model sẽ "nhìn trộm đáp án" (đọc lại 5 lỗi backtest của hệ ML).
MLP bằng NumPy: hiểu gốc thay vì hộp đen
Model phù hợp là một MLP nhỏ — tự viết bằng NumPy, không cần PyTorch:
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# forward: 21 đặc trưng -> lớp ẩn -> 1 xác suất recovery
h = sigmoid(X @ W1 + b1) # X: (batch, 21)
p = sigmoid(h @ W2 + b2) # P(cụm về TP)
# backprop: cập nhật W1,W2,b1,b2 theo gradient của sai số (nhãn 0/1)
# -> huấn luyện bằng gradient descent qua nhiều epochTự viết có ba lợi ích: bạn thấy từng phép toán, sửa được khi model sai, và không phụ thuộc vào "hộp đen" mà không hiểu vì sao nó từ chối một mốc DCA.
Đánh giá trung thực: xác suất, không phải sự chắc chắn
Đừng tin vào một con số "độ chính xác 95%" được chia ngẫu nhiên. Với Recovery Model:
- Chia dữ liệu theo thời gian (train ở quá khứ, test ở tương lai chưa thấy).
- Dùng ngưỡng xác suất: chỉ DCA khi
P(recovery)đủ cao, ví dụ ≥ 0.6; dưới ngưỡng thì đứng im. - So sánh hành vi thật: chạy "có model" vs "không model" trên cùng dữ liệu để biết model đang giúp hay hại.
Tạm kết
Machine Learning trong trading không bắt đầu từ việc đoán giá — nó bắt đầu từ đặt đúng câu hỏi cho đúng quyết định. Với bot Hedging, câu hỏi đó là: "cụm này có về TP không, có nên DCA không?" Recovery Model biến câu hỏi ấy thành một con số xác suất để bot nín hoặc nện một cách có cơ sở. Đọc thêm nền tảng: AI Trading là gì?.
Muốn tự tay xây Recovery Model cho bot của mình — từ dữ liệu, snapshot, đến MLP NumPy và đánh giá trung thực? Khóa Lập Trình Python AI Trading Nâng Cao (12 buổi, ML·DL·RL) đồng hành từng bước.
- 📌 Chi tiết khóa tại DNT Digital: Khóa Lập Trình Python AI Trading Nâng Cao
- 📌 Trang khóa tại Hướng Nghiệp Dữ Liệu: Lập Trình Python AI Trading – Bộ Não AI Tự Ra Lệnh
- 📞 Tư vấn & xếp lịch: Zalo 0934.145.100
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.
