Machine learning trong trading: bắt đầu từ dữ liệu, không từ mô hình

Chứng khoán Việt NamCập nhật 13/09/2026

Người mới thường bắt đầu bằng câu hỏi dùng mô hình nào. Người làm lâu biết rằng mô hình là phần ít quan trọng nhất — thắng thua nằm ở việc bạn đưa cho nó cái gì và hỏi nó điều gì.

Machine learning trong trading thường được bắt đầu sai thứ tự. Người mới hỏi "nên dùng mô hình nào", đọc về mạng nơ-ron, rồi ném dữ liệu giá vào và ngạc nhiên khi kết quả vô dụng.

Thứ tự đúng ngược lại: dữ liệu trước, cách đặt câu hỏi thứ hai, cách kiểm định thứ ba, và mô hình cuối cùng. Bài này đi theo thứ tự đó.

Vì sao dữ liệu tài chính khó hơn mọi loại dữ liệu khác

Ba đặc tính khiến các kỹ thuật học máy thông thường không chuyển thẳng sang được.

Tỷ lệ nhiễu trên tín hiệu cực cao. Trong nhận dạng ảnh, một bức ảnh mèo luôn là mèo. Trong thị trường, cùng một cấu hình dữ liệu có thể dẫn tới kết quả ngược nhau — vì phần lớn biến động giá là ngẫu nhiên. Mô hình có xu hướng học thuộc nhiễu và tưởng đó là quy luật.

Phân phối thay đổi theo thời gian. Quy luật của thị trường năm ngoái không còn đúng năm nay: lãi suất đổi, thanh khoản đổi, hành vi người tham gia đổi. Đây gọi là dữ liệu không dừng, và nó phá vỡ giả định cơ bản nhất của học máy — rằng dữ liệu tương lai giống dữ liệu huấn luyện.

Mẫu không độc lập với nhau. Giá hôm nay liên quan chặt tới giá hôm qua. Hai mẫu cách nhau một phiên chứa gần như cùng một thông tin, nên số mẫu hiệu dụng nhỏ hơn nhiều so với số dòng dữ liệu bạn có.

Xây feature: phần quyết định

Feature là những con số bạn đưa vào mô hình. Đây là nơi kiến thức thị trường tạo ra khác biệt, còn mô hình thì ai cũng dùng như nhau.

Nguyên tắc đầu tiên: mọi feature phải có lý do kinh tế. "Trung bình động 37 phiên vì nó cho kết quả đẹp nhất" không phải lý do. "Chênh lệch giữa giá và trung bình 20 phiên, chuẩn hoá theo biến động, vì nó đo mức giá đang lệch khỏi vùng cân bằng gần đây" mới là lý do.

Nguyên tắc thứ hai: chuẩn hoá theo biến động. Một mức tăng 2% khi thị trường đang yên ắng khác hẳn 2% khi đang biến động mạnh. Chia cho độ lệch chuẩn gần đây giúp feature so sánh được qua các giai đoạn.

Nguyên tắc thứ ba: tránh rò rỉ tương lai tuyệt đối. Mọi phép tính chỉ được dùng dữ liệu có tại thời điểm đó. Chuẩn hoá bằng trung bình toàn bộ tập dữ liệu là lỗi kinh điển — con số trung bình đó đã chứa thông tin của tương lai.

Các nhóm feature thường dùng: động lượng ở nhiều khung thời gian, biến động thực tế, vị trí giá trong biên độ gần đây, đặc tính khối lượng, và với phái sinh VN30F1M thì có thêm chênh lệch với chỉ số cơ sở.

Đặt câu hỏi cho mô hình

Sai lầm phổ biến là bảo mô hình dự đoán giá ngày mai. Đó là bài toán hồi quy trên chuỗi gần như ngẫu nhiên — sai số luôn lớn, và kể cả dự đoán đúng hướng cũng chưa biết vào lệnh thế nào.

Ba cách đặt câu hỏi tốt hơn.

Phân loại nhị phân có ngưỡng. Thay vì hỏi giá bao nhiêu, hỏi: trong 5 phiên tới, giá chạm mức lời mục tiêu trước hay chạm mức dừng lỗ trước. Câu trả lời dùng được ngay.

Dự đoán biến động thay vì hướng. Biến động dễ dự đoán hơn hướng đi rất nhiều, vì nó có tính bám cụm — giai đoạn biến động mạnh thường kéo theo biến động mạnh. Con số này dùng để điều chỉnh khối lượng vị thế.

Meta-labeling. Đây là cách tiếp cận của López de Prado và rất hợp với người đã có sẵn hệ thống: giữ nguyên quy tắc vào lệnh hiện tại, dùng mô hình chỉ để trả lời "lệnh này có nên vào không". Mô hình không quyết định hướng, chỉ lọc bớt lệnh xấu. Rủi ro thấp hơn hẳn so với giao cả quyết định cho mô hình.

Kiểm định kiểu tài chính

Đây là chỗ phần lớn dự án học máy trong trading chết mà người làm không biết.

Cross-validation thông thường chia dữ liệu ngẫu nhiên thành các phần. Với dữ liệu thời gian, cách đó sai hai lần: mô hình được huấn luyện trên dữ liệu tương lai để dự đoán quá khứ, và các mẫu gần nhau về thời gian nằm ở cả hai tập nên rò rỉ thông tin cho nhau.

Huấn luyệndữ liệu quá khứCách lybỏ vài phiênKiểm trachưa từng thấyTrượt tớilặp lạimỗi vòng dịch cửa sổ tới trước, không bao giờ nhìn ngược

Cách làm đúng gồm hai phần. Chia theo thời gian: huấn luyện trên đoạn trước, kiểm trên đoạn sau, trượt dần. Thêm khoảng cách ly giữa hai đoạn — bỏ đi vài phiên ở ranh giới, vì nhãn của mẫu cuối tập huấn luyện có thể phụ thuộc vào giá nằm trong tập kiểm tra.

Nguyên tắc chung vẫn là những gì đã nói ở bài về backtest, chỉ khắt khe hơn — vì mô hình nhiều tham số có khả năng học thuộc dữ liệu cao hơn hẳn một quy tắc đơn giản.

Chọn mô hình

Sau ba phần trên, phần này đơn giản một cách bất ngờ.

Với dữ liệu dạng bảng đã có feature, gradient boosting gần như luôn là lựa chọn đầu tiên: mạnh, nhanh, chịu được feature không chuẩn hoá, và cho biết feature nào quan trọng. Mạng nơ-ron sâu chỉ vượt trội khi làm việc với dữ liệu thô — chuỗi tick, sổ lệnh, văn bản tin tức.

Một điều đáng nói: mô hình đơn giản hơn thường sống lâu hơn. Hồi quy logistic với năm feature tốt có thể thua gradient boosting trên tập kiểm tra nhưng ổn định hơn nhiều khi thị trường đổi chế độ, và khi nó hỏng thì bạn biết vì sao.

Điều này không phải lý thuyết suông — nó hiện ra rõ khi nhìn hiệu năng qua các đoạn kiểm tra nối tiếp nhau.

100110120130140114Nhiều tham sốNăm feature đơn giản

Mô hình nhiều tham số thắng đậm ở nửa đầu — đúng giai đoạn gần với dữ liệu huấn luyện — rồi mất hẳn lợi thế khi thị trường đổi chế độ. Mô hình đơn giản đi chậm nhưng không gãy. Hình minh hoạ cơ chế, không phải kết quả thật.

Đo mô hình bằng tiền, không bằng độ chính xác

Độ chính xác 55% nghe hay nhưng không nói lên gì. Mô hình đoán đúng 55% số lệnh mà những lệnh sai lỗ gấp đôi lệnh đúng thì vẫn lỗ.

Ba thước đo thực sự có nghĩa: lợi nhuận sau chi phí khi chuyển tín hiệu thành lệnh thật, mức sụt giảm sâu nhất của đường vốn, và độ ổn định qua các đoạn kiểm tra — một mô hình tốt ở mọi đoạn đáng tin hơn mô hình xuất sắc ở một đoạn và tệ ở các đoạn còn lại.

Dữ liệu sạchđã kiểm chất lượngchưa sạch → dừngXây featuremỗi feature có lý do kinh tếkhông giải thích được → bỏĐặt bài toánphân loại, không phải dự báo giáKiểm định kiểu tài chínhchia theo thời gian, có cách lysụp ngoài mẫu → về bước 2Mới chọn mô hìnhphần dễ nhất

Thứ tự này ngược hẳn với cách người mới thường làm — chọn mô hình trước rồi mới nghĩ tới dữ liệu. Bước cuối cùng cũng là bước ít quan trọng nhất.

Thứ tự thực tế nên đi

Với người làm một mình, con đường ít rủi ro nhất: có sẵn một hệ thống quy tắc chạy được trước, hiểu rõ nó lỗ ở đâu, rồi dùng học máy để giải quyết đúng một điểm yếu cụ thể — thường là lọc bớt lệnh xấu hoặc nhận diện chế độ thị trường.

Bắt đầu bằng việc xây một mô hình quyết định tất cả là cách nhanh nhất để có một hệ thống bạn không hiểu và không sửa được.

Câu hỏi thường gặp

Mô hình nào phù hợp nhất với dữ liệu thị trường?
Với bảng dữ liệu đã có feature, các mô hình dựa trên cây như gradient boosting thường mạnh hơn mạng nơ-ron sâu và dễ hiểu hơn nhiều. Mạng sâu chỉ có lợi thế khi làm việc với dữ liệu thô như chuỗi tick hay văn bản.
Vì sao không nên dự đoán thẳng giá ngày mai?
Giá là chuỗi không dừng và gần như ngẫu nhiên ở khung ngắn, nên sai số dự báo luôn lớn. Đặt bài toán thành phân loại — ví dụ xác suất chạm mục tiêu trước khi chạm dừng lỗ — vừa dễ học vừa dùng trực tiếp được.
Cross-validation thông thường có dùng được không?
Không. Chia ngẫu nhiên khiến mô hình nhìn thấy tương lai, và các mẫu gần nhau về thời gian bị rò rỉ thông tin cho nhau. Cần purged cross-validation kèm khoảng cách ly giữa tập huấn luyện và tập kiểm tra.
Bao nhiêu feature là đủ?
Ít hơn bạn nghĩ. Dữ liệu tài chính nhiễu cao nên càng nhiều feature càng dễ tìm ra quan hệ giả. Bắt đầu với năm tới mười feature có lý do kinh tế rõ ràng, hơn là ném vào hai trăm chỉ báo.

Đọc tiếp